re PR tree-optimization/37387 (ICE in extract_range_from_binary_expr, at tree-vrp...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2008-09-09  Richard Guenther  <rguenther@suse.de>
2
3         PR tree-optimization/37387
4         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
5         and bits to a common type.
6
7 2008-09-09  Nick Clifton  <nickc@redhat.com>
8
9         * config/v850/v850.md (return): Restore frame size restriction.
10
11 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
12
13         * c-common.c (c_expand_decl): Remove.
14         * c-common.h (anon_aggr_type_p): Remove prototype.
15         (DECL_ANON_UNION_ELEMS): Remove.
16         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
17         * c-decl.c (anon_aggr_type_p): Remove.
18         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
19         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
20         * langhooks.h (struct lang_hooks): Remove expand_decl.
21         * langhooks.c (lhd_expand_decl): Remove.
22         * stmt.c (expand_anon_union_decl): Remove.
23         * tree.h (expand_anon_union_decl): Remove prototype.
24
25 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
26
27         PR target/36609
28         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
29         zero.
30         * config/avr/avr.md  (QISI) : Define mode iterator.
31         (negated_tst<mode>) : Redefine as split using mode macro.
32         (reversed_tstqi): Define insn as reversed compare with zero.
33         (reversed_tsthi): Ditto.
34         (reversed_tstsi): Ditto.
35
36 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
37
38         PR middle-end/37393
39         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
40         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
41
42         PR middle-end/37414
43         * predict.c (optimize_function_for_size_p): Don't segfault if
44         FUN is NULL.
45         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
46         tree_swap_operands_p): Don't test cfun != NULL before calling
47         optimize_function_for_s*_p.
48
49 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
50
51         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
52         end of the search.
53
54 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
55
56         * crx/crx.h (IRA_COVER_CLASSES): Define.
57
58 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
59
60         PR middle-end/37337
61         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
62         even when a stmt has been gimple_modified_p, but after fold_stmt is
63         not any longer.  Remove unneeded may_have_exposed_new_symbols
64         initializations.
65
66 2008-09-08  Richard Guenther  <rguenther@suse.de>
67
68         PR tree-optimization/37421
69         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
70         valueize the RHS.
71
72 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
73
74         PR middle-end/37415
75         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
76
77 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
78
79         PR driver/37409
80         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
81         * pa-hpux10.h (LINK_SPEC): Likewise.
82         * pa-hpux11.h (LINK_SPEC): Likewise.
83
84 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
85
86         * pa32-regs.h (IRA_COVER_CLASSES): Define.
87         * pa64-regs.h (IRA_COVER_CLASSES): Define.
88
89 2008-09-07  Helge Deller  <deller@gmx.de>
90
91         * pa/linux-atomic.c: New file.
92         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
93         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
94
95 2008-09-07  Richard Guenther  <rguenther@suse.de>
96             Ira Rosen  <irar@il.ibm.com>
97
98         PR tree-optimization/36630
99         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
100         Call STRIP_NOPS before calling evolution_part_in_loop_num.
101
102 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
103             Ira Rosen  <irar@il.ibm.com>
104
105         PR tree-optimization/35642
106         * config/rs6000/altivec.md (mulv8hi3): Implement.
107
108 2008-09-06  Jeff Law <law@redhat.com>
109
110         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
111
112 2008-09-06  Jan Hubicka  <jh@suse.cz>
113
114         PR tree-optimization/14703
115         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored declarations.
116         * passes.c (init_optimization_passes): Recompute inline parameters.
117
118 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
119
120         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
121         DECL being null.
122
123 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
124             Peter Fuerst  <post@pfrst.de>
125
126         * doc/invoke.texi: Document -mr10k-cache-barrier=.
127         * doc/extend.texi: Document __builtin_mips_cache.
128         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
129         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
130         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
131         __GCC_HAVE_BUILTIN_MIPS_CACHE.
132         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
133         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
134         (set_push_mips_isas): New variable.
135         (mips_r10k_cache_barrier): New variable.
136         (cache): New availability predicate.
137         (mips_builtins): Add an entry for __builtin_mips_cache.
138         (mips_build_cvpointer_type): New function.
139         (MIPS_ATYPE_CVPOINTER): New macro.
140         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
141         mode is VOIDmode.
142         (r10k_simplified_address_p, r10k_simplify_address)
143         (r10k_uncached_address_p, r10k_safe_address_p)
144         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
145         (r10k_needs_protection_p_call, r10k_needs_protection_p)
146         (r10k_insert_cache_barriers): New functions.
147         (mips_reorg_process_insns): Delete cache barriers after a
148         branch-likely instruction.
149         (mips_reorg): Call r10k_insert_cache_barriers.
150         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
151         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
152         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
153         (mips_cache, r10k_cache_barrier): New define_insns.
154
155 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
156
157         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
158         * ira-color.c (setup_allocno_left_conflicts_num): Use
159         hard_reg_set_equal_p instead of a comparison with
160         ira_zero_hard_reg_set.
161         * ira.c (setup_reg_subclasses): Likewise.
162         (setup_cover_and_important_classes): Likewise.
163         (setup_class_translate): Likewise.
164         (setup_reg_class_intersect_union): Likewise.
165         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
166         (ira_init_once): Don't initialize them.
167
168 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
169
170         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
171
172 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
173
174         * ira-color.c (ira_fast_allocation): Permit global allocno
175         allocation.
176         
177 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
178
179         Improved branch hints, safe hints, and scheduling.
180
181         * haifa-sched.c (sched_emit_insn) : Define.
182         * sched-int.h (sched_emit_insn) : Add prototype.
183         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
184         -mhint-max-distance -msafe-hints) : Document.
185         * config/spu/spu.c (spu_flag_var_tracking): New.
186         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
187         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
188         TARGET_ASM_FILE_START): Define.
189         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
190         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
191         (spu_emit_branch_hint): Add blocks argument.
192         (insert_branch_hints, insert_nops): Remove.
193         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
194         uses_ls_unit, spu_sched_init_global, spu_sched_init,
195         spu_sched_reorder, asm_file_start): New functions.
196         (clock_var, spu_sched_length, pipe0_clock,
197         pipe1_clock, prev_clock_var, prev_priority,
198         spu_ls_first, prev_ls_clock): New static variables.
199         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
200         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
201         (nopn_nv): Add a non-volatile version of nop.
202         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
203         -mhint-max-distance, -msafe-hints): New options.
204
205 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
206             Samuel Tardieu  <sam@rfc1149.net>
207
208         * opts.c (decode_options): Combine nested if statements.
209
210         PR target/37283
211         * opts.c (decode_options): Handle more relationships among
212         unit-at-a-time, toplevel-reorder, and section-anchors.
213
214 2008-09-05  David Daney  <ddaney@avtrex.com>
215
216         * doc/install.texi (--enable-reduced-reflection): Document new option.
217
218 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
219
220         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
221         constantpool_mem_p.
222         (constantpool_operand): New.
223         (move_operand): Disallow sub-word modes for the constant pool.
224         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
225         (xtensa_secondary_reload_class): Replace with....
226         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check. 
227         Set icode for sub-word reloads from the constant pool.
228         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
229         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
230         * config/xtensa/xtensa.md (reload<mode>_literal): New.
231         * config/xtensa/xtensa-protos.h: Update prototypes.
232         
233 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
234
235         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
236         (REG_CLASS_NAMES): Update.
237         (REG_CLASS_CONTENTS): Update.
238         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
239         of ALL_REGS for regs 77 and 78.
240         * function.c (instantiate_virtual_regs_in_insn): Assert that
241         return value of simplify_gen_subreg is not NULL.
242
243 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
244
245         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
246         (gen_rtvec_v): Fix coding standards.
247
248 2008-09-04  Jan Hubicka  <jh@suse.cz>
249
250         * i386.c (decide_alg): Be more conservative about optimizing for size.
251
252 2008-09-04  Ian Lance Taylor  <iant@google.com>
253
254         * varasm.c (narrowing_initializer_constant_valid_p): New
255         static function.
256         (initializer_constant_valid_p): Call it.
257
258 2008-09-04  Jeff Law  <law@redhat.com>
259
260         * fold-const.c (native_encode_real): Fix computation of WORDS.
261         (native_interpret_real): Likewise.
262
263 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
264
265         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
266
267 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
268
269         * ira-conflicts.c (process_regs_for_copy): Check insn to check
270         that the cost is already taken into account in ira-costs.c
271
272         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
273
274         * ira-build.c (print_copy, print_copies, ira_debug_copy,
275         ira_debug_copies): New.
276         (ira_bulid): Call print_copies.
277         
278         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
279         
280 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
281
282         PR target/32783
283         * config/rs6000/rs6000.c (optimization_options): Remove check of
284         flag_toplevel_order.
285
286 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
287
288         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
289         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
290         second operand is a reg_imm10_operand.
291         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
292         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
293         (*seq_<GPR:mode><GPR2:mode>): Rename to
294         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
295         ISA_HAS_SEQ_SNE.
296         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
297         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
298         ISA_HAS_SEQ_SNE.
299         (*sne_<GPR:mode><GPR2:mode>): Rename to
300         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
301         ISA_HAS_SEQ_SNE.
302
303 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
304
305         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
306         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
307         combining an arithmetic right shift by more than 31 and a
308         trunction.  Don't match for out-of-range shift amounts.  Set
309         attribute mode to <MODE>.
310         (*lshr32_trunc<mode>): Name the pattern combining a logical right
311         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
312         (*<optab>_trunc<mode>_exts): New pattern for truncated right
313         shifts by less than 32.
314         (extv): Change predicate on first operand to accept registers.
315         Change predicate of the other operands from immediate_operand to
316         const_int_operand.  Expand exts when source is a register.
317         (extzv): Change predicate of the constant operands from
318         immediate_operand to const_int_operand.
319         (extzv<mode>): Change predicate of the constant operands from
320         immediate_operand to const_int_operand and no constraint. Also
321         remove mode.
322         (*extzv_trunc<mode>_exts): New pattern.
323
324 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
325
326         * config/mips/mips.h (ISA_HAS_CINS): New macro.
327         * config/mips/mips-protos.h (mask_low_and_shift_p,
328         mask_low_and_shift_len): Declare.
329         * config/mips/mips.c (mask_low_and_shift_p,
330         mask_low_and_shift_len): New functions.
331         (mips_print_operand): Handle new operand prefix "m".
332         * config/mips/mips.md (*cins<mode>): New pattern.
333
334 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
335
336         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
337         optimizing for size.
338
339 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
340
341         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
342         regardless of epilogue_completed.
343
344 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
345
346         PR middle-end/37359
347         * ira-lives.c (process_bb_node_lives): Check setjmp.
348
349 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
350
351         PR middle-end/37243
352         * ira-build.c (form_loop_tree): Reverse BB walk.
353         (create_bb_allocnos): Likewise.
354         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
355         (mark_reg_store): Rename to...
356         (mark_ref_live): ...this and take a df_ref argument instead of
357         note_stores arguments.  Assert that we have a register.
358         (mark_reg_clobber): Delete.
359         (def_conflicts_with_inputs_p): New function.
360         (mark_reg_conflicts): Delete.
361         (mark_reg_death): Rename to...
362         (mark_ref_dead): ...this and take a df_ref argument instead of
363         a register.  Assert that we have a register.
364         (process_bb_node_lives): Hoist frequency calculation out of
365         instruction walk.  Convert from a forwards scan to a backwards scan.
366         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
367         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
368         (create_allocno_live_ranges): Don't create regs_set.
369
370 2008-09-04  Ian Lance Taylor  <iant@google.com>
371
372         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
373         or REG_LABEL_TARGET.
374         * calls.c (emit_library_call_value_1): Use MEM_P rather than
375         comparing MODE with MEM.
376         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
377         comparing with GF_PREDICT_TAKEN.
378         (gimple_get_lhs): Change code to enum gimple_code.
379         (gimple_set_lhs): Likewise.
380         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
381         * omp-low.c (find_omp_clause): Change kind parameter to enum
382         omp_clause_code.
383         * tree-flow.h (find_omp_clause): Update declaration.
384         * regrename.c (clear_dead_regs): Change kind parameter to enum
385         reg_note.
386         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
387         GET_MODE.
388         * see.c (see_get_extension_data): Change return type to enum
389         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
390         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
391         (see_gen_normalized_extension): Change extension_code parameter to
392         enum entry_type.
393         (see_seek_pre_extension_expr): Change extension_code to enum
394         entry_type.
395         (see_merge_one_def_extension): Likewise.
396         (see_handle_relevant_defs): Likewise.
397         (see_handle_relevant_uses): Likewise.
398         (see_analyze_one_def): Likewise.
399         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
400         GIMPLE_ASM rather than ASM_EXPR.
401         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
402         GIMPLE_RETURN rather than RETURN_EXPR.
403         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
404         (evaluate_stmt): Likewise.
405         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
406         to enum vect_relevant.
407         (vect_mark_stmts_to_be_vectorized): Change assertion to not
408         compare gimple codes with tree codes.
409
410 2008-09-04  Paul Brook  <paul@codesourcery.com>
411
412         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
413
414 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
415
416         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
417         pointer check lost in the recent no-unit-at-a-time patch.
418         
419 2008-09-04  Jan Hubicka  <jh@suse.cz>
420
421         PR middle-end/37343
422         * tree-switch-conversion.c (check_final_bb): Accept only IP
423         invariants.
424
425 2008-09-04  Jan Hubicka  <jh@suse.cz>
426
427         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
428         Break out from ...
429         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
430         using_ranges argument.
431         (vrp_evaluate_conditional): Avoid bogus warning for type range.
432         (vrp_visit_cond_stmt): Update call of
433         vrp_evaluate_conditional_warnv_with_ops
434
435 2008-09-04  Jan Hubicka  <jh@suse.cz>
436
437         PR tree-optimization/37345
438         PR tree-optimization/37358
439         PR tree-optimization/37357
440         * tree.c (build_function_type_skip_args): Build distinct type copy;
441         set TYPE_CONTEXT.
442         (build_function_decl_skip_args): Set type of new decl not orig decl;
443         clear DECL_VINDEX for methods turned into functions.
444
445 2008-09-04  Nick Clifton  <nickc@redhat.com>
446
447         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler
448         check.
449         * configure: Regenerate.
450         * config.in: Regenerate.
451         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
452         alignment field, if it is supported.
453
454 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
455
456         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
457         libraries.
458
459 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
460
461         * config/rs6000/rs6000.c (processor_target_table): Do not
462         enable VMX for POWER6.
463
464 2008-09-03  Anton Blanchard  <anton@samba.org>
465
466         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
467         emit memory barrier before operation.
468
469 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
470
471         PR testsuite/37325
472         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
473         default_elf_asm_output_external.
474
475 2008-09-03  Jeff Law  <law@redhat.com>
476
477         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
478
479 2008-09-03  Richard Henderson  <rth@redhat.com>
480
481         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
482         memory barrier to below the test-and-set.
483         (alpha_split_lock_test_and_set_12): Likewise.
484
485 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
486
487         PR rtl-opt/37243
488
489         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
490         all_allocnos.
491
492         * ira-color.c (print_loop_title): Use all_allocnos.
493         (color_pass): Ditto.  Don't add border_allocnos.  Check that
494         subloop allocno in the correspdoning bitmap all_allocnos.
495
496         * ira-emit.c (change_loop): Use all_allocnos.
497
498         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
499         Ditto.
500         (ira_create_allocno): Set up all_allocnos bit for the created
501         allocno.
502         (create_cap_allocno): Remove setting mentioned_allocnos.
503         (create_insn_allocnos): Ditto.
504         (remove_unnecessary_allocnos): Use all_allocnos.
505         (check_allocno_creation): Check that allocnos are in the
506         corresponding bitmap all_allocnos.
507         
508 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
509
510         PR rtl-opt/37243
511         
512         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
513         (process_regs_for_copy): Process subregs.  Refine check when cost
514         is taken into account in ira-costs.c.
515         (process_reg_shuffles): Use REG_SUBREG_P.
516         (add_insn_allocno_copies): Ditto.  Ignore modes.
517
518         * ira-color.c (conflict_allocno_vec): New.
519         (COST_HOP_DIVISOR): New macro.
520         (update_copy_costs_1): Use it.
521         (update_conflict_hard_regno_costs): New function.
522         (assign_hard_reg): Use it.
523         (ira_color): Allocate and free conflict_allocno_vec.
524  
525 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
526
527         PR rtl-opt/37296
528
529         * ira-int.h (ira_sort_insn_chain): Remove.
530
531         * ira.c (basic_block_order_nums, chain_insn_order,
532         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
533         (ira): Don't call ira_sort_insn_chain.
534
535         * reload1.c (reload): Don't call ira_sort_insn_chain.
536
537 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
538
539         PR middle-end/37293
540         * cgraphunit.c (update_call_expr): Remove eh regions from statements
541         which become non throw.
542         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
543         update_call_expr after updating the flags on the decl.
544
545 2008-09-03  Jan Hubicka  <jh@suse.cz>
546
547         PR tree-optimization/37315
548         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
549         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
550         (cgraph_analyze_functions): Use node->analyzed
551         (cgraph_mark_functions_to_output): Likewise.
552         (cgraph_expand_function): All functions can be released after
553         expanding.
554         (cgraph_optimize): Use gimple_has_body_p.
555         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
556         (cgraph_decide_inlining_incrementally): Likewise.
557         (inline_transform): Inline transform.
558         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
559         copy fields needed.
560         (inlinable_function_p): Drop gimple_body check.
561         (expand_call_inline): Use gimple_has_body_p.
562         * gimple.c (gimple_has_body_p): New.
563         * gimple.h (gimple_has_body_p): Add prototype.
564         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
565         (dump_function_to_file): Use gimple_has_body_p check.
566
567 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
568
569         PR c++/37346
570         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
571         substatements.
572         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
573
574 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
575
576         From Michael Frysinger  <michael.frysinger@analog.com>
577         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
578         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
579         for bf538.
580
581 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
582
583         Add picoChip port.
584         * doc/extend.texi: Document picoChip builtin functions.
585         * doc/invoke.texi: Document picoChip options.
586         * doc/contrib.texi: Add picoChip contribution.
587         * doc/md.texi: Document picoChip constraints.
588         * config.gcc: Add picochip-*-*.
589         * config/picochip/: Add new port.
590
591 2008-09-03  Richard Guenther  <rguenther@suse.de>
592
593         PR tree-optimization/37328
594         * tree-sra.c (sra_build_assignment): Gimplify properly.
595         (generate_copy_inout): Take the correct stmt as definition,
596         remove bogus assert.
597
598 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
599
600         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
601         attributes.
602
603         From Michael Frysinger  <michael.frysinger@analog.com>
604         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
605
606 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
607
608         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is
609         defined.
610         (__gthread_setspecific): Revert 2008-08-31 change to
611         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API
612         case.
613
614 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
615
616         * diagnostic.c (error_at): New.
617         * toplev.h (error_at): New prototype.
618         * c-typeck.c (build_array_ref): Call error_at instead of error.
619         Pass location to pedwarn.
620
621 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
622
623         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
624
625 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
626
627         * dwarf2out.c (tree_add_const_value_attribute): Only handle
628         VAR_DECL and CONST_DECL.
629
630 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
631             Jakub Jelinek  <jakub@redhat.com>
632
633         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
634         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
635         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
636         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
637         Don't set ix86_save_varrargs_registers.
638         (ix86_setup_incoming_varargs): Assume cum != NULL.
639         (ix86_va_start): Check ix86_varargs_gpr_size and
640         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
641         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
642         from frame pointer if ix86_varargs_gpr_size == 0.
643         (ix86_compute_frame_layout): Updated.
644         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
645         (ix86_varargs_gpr_size): Define.
646         (ix86_varargs_fpr_size): Likewise.
647         (machine_function): Remove save_varrargs_registers.
648         Add varargs_gpr_size and varargs_fpr_size.
649
650 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
651
652         * config/alpha/alpha.c (va_list_skip_additions,
653         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
654         (alpha_gimplify_va_arg): Call unshare_expr on second use of
655         offset_field.
656
657         PR tree-optimization/36766
658         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
659         for already removed basic blocks.
660
661         PR target/36332
662         * real.c (real_maxval): Clear a lower bit to make real_maxval
663         match get_max_float for IBM long double format.
664
665 2008-09-02  Andreas Schwab  <schwab@suse.de>
666
667         * configure.ac: Use m4_quote to quote the expansion of m4_do.
668         * configure: Regenerate.
669
670 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
671
672         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
673         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
674         checking for a non-VOID CONSTANT_P.
675
676 2008-09-02  Jan Hubicka  <jh@suse.cz>
677
678         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
679         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and sdiv_pow2_cheap
680
681 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
682
683         * expr.c (emit_group_store): Don't assert stack temp mode size.
684
685 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
686             Tobias Grosser  <grosser@fim.uni-passau.de>
687             Jan Sjodin  <jan.sjodin@amd.com>
688             Harsha Jagasia  <harsha.jagasia@amd.com>
689             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
690             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
691             Adrien Eliche  <aeliche@isty.uvsq.fr>
692
693         Merge from graphite branch.
694         * graphite.c: New.
695         * graphite.h: New.
696         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
697         * doc/invoke.texi (-floop-block, -floop-interchange,
698         -floop-strip-mine): Document new flags.
699         * tree-into-ssa.c (gimple_vec): Moved...
700         * tree-loop-distribution.c (rdg_component): Moved...
701         * cfgloopmanip.c: Include tree-flow.h.
702         (update_dominators_in_loop): New.
703         (create_empty_if_region_on_edge): New.
704         (create_empty_loop_on_edge): New.
705         (loopify): Use update_dominators_in_loop.
706         * tree-pass.h (pass_graphite_transforms): Declared.
707         * configure: Regenerate.
708         * tree-phinodes.c (make_phi_node): Export.
709         (add_phi_node_to_bb): New, split from create_phi_node.
710         * tree-chrec.c (for_each_scev_op): New.
711         * tree-chrec.h (for_each_scev_op): Declared.
712         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
713         (remove_statement): Call get_phi_with_result.
714         * config.in (HAVE_cloog): Undef.
715         * gdbinit.in (pgg): New.
716         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
717         * tree-ssa-loop.c (graphite_transforms): New.
718         (gate_graphite_transforms): New.
719         (pass_graphite_transforms): New.
720         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
721         HAVE_cloog): Defined.
722         * tree-vectorizer.c (rename_variables_in_bb): Export.
723         * tree-data-ref.c (dr_may_alias_p): Export.
724         (stmt_simple_memref_p): New.
725         (find_data_references_in_stmt): Export.
726         (find_data_references_in_loop): Export.
727         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
728         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
729         (create_rdg_vertices): Export.
730         (build_empty_rdg): New.
731         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
732         * tree-data-ref.h (rdg_component): ... here.
733         (scop_p): New.
734         (struct data_reference): Add a field scop.
735         (DR_SCOP): New.
736         (find_data_references_in_loop): Declared.
737         (find_data_references_in_stmt): Declared.
738         (create_rdg_vertices): Declared.
739         (dr_may_alias_p): Declared.
740         (stmt_simple_memref_p): Declared.
741         (struct rdg_edge): Add a field ddr_p relation.
742         (build_empty_rdg): Declared.
743         * lambda.h (lambda_matrix): Declare a VEC of.
744         (find_induction_var_from_exit_cond): Declared.
745         (lambda_vector_compare): New.
746         * common.opt (fgraphite, floop-strip-mine,
747         floop-interchange, floop-block): New flags.
748         * lambda-code.c (find_induction_var_from_exit_cond): Export.
749         * cfgloop.c (is_loop_exit): New.
750         * cfgloop.h (is_loop_exit): Declared.
751         (create_empty_if_region_on_edge): Declared.
752         (create_empty_loop_on_edge): Declared.
753         * tree-flow.h (add_phi_node_to_bb): Declared.
754         (make_phi_node): Declared.
755         (rename_variables_in_bb): Declared.
756         (perfect_loop_nest_depth): Declared.
757         (graphite_transform_loops): Declared.
758         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
759         (graphite.o-warn): Add -Wno-error.
760         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
761         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
762         (INCLUDES): Add PPLINC, CLOOGINC.
763         (OBJS-common): Add graphite.o.
764         (graphite.o): Add rule.
765         * gimple.h (gimple_vec): ... here.
766         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
767         * passes.c (init_optimization_passes): Schedule 
768         pass_graphite_transforms.
769
770 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
771
772         PR target/37283
773         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
774         and -fno-toplevel-reorder after handle_options.
775
776 2008-09-02  Paul Brook  <paul@codesourcery.com>
777
778         * config/arm/arm.c (arm_tune_cortex_a9): Define.
779         (arm_override_options): Set arm_tune_cortex_a9.
780         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
781         (arm_issue_rate): Handle cortexa9.
782         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
783         * config/arm/arm-cores.def: Add cortex-a9.
784         * config/arm/arm-tune.md: Regenerate.
785         * config/arm/arm.md: Include cortex-a9.md.
786         (generic_sched, generic_vfp): Add cortexa9.
787         * config/arm/cortex-a9.md: New file.
788
789 2008-09-02  Richard Guenther  <rguenther@suse.de>
790
791         PR tree-optimization/37327
792         * tree-vrp.c (register_new_assert_for): Make sure to not have
793         TREE_OVERFLOW set on the bound.
794
795 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
796
797         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
798
799         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
800         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
801         spec_info->mask.
802
803 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
804
805         * gcc/config/spu/spu.md (divdf3): Removed.
806
807 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
808
809         PR tree-optimization/37095
810         * cgraph.c (cgraph_node): When creating new cgraph node after
811         assembler_name_hash has been populated, record it in the hash
812         table.
813
814 2008-09-01  Paul Brook  <paul@codesourcery.com>
815
816         * doc/invoke.texi: Document -mword-relocations.
817         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
818         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
819         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
820         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
821         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
822         (arm_emit_movpair): New function.
823         (arm_print_operand <c>): Handle sybolic addresses.
824         * config/arm/arm.h (TARGET_USE_MOVT): Define.
825         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
826         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
827         * config/arm/arm.opt: Add -mword-relocations.
828         * config/arm/arm.md (movsi): Use arm_emit_movpair.
829         (arm_movt, arm_movw): New.
830
831 2008-09-01  Paul Brook  <paul@codesourcery.com>
832
833         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
834         Allow Interworking on ARMv4 EABI based targets.
835         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
836         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
837
838 2008-09-01  Paul Brook  <paul@codesourcery.com>
839
840         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
841         optimized LT0 test.  Remove optimization for GT.
842
843 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
844
845         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
846         openmp applications.
847         * pa-hpux11.h (LIB_SPEC): Likewise.
848
849         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is
850         defined.
851
852 2008-09-01  Jan Hubicka  <jh@suse.cz>
853
854         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
855         present, use only counts; when guessed use only frequencies.
856         (estimate_bb_frequencies): Use function_frequency.
857         * profile.c (compute_branch_probabilities): Exit early when
858         profile reading failed. Set profile_status.
859         (branch_prob): Do not set profile_status.
860
861 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
862
863         * tree.c (protected_set_expr_location): New.
864         * tree.h (protected_set_expr_location): New prototype.
865         * c-tree.h (build_array_ref): Add argument.
866         (parser_build_unary_op): Same.
867         * c-typeck.c (build_indirect_ref): Handle new location argument.
868         (build_array_ref): Same.
869         (parser_build_unary_op): Same.
870         * gimplify.c (gimplify_asm_expr): Set input_location before calling
871         error.
872         * c-omp.c (c_finish_omp_atomic): Pass location when calling
873         build_indirect_ref.
874         * c-common.c (finish_label_address_expr): Handle new location
875         argument.
876         * c-common.h (build_indirect_ref): Add argument.
877         (finish_label_address_expr): Same.
878         * c-parser.c (c_parser_unary_expression): Pass location to build
879         functions.
880         (c_parser_postfix_expression): Same.
881
882 2008-09-01  Paul Brook  <paul@codesourcery.com>
883
884         * config/arm/arm.md: Include cortex-r4f.md.
885         (attr fpu): Update type list.
886         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
887         fconstd, fcmps and fcmpd.
888         (attr tune_cortexr4): Define.
889         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
890         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
891         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
892         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
893         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn
894         types.
895         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
896         cortex_a8_vfp_farith: Ditto.
897         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
898         * config/arm/cortex-r4.md: Use tune_cortexr4.
899         * config/arm/cortex-r4f.md: New file.
900
901 2008-09-01  Richard Guenther  <rguenther@suse.de>
902
903         PR tree-optimization/37305
904         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
905         the result of constant conversions.
906         (fold_gimple_assign): Likewise.
907
908 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
909
910         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
911         #ifdef ENABLE_CHECKING.
912
913 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
914
915         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
916         * sched-int.h (print_insn, print_pattern, print_value): Declare also
917         when !INSN_SCHEDULING.
918
919 2008-09-01  Andreas Schwab  <schwab@suse.de>
920
921         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
922
923 2008-09-01  Paul Brook  <paul@codesourcery.com>
924
925         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
926
927 2008-09-01  Jan Hubicka  <jh@suse.cz>
928
929         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
930
931         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): Pass speed operand.
932         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
933         * gimplify.c (gimplify_init_constructor): Add speed operand.
934         * tree-sra.c (decide_block_copy): Likewise.
935         * tree-inline.c (estimate_move_cost): Likewise.
936         * config/alpha/alpha.h (MOVE_RATIO): Update.
937         * config/frv/frv.c (MOVE_RATIO): Update.
938         * config/spu/spu.h (MOVE_RATIO): Update.
939         * config/sparc/sparc.h (MOVE_RATIO): Update.
940         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
941         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
942         * config/cris/cris.h (MOVE_RATIO): Update.
943         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
944         * config/arm/arm.h (MOVE_RATIO): Update.
945         * config/pa/pa.md: Update uses of MOVE_RATIO
946         * config/pa/pa.h (MOVE_RATIO): Update.
947         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, CLEAR_RATIO, SET_RATIO): Update.
948         * config/h8300/h8300.h (MOVE_RATIO): Update.
949         * config/v850/v850.h (MOVE_RATIO): Update.
950         * config/bfin/bfin.h (MOVE_RATIO): Update.
951
952 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
953         Dmitry Melnik  <dm@ispras.ru>
954         Dmitry Zhurikhin  <zhur@ispras.ru>
955         Alexander Monakov  <amonakov@ispras.ru>
956         Maxim Kuvyrkov  <maxim@codesourcery.com>
957
958         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
959         sel-sched-dump.c, sel-sched-ir.c: New files.
960         * Makefile.in (OBJS-common): Add selective scheduling object
961         files.
962         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
963         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
964         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
965         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
966         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
967         (make_forwarder_block): Update loop latch if we have redirected
968         the loop latch edge.
969         * cfgloop.c (get_loop_body_in_custom_order): New function.
970         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
971         (CP_FALLTHRU_PREHEADERS): Likewise.
972         (get_loop_body_in_custom_order): Declare.
973         * cfgloopmanip.c (has_preds_from_loop): New.
974         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
975         Assert that the preheader edge will be fall thru when it is set.
976         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
977         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
978         fsel-sched-substitution, fselective-scheduling): New flags.
979         * cse.c (hash_rtx_cb): New.
980         (hash_rtx): Use it.
981         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
982         sel_sched_insn_cnt): New counters.
983         * final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
984         * genattr.c (main): Output maximal_insn_latency prototype.
985         * genautomata.c (output_default_latencies): New. Factor its code from ...
986         (output_internal_insn_latency_func): ... here.
987         (output_internal_maximal_insn_latency_func): New.
988         (output_maximal_insn_latency_func): New.
989         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
990         (struct hard_reg_set_iterator): New.
991         (hard_reg_set_iter_init, hard_reg_set_iter_set,
992         hard_reg_set_iter_next): New functions.
993         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
994         * lists.c (remove_free_INSN_LIST_node,
995         remove_free_EXPR_LIST_node): New functions.
996         * loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
997         set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
998         (loop_optimizer_finalize): Do not verify flow info after reload.
999         * recog.c (validate_replace_rtx_1): New parameter simplify.
1000         Default it to true.  Update all uses.  Factor out simplifying
1001         code to ...
1002         (simplify_while_replacing): ... this new function.
1003         (validate_replace_rtx_part,
1004         validate_replace_rtx_part_nosimplify): New.
1005         * recog.h (validate_replace_rtx_part,
1006         validate_replace_rtx_part_nosimplify): Declare.
1007         * rtl.c (rtx_equal_p_cb): New.
1008         (rtx_equal_p): Use it.
1009         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
1010         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
1011         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
1012         * vecprim.h: Add a vector type for unsigned int.
1013         * haifa-sched.c: Include vecprim.h and cfgloop.h.
1014         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
1015         ready_try, cycle_issued_insns, spec_info): Make global.
1016         (readyp): Initialize.
1017         (dfa_lookahead): New global variable.
1018         (old_max_uid, old_last_basic_block): Remove.
1019         (h_i_d): Make it a vector.
1020         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
1021         through HID macro.
1022         (after_recovery, adding_bb_to_current_region_p):
1023         New variables to handle correct insertion of the recovery code.
1024         (struct ready_list): Move declaration to sched-int.h.
1025         (rgn_n_insns): Removed.
1026         (rtx_vec_t): Move to sched-int.h.
1027         (find_insn_reg_weight): Remove.
1028         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
1029         (haifa_init_h_i_d, haifa_finish_h_i_d):
1030         New functions to initialize / finalize haifa instruction data.
1031         (extend_h_i_d, init_h_i_d): Rewrite.
1032         (unlink_other_notes): Move logic to add_to_note_list.  Handle
1033         selective scheduler.
1034         (ready_lastpos, ready_element, ready_sort, reemit_notes,
1035         find_fallthru_edge): Make global, remove static prototypes.
1036         (max_issue): Make global.  Add privileged_n and state parameters.  Use
1037         them.
1038         (extend_global, extend_all): Removed.
1039         (init_before_recovery): Add new param.  Fix the handling of the case
1040         when we insert a recovery code before the EXIT which has a predecessor
1041         with a fallthrough edge to it.
1042         (create_recovery_block): Make global.  Rename to
1043         sched_create_recovery_block.  Update.
1044         (change_pattern): Rename to sched_change_pattern.  Make global.
1045         (speculate_insn): Rename to sched_speculate_insn.  Make global.
1046         Split haifa-specific functionality into ...
1047         (haifa_change_pattern): New static function.
1048         (sched_extend_bb): New static function.
1049         (sched_init_bbs): New function.
1050         (current_sched_info): Change type to struct haifa_sched_info.
1051         (insn_cost): Adjust for selective scheduling.
1052         (dep_cost_1): New function.  Move logic from ...
1053         (dep_cost): ... here.
1054         (dep_cost): Use dep_cost_1.
1055         (contributes_to_priority_p): Use sched_deps_info instead of
1056         current_sched_info.
1057         (priority): Adjust to work with selective scheduling.  Process the
1058         corner case when all dependencies don't contribute to priority.
1059         (rank_for_schedule): Use ds_weak instead of dep_weak.
1060         (advance_state): New function.  Move logic from ...
1061         (advance_one_cycle): ... here.
1062         (add_to_note_list, concat_note_lists): New functions.
1063         (rm_other_notes): Make static.  Adjust for selective scheduling.
1064         (remove_notes, restore_other_notes): New functions.
1065         (move_insn): Add two arguments.  Update assert.  Don't call
1066         reemit_notes.
1067         (choose_ready): Remove lookahead variable, use dfa_lookahead.
1068         Remove more_issue, max_points.  Move the code to initialize
1069         max_lookahead_tries to max_issue.
1070         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
1071         ready.  Adjust use of move_insn.  Call restore_other_notes.
1072         (luid): Remove.
1073         (sched_init, sched_finish): Move Haifa-specific initialization/
1074         finalization to ...
1075         (haifa_sched_init, haifa_sched_finish): ... respectively.
1076         New functions.
1077         (setup_sched_dump): New function.
1078         (haifa_init_only_bb): New static function.
1079         (haifa_speculate_insn): New static function.
1080         (try_ready): Use haifa_* instead of speculate_insn and
1081         change_pattern.
1082         (extend_ready, extend_all): Remove.
1083         (sched_extend_ready_list, sched_finish_ready_list): New functions.
1084         (create_check_block_twin, add_to_speculative_block): Use
1085         haifa_insns_init instead of extend_global.  Update to use new
1086         initialization functions.  Change parameter.  Factor out code from
1087         create_check_block_twin to ...
1088         (sched_create_recovery_edges) ... this new function.
1089         (add_block): Remove.
1090         (sched_scan_info): New.
1091         (extend_bb): Use sched_scan_info.
1092         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
1093         static functions for walking through scheduling region.
1094         (sched_luids): New vector variable to replace uid_to_luid.
1095         (luids_extend_insn): New function.
1096         (sched_max_luid): New variable.
1097         (luids_init_insn): New function.
1098         (sched_init_luids, sched_finish_luids): New functions.
1099         (insn_luid): New debug function.
1100         (sched_extend_target): New function.
1101         (haifa_init_insn): New static function.
1102         (sched_init_only_bb): New hook.
1103         (sched_split_block): New hook.
1104         (sched_split_block_1): New function.
1105         (sched_create_empty_bb): New hook.
1106         (sched_create_empty_bb_1): New function.
1107         (common_sched_info, ready): New global variables.
1108         (current_sched_info_var): Remove.
1109         (move_block_after_check): Use common_sched_info.
1110         (haifa_luid_for_non_insn): New static function.
1111         (init_before_recovery): Use haifa_init_only_bb instead of
1112         add_block.
1113         (increase_insn_priority): New.
1114         * modulo-sched.c: (issue_rate): Remove static declaration.
1115         (sms_sched_info): Change type to haifa_sched_info.
1116         (sms_sched_deps_info, sms_common_sched_info): New variables.
1117         (setup_sched_infos): New.
1118         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
1119         Do not call regstat_free_calls_crossed.
1120         (sms_print_insn): Use const_rtx.
1121         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
1122         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
1123         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
1124         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
1125         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
1126         current_sched_info to use it.
1127         (enum reg_pending_barrier_mode): Move to sched-int.h.
1128         (h_d_i_d): New variable. Initialize to NULL.
1129         ({true, output, anti, spec, forward}_dependency_cache): Initialize
1130         to NULL.
1131         (estimate_dep_weak): Remove static declaration.
1132         (sched_has_condition_p): New function.  Adjust users of
1133         sched_get_condition to use it instead.
1134         (conditions_mutex_p): Add arguments indicating which conditions are
1135         reversed.  Use them.
1136         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
1137         argument to indicate whether returned condition is reversed.  Do not
1138         generate new rtx when condition should be reversed; indicate it by
1139         setting new argument instead.
1140         (add_dependence_list_and_free): Add deps parameter.
1141         Update all users.  Do not free dependence list when
1142         deps context is readonly.
1143         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
1144         contexts.
1145         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
1146         (remove_from_deps): New. Use the above functions.
1147         (cur_insn, can_start_lhs_rhs_p): New static variables.
1148         (add_or_update_back_dep_1): Initialize present_dep_type.
1149         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
1150         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
1151         haifa_note_dep): New functions implementing dependence hooks for
1152         the Haifa scheduler.
1153         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
1154         note_dep): New functions.
1155         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
1156         functions.
1157         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
1158         (free_deps): Initialize deps->reg_last.
1159         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
1160         sched_analyze_insn): Update to use dependency hooks infrastructure
1161         and readonly contexts.
1162         (deps_analyze_insn): New function.  Move part of logic from ...
1163         (sched_analyze): ... here.  Also move some logic to ...
1164         (deps_start_bb): ... here.  New function.
1165         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
1166         sel_sched_p.
1167         (sched_deps_init): New function.  Move code from ...
1168         (init_dependency_caches): ... here.  Remove.
1169         (init_deps_data_vector): New.
1170         (sched_deps_finish): New function.  Move code from ...
1171         (free_dependency_caches): ... here.  Remove.
1172         (init_deps_global, finish_deps_global): Adjust for use with
1173         selective scheduling.
1174         (get_dep_weak): Move logic to ...
1175         (get_dep_weak_1): New function.
1176         (ds_merge): Move logic to ...
1177         (ds_merge_1): New static function.
1178         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
1179         (ds_get_max_dep_weak): New function.
1180         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
1181         (n_insns): Rename to rgn_n_insns.
1182         (debug_ebb_dependencies): New function.
1183         (init_ready_list): Use it.
1184         (begin_schedule_ready): Use sched_init_only_bb.
1185         (ebb_print_insn): Indicate when an insn starts a new cycle.
1186         (contributes_to_priority, compute_jump_reg_dependencies,
1187         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
1188         (add_block1): Remove to ebb_add_block.
1189         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
1190         (schedule_ebb): Initialize them.  Use remove_notes instead of
1191         rm_other_notes.  Use haifa_local_init/finish.
1192         (schedule_ebbs): Use haifa_sched_init/finish.
1193         * sched-int.h: Include vecprim.h, remove rtl.h.
1194         (struct ready_list): Delete declaration.
1195         (sched_verbose_param, enum sched_pass_id_t,
1196         bb_vec_t, insn_vec_t, rtx_vec_t): New.
1197         (struct sched_scan_info_def): New structure.
1198         (sched_scan_info, sched_scan, sched_init_bbs,
1199         sched_init_luids, sched_finish_luids, sched_extend_target,
1200         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
1201         (struct common_sched_info_def): New.
1202         (common_sched_info, haifa_common_sched_info,
1203         sched_emulate_haifa_p): Declare.
1204         (sel_sched_p): New.
1205         (sched_luids): Declare.
1206         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
1207         (sched_max_luid, insn_luid): Declare.
1208         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
1209         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
1210         print_insn, print_pattern, print_value, haifa_classify_insn,
1211         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
1212         setup_sched_dump, sched_init, sched_finish,
1213         sel_insn_is_speculation_check): Export.
1214         (struct ready_list): Move from haifa-sched.c.
1215         (ready_try, ready, max_issue): Export.
1216         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
1217         sched_init_only_bb, sched_split_block, sched_split_block_1,
1218         sched_create_empty_bb, sched_create_empty_bb_1,
1219         sched_create_recovery_block, sched_create_recovery_edges): Export.
1220         (enum reg_pending_barrier_mode): Export.
1221         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
1222         (deps_t): New.
1223         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
1224         print_insn field.  Move add_block and fix_recovery_cfg to
1225         common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
1226         (struct sched_deps_info_def): ... this new structure.
1227         (sched_deps_info): Declare.
1228         (struct spec_info_def): Remove weakness_cutoff, add
1229         data_weakness_cutoff and control_weakness_cutoff.
1230         (spec_info): Declare.
1231         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
1232         dep_count field.
1233         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
1234         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
1235         (current_sched_info): Change type to struct haifa_sched_info.
1236         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
1237         (h_d_i_d): New variable.
1238         (HDID): New accessor macro.
1239         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
1240         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
1241         and HDID.
1242         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
1243         (enum SCHED_FLAGS): Update for selective scheduler.
1244         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
1245         (init_dependency_caches, free_dependency_caches): Delete declarations.
1246         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
1247         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
1248         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
1249         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
1250         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
1251         ds_to_dt): Export.
1252         (rm_other_notes): Delete declaration.
1253         (schedule_block): Remove one argument.
1254         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
1255         ready_element, ready_lastpos, sched_extend_ready_list,
1256         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
1257         concat_note_lists): Export.
1258         (struct region): Move from sched-rgn.h.
1259         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
1260         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
1261         BLOCK_TO_BB, CONTAINING_RGN): Export.
1262         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
1263         (current_nr_blocks, current_blocks, target_bb): Likewise.
1264         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
1265         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
1266         sched_rgn_local_init, extend_regions,
1267         rgn_make_new_region_out_of_new_block, compute_priorities,
1268         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
1269         extend_rgns, deps_join rgn_setup_common_sched_info,
1270         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
1271         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
1272         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
1273         increase_insn_priority): Likewise.
1274         * sched-rgn.c: Include sel-sched.h.
1275         (ref_counts): New static variable.  Use it ...
1276         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
1277         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
1278         (sched_is_disabled_for_current_region_p): Delete static declaration.
1279         (struct region): Move to sched-int.h.
1280         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
1281         ebb_head): Define and initialize.
1282         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
1283         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
1284         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
1285         sched-int.h.
1286         (find_single_block_region): Add new argument to indicate that EBB
1287         regions should be constructed.
1288         (debug_live): Delete declaration.
1289         (current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
1290         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
1291         declaration.
1292         (init_regions): Delete declaration.
1293         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
1294         rgn_estimate_number_of_insns): New.
1295         (too_large): Use estimate_number_of_insns.
1296         (haifa_find_rgns): New. Move the code from ...
1297         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
1298         (free_trg_info): New.
1299         (compute_trg_info): Allocate candidate tables here instead of ...
1300         (init_ready_list): ... here.
1301         (rgn_print_insn): Use const_rtx.
1302         (contributes_to_priority, extend_regions): Delete static declaration.
1303         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
1304         (add_block1): Rename to rgn_add_block.
1305         (debug_rgn_dependencies): Delete static qualifier.
1306         (new_ready): Use sched_deps_info.  Simplify.
1307         (rgn_common_sched_info, rgn_const_sched_deps_info,
1308         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
1309         (region_sched_info): Rename to rgn_const_sched_info.
1310         (deps_join): New, extracted from ...
1311         (propagate_deps): ... here.
1312         (compute_block_dependences, debug_dependencies): Update for selective
1313         scheduling.
1314         (free_rgn_deps, compute_priorities): New functions.
1315         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
1316         sched_rgn_compute_dependencies): New functions.
1317         (schedule_region): Use them.
1318         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
1319         rgn_setup_common_sched_info, rgn_setup_sched_infos):
1320         New functions.
1321         (schedule_insns): Call new functions that were split out.
1322         (rgn_make_new_region_out_of_new_block): New.
1323         (get_rgn_sched_max_insns_priority): New.
1324         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
1325         scheduling when appropriate.
1326         * sched-vis.c: Include insn-attr.h.
1327         (print_value, print_pattern): Make global.
1328         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
1329         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
1330         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1331         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1332         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
1333         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
1334         hooks.  Initialize them to 0.
1335         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1336         * target.h (struct gcc_target): Add them.  Rename gen_check field to
1337         gen_spec_check.
1338         * flags.h (sel_sched_switch_set): Declare.
1339         * opts.c (sel_sched_switch_set): New variable.
1340         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
1341         pipelining is disabled from command line.
1342         (common_handle_option): Record whether selective scheduling is
1343         requested from command line.
1344         * doc/invoke.texi: Document new flags and parameters.
1345         * doc/tm.texi: Document new target hooks.
1346         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
1347         (dfa_state_size): Do not declare locally.
1348         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
1349         * config/rs6000/rs6000.c (rs6000_init_sched_context,
1350         rs6000_alloc_sched_context, rs6000_set_sched_context,
1351         rs6000_free_sched_context): New functions.
1352         (struct _rs6000_sched_context): New.
1353         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
1354         scheduling.
1355         (rs6000_sched_finish): Do not run for selective scheduling.
1356
1357 2008-08-31  Jan Hubicka  <jh@suse.cz>
1358
1359         * frv.c (frv_rtx_costs): Update forward declaration.
1360         * spu.c (spu_rtx_costs): Likewise.
1361         * pdp11.c: Include df.h
1362         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
1363         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
1364         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
1365         * iq2000.c (iq2000_address_cost): Add speed argument.
1366         (iq2000_rtx_costs): Likewise.
1367         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
1368         update call of mn10300_address_cost.
1369         * mcore.c: Include df.h
1370         (mcore_rtx_costs): Update prototype.
1371         * score3.c: Include df.h
1372         (score3_rtx_costs): Remove speed argument.
1373         * score7.c: Include df.h
1374         (score7_address_cost): Remove speed argument.
1375         * score-protos.h (score_address_cost): Update prototype.
1376         * score.c: Include df.h
1377         (score_rtx_costs): Update call of costs functions.
1378         * v850.c (v850_rtx_costs): Add bool argument.
1379
1380 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
1381
1382         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
1383
1384 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1385
1386         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
1387         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
1388
1389 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1390
1391         * mkmap-flat.awk: Add option pe_dll.
1392         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
1393         * config/i386/t-cygwin (SHLIB_LC): Add.
1394         * config/i386/t-mingw32 (SHLIB_LC): Add.
1395         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
1396         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
1397         (LINK_SPEC): Support libgcc_s.
1398         (LIBGCC_SPEC): Support libgcc_s.
1399         (LIBGCC_SONAME): New.
1400
1401 2008-08-31  Jan Hubicka  <jh@suse.cz>
1402
1403         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
1404         mistakely had old version of patch.
1405
1406         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
1407         (ipcp_estimate_growth): New.
1408         (ipcp_insert_stage): Use ipcp_estimate_growth.
1409         * profile.c (branch_prob): When reading failed, do not consider
1410         profile as read.
1411
1412 2008-08-31  Jan Hubicka  <jh@suse.cz>
1413
1414         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
1415         loop is optimized for speed.
1416
1417 2008-08-31  Richard Guenther  <rguenther@suse.de>
1418
1419         PR middle-end/37289
1420         * fold-const.c (fold_binary): Retain conversions in folding
1421         ~A + 1 to -A.
1422
1423 2008-08-31  Jan Hubicka  <jh@suse.cz>
1424
1425         * postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.
1426         * predict.c (maybe_hot_frequency_p): Make inline.
1427         (maybe_hot_count_p): Break out from ...
1428         (maybe_hot_bb_p): ... this one.
1429         (maybe_hot_edge_p): Simplify.
1430         * basic-block.h (probably_cold_bb_p): Remove.
1431
1432 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
1433
1434         PR target/37168
1435         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
1436         prototype.
1437         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
1438         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
1439         Also split V4SFmode.
1440         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
1441         vector float modes.
1442
1443 2008-08-31  Jan Hubicka  <jh@suse.cz>
1444
1445         * predict.c (PROB_VERY_LIKELY): Make small enough so things
1446         become cold.
1447         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
1448
1449 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
1450
1451         PR debug/37287
1452         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
1453         add source coords.
1454
1455         * dwarf2out.c (native_encode_initializer): Subtract min_index for
1456         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
1457
1458 2008-08-31  Jan Hubicka  <jh@suse.cz>
1459
1460         * sparc.h (BRANCH_COST): Fix macro definition.
1461         * avr.c (avr_operand_rtx_cost): Add speed argument.
1462         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
1463
1464 2008-08-31  Richard Guenther  <rguenther@suse.de>
1465
1466         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
1467         types instead of operands.  Re-instantiate verifying of
1468         binary expression operands.
1469
1470 2008-08-30  Jan Hubicka  <jh@suse.cz>
1471
1472         * fwprop.c (should_replace_address): Add speed attribute.
1473         (PR_OPTIMIZE_FOR_SPEED): New flag.
1474         (propagate_rtx_1): Use it.
1475         (propagate_rtx): Set it.
1476         (try_fwprop_subst): Update call of rtx_costs.
1477         (forward_propagate_and_simplify): LIkewise.
1478         * hooks.c (hook_int_rtx_bool_0): New
1479         (hook_bool_rtx_int_int_intp_false): Replace by ...
1480         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
1481         * hooks.h (hook_int_rtx_bool_0): New
1482         (hook_bool_rtx_int_int_intp_false): Replace by ...
1483         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
1484         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
1485         (prepare_cmp_insn): UPdate call of rtx_cost.
1486         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
1487         (reload_cse_simplify_operands): Update call of rtx_cost.
1488         (reload_cse_move2add): call of rtx_cost.
1489         * target.h (struct gcc_target): Update rtx_costs and address_costs.
1490         * rtlanal.c (rtx_cost): Add speed argument.
1491         (address_cost): Add speed argument
1492         (default_address_cost): Likewise.
1493         (insn_rtx_cost): Likewise.
1494         * cfgloopanal.c (seq_cost): Add speed argument.
1495         (target_reg_cost, target_spill_cost): Turn to array.
1496         (init_set_costs): Update for speed.
1497         (estimate_reg_pressure_cost): Add speed argument.
1498         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
1499         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
1500         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
1501         (seq_cost): Add speed argument.
1502         (computation_cost): Add speed arugment.
1503         (add_cost, multiply_by_const, get_address_cost): add speed argument.
1504         (force_expr_to_var_cost): Update for profile info.
1505         (force_var_cost): Likewise.
1506         (split_address_cost): Likewise.
1507         (ptr_difference_cost): Likewise.
1508         (difference_cost): Likewise.
1509         (get_computation_cost_at): Likewise.
1510         (determine_iv_cost): Likewise.
1511         (ivopts_global_cost_for_size): Likewise.
1512         (rewrite_use_address): Likewise.
1513         (tree_ssa_iv_optimize_loop): Initialize speed field.
1514         * cse.c (optimize_this_for_speed_p): New static var.
1515         (notreg_cost): Update call of rtx_cost.
1516         (cse_extended_basic_block): set optimize_this_for_speed_p.
1517         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
1518         (noce_try_cmove_arith): Likewise.
1519         (noce_try_sign_mask): LIkewise.
1520         * expr.c (compress_float_constant): Update rtx_cost calls.
1521         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
1522         (addr_to_parts): Likewise.
1523         (create_mem_ref): Likewise.
1524         * dse.c (find_shift_sequence): Add speed argument.
1525         (replace_read): Update call.
1526         * calls.c (precompute_register_parameters): Update call of rtx_cost.
1527         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
1528         * neg_cost, shift_cost, shiftadd_cost,
1529         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
1530         mul_highpart_cost): Increase dimension.
1531         (init_expmed): Initialize for both size and speed.
1532         (expand_shift): Use profile.
1533         (synth_mult): Use profile.
1534         (choose_mult_variant): Use profile.
1535         (expand_mult): Use profile.
1536         (expand_mult_highpart_optab): Use profile.
1537         (expand_mult_highpart): Use profile.
1538         (expand_smod_pow2): Use profile.
1539         (expand_divmod): Use profile.
1540         * simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
1541         * loop-invariant.c (create_new_invariant): Use profile.
1542         (gain_for_invariant): Add speed parameter.
1543         (best_gain_for_invariant): Likewise.
1544         (find_invariants_to_move): Likewise.
1545         (move_single_loop_invariants): Set it.
1546         * target-def.h (TARGET_RTX_COSTS): Use hook.
1547         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
1548         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
1549         * output.h (default_address_cost): Update prototype.
1550         * combine.c (optimize_this_for_speed_p): New static var.
1551         (combine_validate_cost): Update call of rtx_cost.
1552         (combine_instructions): Set optimize_this_for_speed_p.
1553         (expand_compound_operation): Update call of rtx_cost.
1554         (make_extraction):Update call of rtx_cost.
1555         (force_to_mode):Update call of rtx_cost.
1556         (distribute_and_simplify_rtx):Update call of rtx_cost.
1557         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
1558         (estimate_reg_pressure_cost): Update prototype.
1559         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
1560         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
1561         Remove.
1562         * config/alpha/alpha.c (alpha_rtx_costs): Update.
1563         (alpha_rtx_costs): Update.
1564         * config/frv/frv.c (frv_rtx_costs): Update.
1565         * config/s390/s390.c (s390_rtx_costs): Update.
1566         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
1567         (m32c_rtx_costs): Update.
1568         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
1569         (spu_rtx_costs): Update.
1570         * config/sparc/sparc.c (sparc_rtx_costs): Update.
1571         * config/m32r/m32r.c (m32r_rtx_costs): Update.
1572         * config/i386/i386.c (:ix86_address_cost): Update.
1573         (ix86_rtx_costs): Update.
1574         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
1575         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
1576         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
1577         * config/crx/crx.c (crx_address_cost): Update.
1578         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
1579         * config/stormy16/stormy16.c
1580         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
1581         * config/m68hc11/m68hc11.c
1582         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
1583         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
1584         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
1585         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
1586         * config/ia64/ia64.c (ia64_rtx_costs): Update.
1587         * config/m68k/m68k.c (m68k_rtx_costs): Update.
1588         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
1589         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
1590         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
1591         (mcore_rtx_costs): update.
1592         * config/score/score3.c (score3_rtx_costs): Update.
1593         * config/score/score7.c (score7_rtx_costs): Update.
1594         * config/score/score3.h (score3_rtx_costs):Update.
1595         * config/score/score7.h (score7_rtx_costs): Update.
1596         * config/score/score.c (score_rtx_costs): Update.
1597         * config/arm/arm.c (arm_address_cost): Update.
1598         (arm_rtx_costs_1): Update.
1599         (arm_rtx_costs_1): Update.
1600         (arm_size_rtx_costs): Update.
1601         (arm_size_rtx_costs): Update.
1602         (arm_size_rtx_costs): Update.
1603         (arm_xscale_rtx_costs): Update.
1604         (arm_thumb_address_cost): Update.
1605         * config/pa/pa.c (hppa_address_cost): Update.
1606         * config/mips/mips.c (mips_rtx_costs): Update.
1607         * config/vax/vax.c (vax_address_cost): Update.
1608         * config/h8300/h8300.c (h8300_shift_costs): Update.
1609         (h8300_rtx_costs): Update.
1610         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
1611         (v850_rtx_costs): Update.
1612         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
1613         * config/bfin/bfin.c
1614         (bfin_address_cost): Update.
1615         (bfin_rtx_costs): Update.
1616         * stmt.c (lshift_cheap_p): Update.
1617
1618 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1619
1620         PR middle-end/36444
1621         * expmed.c (extract_bit_field_1): Check the mode size to make
1622         sure the vector modes have the same size.
1623
1624 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
1625
1626         * dojump.c (top level): Include basic-block.h to declare
1627         optimize_insn_for_speed_p
1628
1629         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
1630
1631         * opts.h (CL_SAVE): New option class for marking options that are
1632         target specific options usable in the target attribute.
1633         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
1634
1635         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
1636         can easily find the target specific options that are safe to use
1637         in the attribute or pragma.
1638
1639         * attribs.c (decl_attributes): Change #pragma GCC option to
1640         #pragma GCC target, and attribute((option(...))) to
1641         attribute((target(...))).
1642
1643         * doc/extend.texi (target attribute): Change from option
1644         attribute.  Delete push/pop/reset.
1645         (#pragma GCC target): Change from #pragma GCC option.  Delete
1646         push/pop/reset.
1647         (#pragma GCC push_options): Document new pragma.
1648         (#pragma GCC pop_options): Document new pragma.
1649         (#pragma GCC reset_options): Document new pragma.
1650
1651         * targhooks.c (default_target_option_valid_attribute_p): Add
1652         warning about port not supporting target attributes.
1653         (default_target_option_pragma_parse): New function, warn about
1654         #pragma GCC target not being supported.
1655
1656         * targhooks.h (default_target_option_pragma_parse): Add
1657         declaration.
1658
1659         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
1660         TI_CURRENT_OPTION_PRAGMA.
1661         (current_target_pragma): Rename from current_option_pragma.
1662
1663         * target.h: (struct target_option): Delete booleans for changing
1664         the optimization level on hot/cold functions.  Change signature of
1665         pragma_parse hook to take a second tree.
1666
1667         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
1668
1669         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
1670         that the declaration is done at global scope.
1671
1672         * langhooks.c (add_builtin_function_common): Move most of the code
1673         from add_builtin_function here, calling the hook passed in.
1674         (add_builtin_function): Call add_builtin_function_common with
1675         standard builtin hook.
1676         (add_builtin_function_ext_scope): New function to add builtins to
1677         global scope.
1678
1679         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
1680         hook.
1681         (add_builtin_function_ext_scope): Add declaration.
1682
1683         * c-pragma.c (handle_pragma_target): Rename from
1684         handle_pragma_option, #pragma GCC option is now #pragma GCC
1685         target.  Move warning about port not supporting target options to
1686         default pragma parse hook.  Remove push/pop/reset from this
1687         pragma.
1688         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
1689         (option_stack): Delete static variable.
1690         (optimize_stack): Ditto.
1691         (optons_stack): New stack of saved target and optimization
1692         options.
1693         (handle_pragma_push_options): New function to handle pushing both
1694         target and optimization options.
1695         (handle_pragma_pop_options): New function to handle popping both
1696         target and optimization options.
1697         (handle_pragma_reset_options): New function to handle resetting
1698         both target and optimization options to their initial state.
1699         (init_pragma): Rename handle_pragma_option to
1700         handle_pragma_target.  Add support for push_options, pop_options,
1701         and reset_options pragmas.
1702
1703         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
1704         default_target_option_pragma_parse.
1705         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
1706         default_target_option_valid_attribute_p.
1707         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
1708         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
1709         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
1710         optimization level on hot/cold functions.
1711
1712         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
1713         if the caller and callee have different optimization levels.
1714
1715         * c-common.c (handle_target_attribute): Rename from
1716         handle_option_attribute, attribute((option(...))) is now
1717         attribute((target(...))).  Move warning if the port does not
1718         support target attributes to the default hook.
1719         (handle_hot_attribute): Delete code to change the optimization
1720         level of hot functions.
1721         (handle_cold_attribute): Ditto.
1722
1723         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
1724         argument that is the binary tree options to use if there are no
1725         arguments.  Call ix86_valid_target_attribute_tree instead of
1726         ix86_valid_option_attribute_tree.
1727         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
1728         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
1729         ix86_pragma_option_parse.
1730
1731         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
1732         Rename from ix86_valid_option_attribute_tree.
1733
1734         * config/i386/i386.c (ix86_add_new_builtins): New function to add
1735         new builtins when the ISA changes.
1736         (ix86_valid_target_attribute_tree): Rename from
1737         ix86_valid_option_attribute_tree.  Change callers.  If the
1738         function specified optimization options, use those as the starting
1739         point before setting up the target attributes.  If the
1740         optimization options were changed in the course of setting the
1741         target attributes, record the new optimization options.
1742         (ix86_valid_target_attribute_tree_inner_p): Rename from
1743         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
1744         ix86_add_new_builtins if the ISA changed.
1745         (ix86_valid_target_attribute_p): Rename from
1746         ix86_valid_option_attribute_p.  Change callers.
1747         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
1748         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
1749         as delayed builtin functions.
1750         (struct builtin_isa): New structure to record builtin functions
1751         that should be delayed until the ISA for that function is used.
1752         (ix86_builtins_isa): Change from int to struct to track builtin
1753         functions we want to declare at some point.
1754         (def_builtin): If the front end can delay defining the builtin
1755         functions, don't create builtins for ISAs not part of the default
1756         options.
1757         (def_builtin_const): Ditto.
1758         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
1759         __builtin_ia32_pcmov_v2di to be different builtin functions.
1760         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
1761         a structure instead of an int.
1762         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
1763         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
1764         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
1765         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
1766
1767         * config/ia64/ia64.h
1768         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
1769         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
1770
1771         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
1772         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
1773         (LANG_HOOKS_INITIALIZER): Add
1774         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
1775
1776 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1777
1778         PR target/37270
1779         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
1780         the reload address with the index register for SFmode
1781         access with a displacement.
1782
1783 2008-08-30  Jan Hubicka  <jh@suse.cz>
1784
1785         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
1786         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
1787         * dojump.c (do_jump): Likewise.
1788         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
1789         (note-if_info): Add BRANCH_COST.
1790         (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
1791         noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
1792         noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
1793         branch cost.
1794         * expr.h (BRANCH_COST): Update default.
1795         * predict.c (predictable_edge_p): New function.
1796         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
1797         Update BRANCH_COST call.
1798         * basic-block.h (predictable_edge_p): Declare.
1799         * config/alpha/alpha.h (BRANCH_COST): Update.
1800         * config/frv/frv.h (BRANCH_COST): Update.
1801         * config/s390/s390.h (BRANCH_COST): Update.
1802         * config/spu/spu.h (BRANCH_COST): Update.
1803         * config/sparc/sparc.h (BRANCH_COST): Update.
1804         * config/m32r/m32r.h (BRANCH_COST): Update.
1805         * config/i386/i386.h (BRANCH_COST): Update.
1806         * config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
1807         * config/sh/sh.h (BRANCH_COST): Update.
1808         * config/pdp11/pdp11.h (BRANCH_COST): Update.
1809         * config/avr/avr.h (BRANCH_COST): Update.
1810         * config/crx/crx.h (BRANCH_COST): Update.
1811         * config/xtensa/xtensa.h (BRANCH_COST): Update.
1812         * config/stormy16/stormy16.h (BRANCH_COST): Update.
1813         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
1814         * config/iq2000/iq2000.h (BRANCH_COST): Update.
1815         * config/ia64/ia64.h (BRANCH_COST): Update.
1816         * config/rs6000/rs6000.h (BRANCH_COST): Update.
1817         * config/arc/arc.h (BRANCH_COST): Update.
1818         * config/score/score.h (BRANCH_COST): Update.
1819         * config/arm/arm.h (BRANCH_COST): Update.
1820         * config/pa/pa.h (BRANCH_COST): Update.
1821         * config/mips/mips.h (BRANCH_COST): Update.
1822         * config/vax/vax.h (BRANCH_COST): Update.
1823         * config/h8300/h8300.h (BRANCH_COST): Update.
1824         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
1825         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
1826         * doc/tm.texi (BRANCH_COST): Update.
1827
1828 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
1829
1830         PR target/37283
1831         * config/arm/arm.c (arm_optimization_options): Set
1832         flag_section_anchors to 2 instead of 1 to distinguish it from
1833         -fsection-anchors given explicitely on the command line.
1834
1835 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
1836
1837         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
1838         final insn of a split.
1839
1840 2008-08-30  Jan Hubicka  <jh@suse.cz>
1841
1842         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
1843         optimized for speed.
1844         * final.c (compute_alignments): Use optimize_bb_for_size_p.
1845         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
1846         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
1847         flag_gcse_after_reload_set): New static vars.
1848         (common_handle_option): Enable those flags for profile-use.
1849         (decode_options): Remove optimize_size flags that are handled
1850         on higher granuality.
1851         * tree-vectorizer.c (vectorize_loops): Use
1852         optimize_loop_nest_for_speed_p.
1853         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
1854         * tree-predcom.c (tree_predictive_commoning): Use
1855         optimize_loop_for_speed_p.
1856         * varasm.c (assemble_start_function): Use optimize_function_for_speed_p.
1857         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
1858         * predict.c (optimize_loop_for_speed_p): Fix walk.
1859
1860 2008-08-30  Jan Hubicka  <jh@suse.cz>
1861
1862         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
1863         functions.
1864         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
1865         profile presence locally.
1866
1867 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
1868
1869         PR bootstrap/37086
1870         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
1871         versions before 4.0.
1872
1873 2008-08-29  Jan Hubicka  <jh@suse.cz>
1874
1875         * tree-inline.c (insert_init_stmt): Insert sequence even when
1876         not in SSA form.
1877
1878 2008-08-29  Jeff Law  <law@redhat.com>
1879
1880         * mn10300.c (mn10300_secondary_reload_class): We need secondary
1881         reloads for AM33-2 if IN is a pseudo with an equivalent memory
1882         location and class is an FP register.
1883
1884 2008-08-29  Jan Hubicka  <jh@suse.cz>
1885
1886         * see.c (see_merge_one_def_extension): Silence used uninitialized
1887         warning.
1888         * matrix-reorg.c (check_allocation_function): Likewise.
1889         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
1890
1891 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
1892
1893         PR c/37261
1894         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
1895         compute new & and | in type rather than TREE_TYPE (arg0).
1896
1897         * dwarf2out.c (fortran_common): Update comment.
1898         (gen_variable_die): Swap com_die and var_die variables in Fortran
1899         COMMON block handling code.
1900
1901         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
1902
1903         * dwarf2out.c (gen_const_die): New function.
1904         (size_of_die, value_format, output_die): Output larger
1905         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
1906         (native_encode_initializer): New function.
1907         (tree_add_const_value_attribute): Call it.
1908         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
1909
1910         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
1911         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
1912         TREE_THIS_VOLATILE to add_type_attribute.
1913
1914         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
1915         types.
1916         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
1917         types.
1918
1919         * dwarf2out.c (loc_by_reference): New function.
1920         (add_location_or_const_value_attribute): Use it.
1921
1922         PR fortran/23057
1923         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
1924         as DW_TAG_variable children of DW_TAG_common_block rather than
1925         DW_TAG_member children.  Put DW_AT_external to individual
1926         DW_TAG_variable DIEs, not to DW_TAG_common_block.
1927
1928         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
1929         loc_descriptor_from_tree_1.
1930
1931         PR fortran/29635
1932         PR fortran/23057
1933         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
1934         arguments to imported_module_or_decl.
1935         (debug_nothing_tree_tree): Removed.
1936         (debug_nothing_tree_tree_tree_bool): New prototype.
1937         * debug.c (do_nothing_debug_hooks): Adjust.
1938         (debug_nothing_tree_tree): Removed.
1939         (debug_nothing_tree_tree_tree_bool): New function.
1940         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
1941         (gen_variable_die): Put all common vars for the
1942         same COMMON block under one DW_TAG_common_block.
1943         (declare_in_namespace): Return new context_die, for Fortran
1944         return the module DIE instead of adding extra declarations into
1945         the namespace.
1946         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
1947         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
1948         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
1949         DW_AT_declaration.
1950         (dwarf2out_global_decl): Don't skip Fortran global vars.
1951         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
1952         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
1953         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
1954         DW_TAG_imported_declaration as child of previous
1955         DW_TAG_imported_module.
1956         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
1957         * sdbout.c (sdb_debug_hooks): Likewise.
1958         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1959
1960 2008-08-29  Jan Hubicka  <jh@suse.cz>
1961
1962         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
1963
1964         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
1965         * ipa-cp.c (n_cloning_candidates): New static variable.
1966         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
1967         (ipcp_print_all_lattices): Improve debug output.
1968         (ipcp_cloning_candidate_p): New function.
1969         (ipcp_initialize_node_lattices): Use it.
1970         (ipcp_init_stage): Do only analyzis here; prettier debug output.
1971         (ipcp_propagate_stage): Prettier debug output.
1972         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
1973         (ipcp_print_all_structures): Remove.
1974         (ipcp_need_redirect_p): Test !n_cloning_candidates.
1975         (ipcp_insert_stage): Prettier debug output; call
1976         cgraph_remove_unreachable_nodes before propagating.
1977         (pass_ipa_cp): Schedule function removal pass.
1978         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
1979         debug output.
1980         (cgraph_maybe_hot_edge_p): Move to ...
1981         * predict.c (cgraph_maybe_hot_edge_p) ... here.
1982         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
1983         (common_handle_option): Set them; enable ipa-cp when profiling.
1984         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
1985         (ipa_print_all_jump_functions): Likewise.
1986         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
1987         (ipa_print_node_params, ipa_print_all_params): New.
1988         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
1989         ipa_print_all_param_flags): Remove.
1990         (ipa_print_node_params, ipa_print_all_params): New.
1991
1992 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
1993
1994         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
1995         change from 2008-04-03.
1996         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
1997
1998 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
1999
2000         PR rtl-opt/37251
2001
2002         * ira-color.c (push_allocnos_to_stack): Truncate
2003         removed_splay_allocno_vec.
2004
2005 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
2006
2007         PR rtl-opt/37243
2008         * ira-color (ira_fast_allocation): Don't assign hard registers to
2009         global allocnos.
2010
2011 2008-08-29  Jan Hubicka  <jh@suse.cz>
2012
2013         PR middle-end/37278
2014         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
2015         for cold internal loops.
2016
2017 2008-08-29  Richard Guenther  <rguenther@suse.de>
2018
2019         * tree-ssa-structalias.c (create_variable_info_for): Do not
2020         create fields for heap vars or vars with a noalias state.
2021         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
2022         from ESCAPED.
2023
2024 2008-08-29  Richard Guenther  <rguenther@suse.de>
2025
2026         * common.opt (ftree-store-ccp): Mark as preserved for
2027         backward compatibility.
2028         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
2029         * tree-pass.h (pass_store_ccp): Remove.
2030         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
2031         (first_vdef): Remove declaration.
2032         (get_value_loaded_by): Likewise.
2033         * tree-ssa-ccp.c (do_store_ccp): Remove.
2034         (get_default_value): Simplify as do_store_ccp is always false
2035         now.  Do not initialize mem_ref.
2036         (set_value_varying): Likewise.
2037         (canonicalize_float_value): Likewise.
2038         (set_lattice_value): Likewise.
2039         (likely_value): Likewise.
2040         (surely_varying_stmt_p): Likewise.
2041         (ccp_initialize): Likewise.
2042         (ccp_lattice_meet): Likewise.
2043         (ccp_visit_phi_node): Likewise.
2044         (ccp_fold): Likewise.
2045         (evaluate_stmt): Likewise.
2046         (visit_assignment): Likewise.
2047         (ccp_visit_stmt): Likewise.
2048         (execute_ssa_ccp): Fold into ...
2049         (do_ssa_ccp): ... this.
2050         (do_ssa_store_ccp): Remove.
2051         (gate_store_ccp): Likewise.
2052         (pass_store_ccp): Likewise.
2053         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
2054         initialize mem_ref.
2055         * tree-ssa-propagate.c (first_vdef): Remove.
2056         (get_value_loaded_by): Likewise.
2057         (replace_vuses_in): Likewise.
2058         (substitute_and_fold): Do not call replace_vuses_in.
2059         * opts.c (decode_options): Do not set flag_tree_store_ccp.
2060
2061 2008-08-29  Richard Guenther  <rguenther@suse.de>
2062
2063         PR middle-end/37236
2064         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
2065         PARAM_NOALIAS tags with is_heapvar.
2066         * tree-ssa-operands.c (access_can_touch_variable): Offset
2067         based tests do not apply for heapvars.  Fix offset test.
2068
2069 2008-08-29  Jan Hubicka  <jh@suse.cz>
2070
2071         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
2072         (-fipa-cp-clone): Enabled by default at -O3.
2073         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
2074         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
2075
2076 2008-08-29  Jan Hubicka  <jh@suse.cz>
2077
2078         * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
2079         New functions.
2080         * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
2081         Declare.
2082         * gimple.c (giple_copy_call_skip_args): New function.
2083         (giple_copy_call_skip_args): Declare.
2084
2085         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
2086         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
2087         (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
2088         (ipcp_create_replace_map): Improve debug output.
2089         (ipcp_need_redirect_p): Return false when not clonning.
2090         (ipcp_update_callgraph): Skip args.
2091         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
2092         skip args.
2093         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
2094         (save_inline_function_body): Update call of tree_function_versioning.
2095         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
2096         * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
2097         (tree_function_versioning): Likewise.
2098         * tree-inline.h (tree_function_versioning): Update prototype.
2099
2100 2008-08-29  Jan Hubicka  <jh@suse.cz>
2101
2102         * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
2103         * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
2104         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
2105         * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
2106         * value-prof.c (gimple_divmod_fixed_value_transform,
2107         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
2108         gimple_stringops_transform): Use optimize_bb_for_size_p.
2109         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
2110         * final.c (compute_alignments): Use optimize_function_for_size_p.
2111         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
2112         (fold_builtin_strcpy, fold_builtin_fputs): Use
2113         optimize_function_for_size_p.
2114         * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
2115         * recog.c (relax_delay_slots): Likewise.
2116         * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
2117         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
2118         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
2119         optimize_function_for_size_p.
2120         (cgraph_decide_inlining_of_small_function): Use
2121         optimize_function_for_size_p.
2122         * global.c (find_reg): Use optimize_function_for_size_p.
2123         * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
2124         flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
2125         flag_prefetch_loop_arrays. Those can work it out from profile.
2126         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
2127         optimize_loop_for_speed_p.
2128         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
2129         argument.
2130         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
2131         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
2132         * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
2133         * local-alloc.c (block_alloc): Pass BB pointer.
2134         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
2135         * gcse.c (gcse_main): Use optimize_function_for_size_p.
2136         * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
2137         (decide_peel_completely): Likewise.
2138         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
2139         optimize_loop_for_size_p.
2140         (vect_enhance_data_refs_alignment): Likewise.
2141         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
2142         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
2143         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
2144         (try_crossjump_bb): Use optimize_bb_for_size_p.
2145         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2146         optimize_loop_for_speed_p.
2147         * bb-reorder.c (find_traces_1_round): Likewise.
2148         (copy_bb): Use optimize_bb_for_speed_p.
2149         (duplicate_computed_gotos): Likewise.
2150         * basic-block.h (optimize_loop_nest_for_size_p,
2151         optimize_loop_nest_for_speed_p): New.
2152         * stmt.c (expand_case): Use optimize_insn_for_size_p.
2153
2154 2008-08-29  Tristan Gingold  <gingold@adacore.com>
2155
2156         * gcov.c (main): Call expandargv.
2157
2158 2008-08-29  Jan Hubicka  <jh@suse.cz>
2159
2160         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
2161         is not cold.
2162         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
2163         Constify arguments.
2164         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
2165         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
2166         Constify.
2167         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
2168
2169 2008-08-29  Jan Hubicka  <jh@suse.cz>
2170
2171         * tree-pass.h (pass_strip_predict_hints): Declare.
2172         * predict.c (strip_builtin_expect): Rename to ...
2173         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
2174         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
2175         (tree_estimate_probability): Do not strip builtin_expect.
2176         (pass_strip_predict_hints): New pass.
2177         * tree-inline.c (expand_call_inline): When inlining cold function, predict
2178         it as unlikely.
2179         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
2180
2181 2008-08-29  Richard Guenther  <rguenther@suse.de>
2182
2183         PR tree-optimization/37207
2184         * tree-vrp.c (extract_range_from_binary_expr): Also try
2185         to constant fold if only one of the operands is a constant.
2186
2187 2008-08-29  Nick Clifton  <nickc@redhat.com>
2188
2189         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
2190         the same way as SYMBOL_REFs.
2191
2192 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
2193
2194         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
2195
2196 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
2197
2198         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
2199         * config/mips/mips.md (branch_likely): Remove const.  Fix
2200         comment formatting.
2201         (define_delay for type "branch"): Change to only apply for branch
2202         with likely variant.
2203         (define_delay for type "branch" and "branch_likely" no).  New delay
2204         definition.
2205         (equality_op): New code iterator.
2206         (bbv, bbinv): New code attributes.
2207         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
2208         patterns.
2209
2210 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2211             Andrew Pinski  <pinskia@gcc.gnu.org>
2212
2213         PR 18050
2214         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
2215
2216 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
2217
2218         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
2219         rule that a symbolic constant must be defined and >= 0 for the
2220         corresponding facility to be present at compile-time.
2221         * gthr-posix.c: Likewise.
2222
2223 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
2224
2225         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
2226         * config/mips/mips.md (D): New mode attribute.
2227         (mulsi3, muldi3): Merge it into ...
2228         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
2229         patterns.
2230         (muldi3_mul3): New pattern.
2231         (mulsi3_mult3): Rename to mulsi3_mul3.
2232
2233 2008-08-28  Jan Hubicka  <jh@suse.cz>
2234
2235         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
2236         to fail.
2237         * predict.c (always_optimize_for_size_p): Rename to ...
2238         (optimize_function_for_size): ... this one; make extern.
2239         (optimize_function_for_speed_p): New.
2240         (optimize_bb_for_size_p, optimize_bb_for_size_p,
2241         optimize_edge_for_size_p,optimize_edge_for_size_p,
2242         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
2243         * basic-block.h (optimize_function_for_size_p,
2244         optimize_function_for_speed_p): Declare.
2245         * i386.md (optimize_size checks): Replace them by appropriate
2246         predicate.
2247         (standard_80387_constant_p, ix86_compute_frame_layout,
2248         ix86_expand_epilogue, ix86_decompose_address,
2249         print_operand, emit_i387_cw_initialization,
2250         inline_memory_move_cost, ix86_pad_returns,
2251         ix86_reorg): Replace optimize_size checks.
2252
2253 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
2254
2255         * rtl.h (simplify_subreg_regno): Declare.
2256         * rtlanal.c (simplify_subreg_regno): New function, split out from...
2257         * simplify-rtx.c (simplify_subreg): ...here.
2258         * reload.c (find_reloads): Use simplify_subreg_regno instead of
2259         subreg_offset_representable_p.
2260
2261 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2262
2263         PR c/30949
2264         * c-typeck.c (convert_for_assignment): Give a note describing what
2265         was passed and what was expected.
2266
2267 2008-08-28  Joey Ye  <joey.ye@intel.com>
2268
2269         * doc/extend.texi: Document AVX built-in functions.
2270         * doc/invoke.texi: Document -mavx.
2271
2272 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
2273             Joey Ye  <joey.ye@intel.com>
2274             Xuepeng Guo  <xuepeng.guo@intel.com>
2275
2276         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
2277
2278         * config/i386/cpuid.h (bit_FMA): New.
2279         (bit_XSAVE): Likewise.
2280         (bit_OSXSAVE): Likewise.
2281         (bit_AVX): Likewise.
2282
2283         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
2284         define.  Use ASM_OUTPUT_AVX_PREFIX.
2285
2286         * config/i386/gmmintrin.h: New.
2287
2288         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
2289         (OPTION_MASK_ISA_AVX_SET): New.
2290         (OPTION_MASK_ISA_FMA_SET): Likewise.
2291         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
2292         (OPTION_MASK_ISA_FMA_SET): Likewise.
2293         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
2294         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
2295         (pta_flags): Add PTA_AVX and PTA_FMA.
2296         (override_options): Handle PTA_AVX and PTA_FMA.
2297         (init_cumulative_args): Handle warn_avx.
2298         (classify_argument): Return 0 for COImode and OImode.  Return
2299         1 and X86_64_AVX_CLASS for 256bit vector types.
2300         (examine_argument): Handle X86_64_AVX_CLASS.
2301         (construct_container): Likewise.
2302         (function_arg_advance_32): Pass OImode and 256bit vector types
2303         in AVX register.
2304         (function_arg_advance_64): Take a new argument to indicate if a
2305         parameter is named.  Handle 256bit vector types.  Return
2306         immediately for unnamed 256bit vector mode parameters.
2307         (function_arg_advance): Updated.
2308         (function_arg_32): Add comments for TImode.  Handle OImode
2309         and 256bit vector types.
2310         (function_arg_64): Take a new argument to indicate if a
2311         parameter is named.  Handle 256bit vector types.  Return NULL
2312         for unnamed 256bit vector mode parameters.
2313         (function_arg): Updated.
2314         (setup_incoming_varargs_64): Support
2315         AVX encoding for *sse_prologue_save_insn.
2316         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
2317         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
2318         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
2319         enabled, otherwise return -3.
2320         (standard_sse_constant_opcode): Handle AVX and 256bit vector
2321         modes.
2322         (print_reg): Support AVX registers.  Handle 'x' and 't'.
2323         Handle 'd' to duplicate the operand.
2324         (print_operand): Likewise.  Also support AVX vector compare
2325         instructions.
2326         (output_387_binary_op): Support AVX.
2327         (output_fp_compare): Likewise.
2328         (ix86_expand_vector_move_misalign): Likewise.
2329         (ix86_attr_length_vex_default): New.
2330         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
2331         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
2332         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
2333         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
2334         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
2335         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
2336         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
2337         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
2338         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
2339         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
2340         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
2341         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
2342         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
2343         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
2344         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
2345         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
2346         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
2347         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
2348         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
2349         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
2350         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
2351         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
2352         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
2353         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
2354         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
2355         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
2356         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
2357         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
2358         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
2359         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
2360         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
2361         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
2362         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
2363         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
2364         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
2365         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
2366         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
2367         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
2368         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
2369         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
2370         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
2371         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
2372         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
2373         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
2374         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
2375         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
2376         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
2377         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
2378         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
2379         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
2380         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
2381         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
2382         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
2383         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
2384         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
2385         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
2386         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
2387         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
2388         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
2389         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
2390         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
2391         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
2392         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
2393         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
2394         and IX86_BUILTIN_MOVMSKPS256,
2395         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
2396         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
2397         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
2398         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
2399         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
2400         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
2401         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
2402         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
2403         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
2404         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
2405         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
2406         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
2407         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
2408         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
2409         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
2410         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
2411         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
2412         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
2413         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
2414         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
2415         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
2416         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
2417         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
2418         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
2419         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
2420         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
2421         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
2422         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
2423         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
2424         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
2425         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
2426         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
2427         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
2428         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
2429         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
2430         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
2431         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
2432         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
2433         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
2434         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
2435         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
2436         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
2437         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
2438         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
2439         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
2440         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
2441         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
2442         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
2443         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
2444         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
2445         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
2446         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
2447         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
2448         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
2449         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
2450         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
2451         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
2452         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
2453         IX86_BUILTIN_CMPPS,
2454         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
2455         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
2456         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
2457         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
2458         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
2459         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
2460         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
2461         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
2462         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
2463         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
2464         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
2465         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
2466         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
2467         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
2468         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
2469         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
2470         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
2471         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
2472         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
2473         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
2474         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
2475         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
2476         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
2477         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
2478         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
2479         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
2480         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
2481         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
2482         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
2483         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
2484         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
2485         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
2486         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
2487         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
2488         IX86_BUILTIN_MOVMSKPS256.
2489         (ix86_init_mmx_sse_builtins): Support AVX builtins.
2490         (ix86_expand_args_builtin): Likewise.
2491         (ix86_expand_special_args_builtin): Likewise.
2492         (ix86_hard_regno_mode_ok): Handle AVX modes.
2493         (ix86_expand_vector_init_duplicate): Likewise.
2494         (ix86_expand_vector_init_one_nonzero): Likewise.
2495         (ix86_expand_vector_init_one_var): Likewise.
2496         (ix86_expand_vector_init_concat): Likewise.
2497         (ix86_expand_vector_init_general): Likewise.
2498         (ix86_expand_vector_set): Likewise.
2499         (ix86_vector_mode_supported_p): Likewise.
2500         (x86_extended_reg_mentioned_p): Check INSN_P before using
2501         PATTERN.
2502
2503         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2504         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
2505
2506         * config/i386/i386.h (TARGET_AVX): New.
2507         (TARGET_FMA): Likewise.
2508         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
2509         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
2510         (VALID_AVX256_REG_MODE): New.
2511         (AVX256_VEC_FLOAT_MODE_P): Likewise.
2512         (AVX_FLOAT_MODE_P): Likewise.
2513         (AVX128_VEC_FLOAT_MODE_P): Likewise.
2514         (AVX256_VEC_FLOAT_MODE_P): Likewise.
2515         (AVX_VEC_FLOAT_MODE_P): Likewise.
2516         (ASM_OUTPUT_AVX_PREFIX): Likewise.
2517         (ASM_OUTPUT_OPCODE): Likewise.
2518         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
2519         support.
2520         (SSE_REG_MODE_P): Allow 256bit vector modes.
2521         (ix86_args): Add a warn_avx field.
2522
2523         * config/i386/i386.md (UNSPEC_PCMP): New.
2524         (UNSPEC_VPERMIL): Likewise.
2525         (UNSPEC_VPERMIL2): Likewise.
2526         (UNSPEC_VPERMIL2F128): Likewise.
2527         (UNSPEC_MASKLOAD): Likewise.
2528         (UNSPEC_MASKSTORE): Likewise.
2529         (UNSPEC_CAST): Likewise.
2530         (UNSPEC_VTESTP): Likewise.
2531         (UNSPECV_VZEROALL): Likewise.
2532         (UNSPECV_VZEROUPPER): Likewise.
2533         (XMM0_REG): Likewise.
2534         (XMM1_REG): Likewise.
2535         (XMM2_REG): Likewise.
2536         (XMM3_REG): Likewise.
2537         (XMM4_REG): Likewise.
2538         (XMM5_REG): Likewise.
2539         (XMM6_REG): Likewise.
2540         (XMM8_REG): Likewise.
2541         (XMM9_REG): Likewise.
2542         (XMM10_REG): Likewise.
2543         (XMM11_REG): Likewise.
2544         (XMM12_REG): Likewise.
2545         (XMM13_REG): Likewise.
2546         (XMM14_REG): Likewise.
2547         (XMM15_REG): Likewise.
2548         (prefix): Likewise.
2549         (prefix_vex_imm8): Likewise.
2550         (prefix_vex_w): Likewise.
2551         (length_vex): Likewise.
2552         (maxmin): Likewise.
2553         (movoi): Likewise.
2554         (*avx_ashlti3): Likewise.
2555         (*avx_lshrti3): Likewise.
2556         (*avx_setcc<mode>): Likewise.
2557         (*fop_<mode>_comm_mixed_avx): Likewise.
2558         (*fop_<mode>_comm_avx): Likewise.
2559         (*fop_<mode>_1_mixed_avx): Likewise.
2560         (*fop_<mode>_1_avx): Likewise.
2561         (*avx_<code><mode>3): Likewise.
2562         (*avx_ieee_smin<mode>3): Likewise.
2563         (*avx_ieee_smax<mode>3): Likewise.
2564         (mode): Add OI, V8SF and V4DF.
2565         (length): Support VEX prefix.
2566         (*cmpfp_i_mixed): Set prefix attribute.
2567         (*cmpfp_i_sse): Likewise.
2568         (*cmpfp_iu_mixed): Likewise.
2569         (*cmpfp_iu_sse): Likewise.
2570         (*movsi_1): Support AVX.
2571         (*movdi_2): Likewise.
2572         (*movdi_1_rex64): Likewise.
2573         (*movti_internal): Likewise.
2574         (*movti_rex64): Likewise.
2575         (*movsf_1): Likewise.
2576         (*movdf_nointeger): Likewise.
2577         (*movdf_integer_rex64): Likewise.
2578         (*movtf_internal): Likewise.
2579         (zero_extendsidi2_32): Likewise.
2580         (zero_extendsidi2_rex64): Likewise.
2581         (*extendsfdf2_mixed): Likewise.
2582         (*extendsfdf2_sse): Likewise.
2583         (*truncdfsf_fast_mixed): Likewise.
2584         (*truncdfsf_fast_sse): Likewise.
2585         (*truncdfsf_mixed): Likewise.
2586         (fix_trunc<mode>di_sse): Likewise.
2587         (fix_trunc<mode>si_sse): Likewise.
2588         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
2589         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
2590         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
2591         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
2592         (*rcpsf2_sse): Likewise.
2593         (*rsqrtsf2_sse): Likewise.
2594         (*sqrt<mode>2_sse): Likewise.
2595         (sse4_1_round<mode>2): Likewise.
2596         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
2597         Support AVX.  Set length attribute properly for AVX.
2598
2599         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
2600         (VECTOR_MODES (FLOAT, 32)): Likewise.
2601         (VECTOR_MODE (INT, DI, 8)): Likewise.
2602         (VECTOR_MODE (INT, HI, 32)): Likewise.
2603         (VECTOR_MODE (INT, QI, 64)): Likewise.
2604         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
2605         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
2606         (VECTOR_MODE (INT, DI, 4)): Removed.
2607         (VECTOR_MODE (INT, SI, 8)): Likewise.
2608         (VECTOR_MODE (INT, HI, 16)): Likewise.
2609         (VECTOR_MODE (INT, QI, 32)): Likewise.
2610         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
2611         (INT_MODE (OI, 32)): Likewise.
2612
2613         * config/i386/i386.opt (mavx): New.
2614         (mfma): Likewise.
2615
2616         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
2617
2618         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
2619         (*mov<mode>_internal_avx): New.
2620         (*movv2sf_internal_rex64_avx): Likewise.
2621         (*movv2sf_internal_avx): Likewise.
2622
2623         * config/i386/predicates.md (const_4_to_5_operand): New.
2624         (const_6_to_7_operand): Likewise.
2625         (const_8_to_11_operand): Likewise.
2626         (const_12_to_15_operand): Likewise.
2627         (avx_comparison_float_operator): Likewise.
2628
2629         * config/i386/sse.md (AVX256MODEI): New.
2630         (AVX256MODE): Likewise.
2631         (AVXMODEQI): Likewise.
2632         (AVXMODE): Likewise.
2633         (AVX256MODEF2P): Likewise.
2634         (AVX256MODE2P): Likewise.
2635         (AVX256MODE4P): Likewise.
2636         (AVX256MODE8P): Likewise.
2637         (AVXMODEF2P): Likewise.
2638         (AVXMODEF4P): Likewise.
2639         (AVXMODEDCVTDQ2PS): Likewise.
2640         (AVXMODEDCVTPS2DQ): Likewise.
2641         (avxvecmode): Likewise.
2642         (avxvecpsmode): Likewise.
2643         (avxhalfvecmode): Likewise.
2644         (avxscalarmode): Likewise.
2645         (avxcvtvecmode): Likewise.
2646         (avxpermvecmode): Likewise.
2647         (avxmodesuffixf2c): Likewise.
2648         (avxmodesuffixp): Likewise.
2649         (avxmodesuffixs): Likewise.
2650         (avxmodesuffix): Likewise.
2651         (vpermilbits): Likewise.
2652         (pinsrbits): Likewise.
2653         (mov<mode>): Likewise.
2654         (*mov<mode>_internal): Likewise.
2655         (push<mode>1): Likewise.
2656         (movmisalign<mode>): Likewise.
2657         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2658         (avx_movdqu<avxmodesuffix>): Likewise.
2659         (avx_lddqu<avxmodesuffix>): Likewise.
2660         (<plusminus_insn><mode>3): Likewise.
2661         (*avx_<plusminus_insn><mode>3): Likewise.
2662         (*avx_vm<plusminus_insn><mode>3): Likewise.
2663         (mul<mode>3): Likewise.
2664         (*avx_mul<mode>3): Likewise.
2665         (*avx_vmmul<mode>3): Likewise.
2666         (divv8sf3): Likewise.
2667         (divv4df3): Likewise.
2668         (avx_div<mode>3): Likewise.
2669         (*avx_div<mode>3): Likewise.
2670         (*avx_vmdiv<mode>3): Likewise.
2671         (avx_rcpv8sf2): Likewise.
2672         (*avx_vmrcpv4sf2): Likewise.
2673         (sqrtv8sf2): Likewise.
2674         (avx_sqrtv8sf2): Likewise.
2675         (*avx_vmsqrt<mode>2): Likewise.
2676         (rsqrtv8sf2): Likewise.
2677         (avx_rsqrtv8sf2): Likewise.
2678         (*avx_vmrsqrtv4sf2): Likewise.
2679         (<code><mode>3): Likewise.
2680         (*avx_<code><mode>3_finite): Likewise.
2681         (*avx_<code><mode>3): Likewise.
2682         (*avx_vm<code><mode>3): Likewise.
2683         (*avx_ieee_smin<mode>3): Likewise.
2684         (*avx_ieee_smax<mode>3): Likewise.
2685         (avx_addsubv8sf3): Likewise.
2686         (avx_addsubv4df3): Likewise.
2687         (*avx_addsubv4sf3): Likewise.
2688         (*avx_addsubv2df3): Likewise.
2689         (avx_h<plusminus_insn>v4df3): Likewise.
2690         (avx_h<plusminus_insn>v8sf3): Likewise.
2691         (*avx_h<plusminus_insn>v4sf3): Likewise.
2692         (*avx_h<plusminus_insn>v2df3): Likewise.
2693         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
2694         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
2695         (*avx_maskcmp<mode>3): Likewise.
2696         (avx_nand<mode>3): Likewise.
2697         (*avx_<code><mode>3): Likewise.
2698         (*avx_nand<mode>3): Likewise.
2699         (*avx_<code><mode>3): Likewise.
2700         (*avx_cvtsi2ss): Likewise.
2701         (*avx_cvtsi2ssq): Likewise.
2702         (*avx_cvtsi2sd): Likewise.
2703         (*avx_cvtsi2sdq): Likewise.
2704         (*avx_cvtsd2ss): Likewise.
2705         (avx_cvtss2sd): Likewise.
2706         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
2707         (avx_cvtps2dq<avxmodesuffix>): Likewise.
2708         (avx_cvttps2dq<avxmodesuffix>): Likewise.
2709         (*avx_cvtsi2sd): Likewise.
2710         (*avx_cvtsi2sdq): Likewise.
2711         (avx_cvtdq2pd256): Likewise.
2712         (avx_cvtpd2dq256): Likewise.
2713         (avx_cvttpd2dq256): Likewise.
2714         (*avx_cvtsd2ss): Likewise.
2715         (*avx_cvtss2sd): Likewise.
2716         (avx_cvtpd2ps256): Likewise.
2717         (avx_cvtps2pd256): Likewise.
2718         (*avx_movhlps): Likewise.
2719         (*avx_movlhps): Likewise.
2720         (avx_unpckhps256): Likewise.
2721         (*avx_unpckhps): Likewise.
2722         (avx_unpcklps256): Likewise.
2723         (*avx_unpcklps): Likewise.
2724         (avx_movshdup256): Likewise.
2725         (avx_movsldup256): Likewise.
2726         (avx_shufps256): Likewise.
2727         (avx_shufps256_1): Likewise.
2728         (*avx_shufps_<mode>): Likewise.
2729         (*avx_loadhps): Likewise.
2730         (*avx_storelps): Likewise.
2731         (*avx_loadlps): Likewise.
2732         (*avx_movss): Likewise.
2733         (*vec_dupv4sf_avx): Likewise.
2734         (*vec_concatv2sf_avx): Likewise.
2735         (*vec_concatv4sf_avx): Likewise.
2736         (*vec_setv4sf_0_avx): Likewise.
2737         (*vec_setv4sf_avx): Likewise.
2738         (*avx_insertps): Likewise.
2739         (avx_vextractf128<mode>): Likewise.
2740         (vec_extract_lo_<mode>): Likewise.
2741         (vec_extract_hi_<mode>): Likewise.
2742         (vec_extract_lo_<mode>): Likewise.
2743         (vec_extract_hi_<mode>): Likewise.
2744         (vec_extract_lo_v16hi): Likewise.
2745         (vec_extract_hi_v16hi): Likewise.
2746         (vec_extract_lo_v32qi): Likewise.
2747         (vec_extract_hi_v32qi): Likewise.
2748         (avx_unpckhpd256): Likewise.
2749         (*avx_unpckhpd): Likewise.
2750         (avx_movddup256): Likewise.
2751         (*avx_movddup): Likewise.
2752         (avx_unpcklpd256): Likewise.
2753         (*avx_unpcklpd): Likewise.
2754         (avx_shufpd256): Likewise.
2755         (avx_shufpd256_1): Likewise.
2756         (*avx_punpckhqdq): Likewise.
2757         (*avx_punpcklqdq): Likewise.
2758         (*avx_shufpd_<mode>): Likewise.
2759         (*avx_storehpd): Likewise.
2760         (*avx_loadhpd): Likewise.
2761         (*avx_loadlpd): Likewise.
2762         (*avx_movsd): Likewise.
2763         (*vec_concatv2df_avx): Likewise.
2764         (*avx_<plusminus_insn><mode>3): Likewise.
2765         (*avx_<plusminus_insn><mode>3): Likewise.
2766         (*avx_mulv8hi3): Likewise.
2767         (*avxv8hi3_highpart): Likewise.
2768         (*avx_umulv8hi3_highpart): Likewise.
2769         (*avx_umulv2siv2di3): Likewise.
2770         (*avx_mulv2siv2di3): Likewise.
2771         (*avx_pmaddwd): Likewise.
2772         (*avx_mulv4si3): Likewise.
2773         (*avx_ashr<mode>3): Likewise.
2774         (*avx_lshr<mode>3): Likewise.
2775         (*avx_ashl<mode>3): Likewise.
2776         (*avx_<code><mode>3): Likewise.
2777         (*avx_eq<mode>3): Likewise.
2778         (*avx_gt<mode>3): Likewise.
2779         (*avx_nand<mode>3): Likewise.
2780         (*avx_nand<mode>3): Likewise.
2781         (*avx_<code><mode>3): Likewise.
2782         (*avx_<code><mode>3): Likewise.
2783         (*avx_packsswb): Likewise.
2784         (*avx_packssdw): Likewise.
2785         (*avx_packuswb): Likewise.
2786         (*avx_punpckhbw): Likewise.
2787         (*avx_punpcklbw): Likewise.
2788         (*avx_punpckhwd): Likewise.
2789         (*avx_punpcklwd): Likewise.
2790         (*avx_punpckhdq): Likewise.
2791         (*avx_punpckldq): Likewise.
2792         (*avx_pinsr<avxmodesuffixs>): Likewise.
2793         (*avx_pinsrq): Likewise.
2794         (*avx_loadld): Likewise.
2795         (*vec_extractv2di_1_rex64_avx): Likewise.
2796         (*vec_extractv2di_1_avx): Likewise.
2797         (*vec_dupv2di_avx): Likewise.
2798         (*vec_concatv2si_avx): Likewise.
2799         (*vec_concatv4si_1_avx): Likewise.
2800         (*vec_concatv2di_avx): Likewise.
2801         (*vec_concatv2di_rex64_avx): Likewise.
2802         (*avx_uavgv16qi3): Likewise.
2803         (*avx_uavgv8hi3): Likewise.
2804         (*avx_psadbw): Likewise.
2805         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
2806         (*avx_phaddwv8hi3): Likewise.
2807         (*avx_phadddv4si3): Likewise.
2808         (*avx_phaddswv8hi3): Likewise.
2809         (*avx_phsubwv8hi3): Likewise.
2810         (*avx_phsubdv4si3): Likewise.
2811         (*avx_phsubswv8hi3): Likewise.
2812         (*avx_pmaddubsw128): Likewise.
2813         (*avx_pmulhrswv8hi3): Likewise.
2814         (*avx_pshufbv16qi3): Likewise.
2815         (*avx_psign<mode>3): Likewise.
2816         (*avx_palignrti): Likewise.
2817         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2818         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2819         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2820         (*avx_mpsadbw): Likewise.
2821         (*avx_packusdw): Likewise.
2822         (*avx_pblendvb): Likewise.
2823         (*avx_pblendw): Likewise.
2824         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2825         (avx_ptest256): Likewise.
2826         (avx_roundp<avxmodesuffixf2c>256): Likewise.
2827         (*avx_rounds<ssemodesuffixf2c>): Likewise.
2828         (*avx_aesenc): Likewise.
2829         (*avx_aesenclast): Likewise.
2830         (*avx_aesdec): Likewise.
2831         (*avx_aesdeclast): Likewise.
2832         (avx_vzeroupper): Likewise.
2833         (avx_vzeroupper_rex64): Likewise.
2834         (avx_vpermil<mode>): Likewise.
2835         (avx_vpermilvar<mode>3): Likewise.
2836         (avx_vpermil2<mode>3): Likewise.
2837         (avx_vperm2f128<mode>3): Likewise.
2838         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2839         (avx_vbroadcastss256): Likewise.
2840         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
2841         (avx_vinsertf128<mode>): Likewise.
2842         (vec_set_lo_<mode>): Likewise.
2843         (vec_set_hi_<mode>): Likewise.
2844         (vec_set_lo_<mode>): Likewise.
2845         (vec_set_hi_<mode>): Likewise.
2846         (vec_set_lo_v16hi): Likewise.
2847         (vec_set_hi_v16hi): Likewise.
2848         (vec_set_lo_v32qi): Likewise.
2849         (vec_set_hi_v32qi): Likewise.
2850         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2851         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2852         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
2853         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
2854         (vec_init<mode>): Likewise.
2855         (*vec_concat<mode>_avx): Likewise.
2856         (blendbits): Support V8SF and V4DF.
2857         (sse2_movq128): Support AVX.
2858         (<sse>_movnt<mode>): Likewise.
2859         (sse2_movntv2di): Likewise.
2860         (sse_rcpv4sf2): Likewise.
2861         (sse_sqrtv4sf2): Likewise.
2862         (sse_rsqrtv4sf2): Likewise.
2863         (<sse>_comi): Likewise.
2864         (<sse>_ucomi): Likewise.
2865         (sse_cvtss2si): Likewise.
2866         (sse_cvtss2si_2): Likewise.
2867         (sse_cvtss2siq): Likewise.
2868         (sse_cvtss2siq_2): Likewise.
2869         (sse_cvttss2si): Likewise.
2870         (sse_cvttss2siq): Likewise.
2871         (sse2_cvtsd2si): Likewise.
2872         (sse2_cvtsd2si_2): Likewise.
2873         (sse2_cvtsd2siq): Likewise.
2874         (sse2_cvtsd2siq_2): Likewise.
2875         (sse2_cvttsd2si): Likewise.
2876         (sse2_cvttsd2siq): Likewise.
2877         (sse2_cvtdq2pd): Likewise.
2878         (*sse2_cvtpd2dq): Likewise.
2879         (*sse2_cvttpd2dq): Likewise.
2880         (*sse2_cvtpd2ps): Likewise.
2881         (sse2_cvtps2pd): Likewise.
2882         (sse3_movshdup): Likewise.
2883         (sse3_movsldup): Likewise.
2884         (sse_storehps): Likewise.
2885         (*sse4_1_extractps): Likewise.
2886         (sse2_storelpd): Likewise.
2887         (vec_dupv2df_sse3): Likewise.
2888         (*vec_concatv2df_sse3): Likewise.
2889         (*sse4_1_pextrb): Likewise.
2890         (*sse4_1_pextrb_memory): Likewise.
2891         (*sse2_pextrw): Likewise.
2892         (*sse4_1_pextrw_memory): Likewise.
2893         (*sse4_1_pextrd): Likewise.
2894         (*sse4_1_pextrq): Likewise.
2895         (sse2_pshufd_1): Likewise.
2896         (sse2_pshuflw_1): Likewise.
2897         (sse2_pshufhw_1): Likewise.
2898         (*sse2_storeq_rex64): Likewise.
2899         (*vec_dupv4si): Likewise.
2900         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
2901         (sse2_pmovmskb): Likewise.
2902         (*sse2_maskmovdqu): Likewise.
2903         (*sse2_maskmovdqu_rex64): Likewise.
2904         (sse_ldmxcsr): Likewise.
2905         (sse_stmxcsr): Likewise.
2906         (abs<mode>2): Likewise.
2907         (sse4_1_movntdqa): Likewise.
2908         (sse4_1_phminposuw): Likewise.
2909         (sse4_1_extendv8qiv8hi2): Likewise.
2910         (*sse4_1_extendv8qiv8hi2): Likewise.
2911         (sse4_1_extendv4qiv4si2): Likewise.
2912         (*sse4_1_extendv4qiv4si2): Likewise.
2913         (sse4_1_extendv2qiv2di2): Likewise.
2914         (*sse4_1_extendv2qiv2di2): Likewise.
2915         (sse4_1_extendv4hiv4si2): Likewise.
2916         (*sse4_1_extendv4hiv4si2): Likewise.
2917         (sse4_1_extendv2hiv2di2): Likewise.
2918         (*sse4_1_extendv2hiv2di2): Likewise.
2919         (sse4_1_extendv2siv2di2): Likewise.
2920         (*sse4_1_extendv2siv2di2): Likewise.
2921         (sse4_1_zero_extendv8qiv8hi2): Likewise.
2922         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
2923         (sse4_1_zero_extendv4qiv4si2): Likewise.
2924         (*sse4_1_zero_extendv4qiv4si2): Likewise.
2925         (sse4_1_zero_extendv2qiv2di2): Likewise.
2926         (*sse4_1_zero_extendv2qiv2di2): Likewise.
2927         (sse4_1_zero_extendv4hiv4si2): Likewise.
2928         (*sse4_1_zero_extendv4hiv4si2): Likewise.
2929         (sse4_1_zero_extendv2hiv2di2): Likewise.
2930         (*sse4_1_zero_extendv2hiv2di2): Likewise.
2931         (sse4_1_zero_extendv2siv2di2): Likewise.
2932         (*sse4_1_zero_extendv2siv2di2): Likewise.
2933         (sse4_1_ptest): Likewise.
2934         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
2935         (sse4_2_pcmpestri): Likewise.
2936         (sse4_2_pcmpestrm): Likewise.
2937         (sse4_2_pcmpistri): Likewise.
2938         (sse4_2_pcmpistrm): Likewise.
2939         (aesimc): Likewise.
2940         (aeskeygenassist): Likewise.
2941
2942 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
2943
2944         * config/i386/predicates.md (vzeroall_operation): New.
2945
2946         * config/i386/sse.md (avx_vzeroall): New.
2947         (*avx_vzeroall): Likewise.
2948
2949 2008-08-28  Paul Brook  <paul@codesourcery.com>
2950             Mark Shinwell  <shinwell@codesourcery.com>
2951             Richard Earnshaw  <richard.earnshaw@arm.com>
2952
2953         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
2954         (TARGET_MIN_ANCHOR_OFFSET): New.
2955         (arm_override_options): Set correct anchor ranges for Thumb-1
2956         and Thumb-2 if required.
2957         (legitimize_pic_address): Handle case involving a TLS symbol
2958         reference with an addend.
2959         (arm_optimization_options): Enable section anchors at -O1 and
2960         above.
2961         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
2962         * config/arm/arm-protos.h (arm_optimization_options): New.
2963
2964 2008-08-28  Nick Clifton  <nickc@redhat.com>
2965
2966         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
2967         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
2968         attribute.
2969
2970         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
2971         * config/v850/v850.md (return): Remove frame size restriction.
2972
2973         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
2974
2975         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
2976
2977         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
2978
2979         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
2980
2981 2008-08-28  Paul Brook  <paul@codesourcery.com>
2982
2983         * config/arm/vfp11.md: Update license notice.
2984         * config/arm/cortex-r4.md: Ditto.
2985
2986 2008-08-28  Richard Guenther  <rguenther@suse.de>
2987
2988         PR tree-optimization/37207
2989         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
2990         tuplification bug.
2991
2992 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
2993
2994         PR c++/36741
2995         * tree.c (int_fits_type_p): Don't forget unsigned integers
2996           of type sizetype which higher end word equals -1.
2997
2998 2008-08-28  Ira Rosen  <irar@il.ibm.com>
2999
3000         * target.h (struct vectorize): Add new target builtin.
3001         * tree-vectorizer.c (destroy_loop_vec_info): Call
3002         vect_free_slp_instance instead of vect_free_slp_node.
3003         * tree-vectorizer.h (enum slp_load_perm_type): New.
3004         (struct _slp_instance): Add new fields.
3005         (SLP_INSTANCE_LOAD_PERMUTATION): New.
3006         (SLP_INSTANCE_LOADS): New.
3007         (vect_free_slp_tree): Remove.
3008         (vect_free_slp_instance): Declare.
3009         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
3010         (vectorizable_load): Add argument.
3011         (vect_transform_slp_perm_load): New.
3012         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
3013         vectorizable_load.
3014         (vect_get_place_in_interleaving_chain): New function.
3015         (vect_free_slp_tree): Make static.
3016         (vect_free_slp_instance): New function.
3017         (vect_build_slp_tree): Add new arguments. Allow load permutations and
3018         collect the load location in the interleaving chain.
3019         (vect_supported_slp_permutation_p): New function.
3020         (vect_supported_load_permutation_p): Likewise.
3021         (vect_analyze_slp_instance): In case of loads permutation, call
3022         vect_supported_load_permutation_p to check that the permutation is
3023         supported.
3024         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
3025         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
3026         (vect_create_mask_and_perm): New function.
3027         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
3028         (vectorizable_load): Add an argument. Don't keep the created vectors
3029         statements in the node if permutation is required. Call
3030         vect_transform_slp_perm_load to generate the permutation.
3031         (vect_transform_stmt): Add new argument. Call vectorizable_load with
3032         additional argument.
3033         (vect_schedule_slp_instance): In case of loads permutation, allocate
3034         vectorized statements structure for all the related SLP nodes. Call
3035         vect_transform_stmt with addditional argument.
3036         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
3037         * config/spu/spu.c (spu_builtin_vec_perm): New.
3038         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
3039         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
3040         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
3041         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
3042
3043 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
3044
3045         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
3046         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
3047         __gthread_cond_signal, __gthread_cond_timedwait,
3048         __gthread_cond_timedwait_recursive): New functions.
3049         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
3050         Likewise.
3051         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
3052         thread interfaces.
3053
3054 2008-08-28  Richard Guenther  <rguenther@suse.de>
3055
3056         PR middle-end/37005
3057         * fold-const.c (maybe_canonicalize_comparison_1): Require
3058         undefined overflow only for canonicalizing A +- CST cmp CST.
3059         Make sure to not generate new constants that are not inside
3060         their TYPE_MIN/MAX_VALUE range.
3061         (maybe_canonicalize_comparison): Remove undefined overflow
3062         checking from here.
3063         (fold_binary): Remove now duplicate folding.
3064
3065 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
3066
3067         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
3068         use not updated in the last change.
3069
3070 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3071
3072         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
3073         (IRA_COVER_CLASSES): Add FPUL_REGS.
3074
3075 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3076
3077         PR 37217
3078         * c-common.c (conversion_warning): Check for null operands.
3079
3080 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3081
3082         PR c/31673
3083         * c-decl.c (check_for_loop_decls): Improve error message. Give
3084         hint.
3085
3086 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3087
3088         PR c/37186
3089         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
3090         (convert_for_assignment): Pass corrent OPT_W* parameter to
3091         WARN_FOR_ASSIGNMENT.
3092
3093 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
3094
3095         PR c++/35321
3096         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
3097
3098 2008-08-27  Paul Brook  <paul@codesourcery.com>
3099
3100         * config.gcc: Loosen checks for arm uclinux eabi targets.
3101
3102 2008-08-27  Paul Brook  <paul@codesourcery.com>
3103
3104         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
3105         _clzsi2.
3106         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3107
3108 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
3109
3110         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
3111         the enumerators of an ENUMERAL_TYPE.
3112         * dbxout.c (dbxout_type): Ditto.
3113
3114 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3115
3116         PR rtl-opt/37219
3117         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
3118         (fwprop_addr): Check that the loop_father is not the outer loop.
3119
3120 2008-08-26  Paul Brook  <paul@codesourcery.com>
3121
3122         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
3123         Remove documentation entry for fmul type.
3124         Use fmuls to annotate single-precision multiplication patterns,
3125         fmuld to annotate double-precision multiplication patterns,
3126         fmacs to annotate single-precision multiply-accumulate patterns
3127         and fmacd to annotate double-precision multiply-accumulate patterns.
3128         * config/arm/vfp11.md: Update reservations accordingly.
3129         * config/arm/arm.md: Note that certain values of the "type"
3130         attribute are documented in vfp.md.
3131         * config/arm/arm1020e.md: Remove out of date duplicate comment.
3132         (v10_cvt): Use new fmul types.
3133
3134 2008-08-26  Paul Brook   <paul@codesourcery.com>
3135
3136         * config/arm/vfp.md: Move pipeline description for VFP11 to...
3137         * config/arm/vfp11.md: ...here.  New.
3138         * config/arm/arm.md: Include vfp11.md.
3139
3140 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
3141
3142         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
3143         parameter to inform call.
3144
3145 2008-08-26  Jeff Law  <law@redhat.com>
3146
3147         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
3148         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
3149         preferred class when copying a constant into a partial word register.
3150
3151 2008-08-26  Ben Elliston  <bje@au.ibm.com>
3152
3153         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
3154         * cp/typeck.c: Likewise.
3155         * cp/tree.c: Likewise.
3156         * gimple-low.c: Likewise.
3157         * jump.c: Likewise.
3158
3159 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
3160
3161         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
3162         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
3163
3164         * doc/passes.texi: Describe IRA.
3165
3166         * doc/tm.texi (IRA_COVER_CLASSES,
3167         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
3168
3169         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
3170         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
3171         -fira-propagate-cost, -fno-ira-share-save-slots,
3172         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
3173
3174         * flags.h (ira_algorithm): New enumeration.
3175         (flag_ira_algorithm, flag_ira_verbose): New external variable
3176         declarations.
3177
3178         * postreload.c (gate_handle_postreload): Don't do post reload
3179         optimizations unless the reload is completed.
3180
3181         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
3182         IRA.
3183
3184         * tree-pass.h (pass_ira): New external variable declaration.
3185
3186         * reload.h: Add 2008 to the Copyright.
3187
3188         * cfgloopanal.c: Include params.h.
3189         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
3190         mode.
3191
3192         * params.h (IRA_MAX_LOOPS_NUM): New macro.
3193
3194         * toplev.c (ira.h): New include.
3195         (flag_ira_algorithm, flag_ira_verbose): New external variables.
3196         (backend_init_target): Call ira_init.
3197         (backend_init): Call ira_init_once.
3198         (finalize): Call finish_ira_once.
3199
3200         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
3201         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
3202         external variables.
3203
3204         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
3205         may_move_out_cost): New external variable declarations.
3206         (move_table): New typedef.
3207
3208         * caller-save.c: Include headers output.h and ira.h.
3209         (no_caller_save_reg_set): New global variable.
3210         (save_slots_num, save_slots): New variables.
3211         (reg_save_code, reg_restore_code, add_stored_regs): Add
3212         prototypes.
3213         (init_caller_save): Set up no_caller_save_reg_set.
3214         (init_save_areas): Reset save_slots_num.
3215         (saved_hard_reg): New structure.
3216         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
3217         (initiate_saved_hard_regs, new_saved_hard_reg,
3218         finish_saved_hard_regs, saved_hard_reg_compare_func): New
3219         functions.
3220         (setup_save_areas): Add code for sharing stack slots.
3221         (all_blocks): New variable.
3222         (save_call_clobbered_regs): Process pseudo-register too.
3223         (mark_set_regs): Process pseudo-register too.
3224         (insert_one_insn): Put the insn after bb note in a empty basic
3225         block.  Add insn check.
3226
3227         * global.c (eliminable_regset): Make it external.
3228         (mark_elimination): Use DF_LR_IN for IRA.
3229         (pseudo_for_reload_consideration_p): New.
3230         (build_insn_chain): Make it external.  Don't ignore spilled
3231         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
3232         (gate_handle_global_alloc): New function.
3233         (pass_global_alloc): Add the gate function.
3234
3235         * opts.c (decode_options): Set up flag_ira.  Print the warning for
3236         -fira.
3237         (common_handle_option): Process -fira-algorithm and -fira-verbose.
3238
3239         * timevar.def (TV_IRA, TV_RELOAD): New passes.
3240
3241         * regmove.c (regmove_optimize): Don't do replacement of output for
3242         IRA.
3243
3244         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
3245         New external variable declarations.
3246
3247         * local-alloc.c (update_equiv_regs): Make it external.  Return
3248         true if jump label rebuilding should be done.  Rescan new_insn for
3249         notes.
3250         (gate_handle_local_alloc): New function.
3251         (pass_local_alloc): Add the gate function.
3252
3253         * alias.c (value_addr_p, stack_addr_p): New functions.
3254         (nonoverlapping_memrefs_p): Use them for IRA.
3255
3256         * common.opt (fira, fira-algorithm, fira-coalesce,
3257         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
3258         fira-verbose): New options.
3259
3260         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
3261         move_cost, may_move_in_cost, may_move_out_cost): Make the
3262         variables external.
3263         (move_table): Remove typedef.
3264         (init_move_cost): Make it external.
3265         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
3266         functions.
3267
3268         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
3269         setup_reg_classes): New function prototypes.
3270         (eliminable_regset): New external variable declaration.
3271         (build_insn_chain, update_equiv_regs): New function prototypes.
3272
3273         * Makefile.in (IRA_INT_H): New definition.
3274         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
3275         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
3276         (reload1.o, toplev.o): Add dependence on ira.h.
3277         (cfgloopanal.o): Add PARAMS_H.
3278         (caller-save.o): Add dependence on output.h and ira.h.
3279         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
3280         ira-emit.o, ira-lives.o): New entries.
3281
3282         * passes.c (pass_ira): New pass.
3283
3284         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
3285
3286         * reload1.c (ira.h): Include the header.
3287         (changed_allocation_pseudos): New bitmap.
3288         (init_reload): Initiate the bitmap.
3289         (compute_use_by_pseudos): Permits spilled registers in FROM.
3290         (temp_pseudo_reg_arr): New variable.
3291         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
3292         IRA.  Call alter_reg with the additional parameter.  Don't clear
3293         spilled_pseudos for IRA.  Restore original insn chain for IRA.
3294         Clear changed_allocation_pseudos at the end of reload.
3295         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
3296         (hard_regno_to_pseudo_regno): New variable.
3297         (count_pseudo): Check spilled pseudos.  Set up
3298         hard_regno_to_pseudo_regno.
3299         (count_spilled_pseudo): Check spilled pseudos. Update
3300         hard_regno_to_pseudo_regno.
3301         (find_reg): Use better_spill_reload_regno_p.  Check
3302         hard_regno_to_pseudo_regno.
3303         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
3304         code for IRA.
3305         (eliminate_regs_1): Use additional parameter for alter_reg.
3306         (finish_spills): Set up pseudo_previous_regs only for spilled
3307         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
3308         more arguments.  Don't clear live_throughout and dead_or_set for
3309         spilled pseudos.  Use additional parameter for alter_reg.  Call
3310         mark_allocation_change.  Set up changed_allocation_pseudos.
3311         Remove sanity check.
3312         (emit_input_reload_insns, delete_output_reload): Use additional
3313         parameter for alter_reg.  Call mark_allocation_change.
3314         (substitute, gen_reload_chain_without_interm_reg_p): New
3315         functions.
3316         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
3317
3318         * testsuite/gcc.dg/20080410-1.c: New file.
3319
3320         * config/s390/s390.h (IRA_COVER_CLASSES,
3321         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
3322
3323         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
3324
3325         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
3326
3327         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3328
3329         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
3330
3331         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3332
3333         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
3334
3335         2008-08-24  Jeff Law  <law@redhat.com>
3336         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
3337         when ignoring unavailable registers.
3338
3339         2008-08-24  Jeff Law  <law@redhat.com>
3340         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
3341         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
3342         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
3343         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
3344
3345         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
3346         * ira-build.c (allocno_range_compare_func): Stabilize sort.
3347
3348         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
3349         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
3350         * reload1.c (find_reg): Process registers in register allocation order.
3351
3352         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
3353         * toplev.c (backend_init_target): Move ira_init call from
3354         here...
3355         (lang_dependent_init_target): ...to here.
3356
3357         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
3358         * ira.c (setup_class_subset_and_memory_move_costs): Don't
3359         calculate memory move costs for NO_REGS.
3360
3361         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
3362         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
3363         STACK_REGS is defined.
3364
3365         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
3366         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
3367
3368         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
3369         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
3370
3371         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
3372         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
3373         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
3374         barrier.
3375
3376 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
3377             Dorit Nuzman  <dorit@il.ibm.com>
3378
3379         * gcc/config/spu/spu.md (vec_extract_evenv4si,
3380         vec_extract_evenv4sf, vec_extract_evenv8hi,
3381         vec_extract_evenv16qi, vec_extract_oddv4si,
3382         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
3383         vec_interleave_highv4sf, vec_interleave_lowv4sf,
3384         vec_interleave_highv4si, vec_interleave_lowv4si,
3385         vec_interleave_highv8hi, vec_interleave_lowv8hi,
3386         vec_interleave_highv16qi, vec_interleave_lowv16qi,
3387         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
3388
3389 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
3390
3391         PR target/36756
3392         * config/rs6000/rs6000.c (optimization_options): Don't default to
3393         section anchors without toplevel reorder.
3394
3395 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3396
3397         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
3398         (mfc_end_critical_section): Likewise.
3399
3400 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3401
3402         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
3403         all type qualifiers from element type to vector type.
3404
3405 2008-08-25  David Daney  <ddaney@avtrex.com>
3406
3407         * config/mips/mips.md (immediate_insn): Move up in file, fix
3408         comment typo, reformat.
3409         (fetchop_bit, atomic_hiqi_op memory_barrier,
3410         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
3411         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
3412         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
3413         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
3414         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
3415         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
3416         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
3417         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
3418         sync_old_nand<mode>, sync_new_nand<mode>,
3419         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
3420         test_and_set_12): Moved to sync.md.
3421         (sync.md): Include.
3422         * config/mips/sync.md: New file.
3423
3424 2008-08-25  Richard Henderson  <rth@redhat.com>
3425
3426         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
3427         (regsave): Likewise.
3428         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
3429         (output_cfi_directive): Likewise.
3430         (div_data_align): New.
3431         (output_cfi): Use it.
3432
3433 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
3434
3435         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
3436         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
3437         (TARGET_OCTEON): New macro.
3438         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
3439         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
3440         (ISA_HAS_POP): New macro.
3441         * config/mips/driver-native.c (host_detect_local_cpu): Handle
3442         Octeon.
3443         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
3444         Handle Octeon.
3445         * config/mips/mips.md (cpu): Add octeon.
3446         (type): Add pop attribute value.
3447         (popcount<mode>2): New pattern.
3448         * doc/invoke.texi (-march=@var{arch}): Add octeon.
3449
3450 2008-08-24  Jan Hubicka  <jh@suse.cz>
3451
3452         * doc/invoke.texi (-fipa-cp-clone): New option.
3453         (-fipa-cp): Update docs.
3454         (--param ipcp-unit-growth):New.
3455         * ipa-cp.c: Include fibheap.h, params.h
3456         (ipcp_initialize_node_lattices): When not cloning, all externally
3457         visible functions are bottom.
3458         (ipcp_need_redirect_p): Accept clones.
3459         (ipcp_insert_stage): Use cost driven heuristics.
3460         (max_count, dead_nodes): New static vars.
3461         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
3462         ipcp_const_param_count): New functions.
3463         * common.opt (ipa-cp-clone): New command line option.
3464         * params.def (ipcp-unit-growth): New.
3465
3466 2008-08-24  Jan Hubicka  <jh@suse.cz>
3467
3468         * tree-inline.c (tree_function_versioning): Look harder
3469         for referenced vars.
3470
3471 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
3472
3473         PR tree-optimization/37185
3474         * matrix-reorg.c (transform_access_sites): Update changed stmt.
3475
3476 2008-08-23  Jan Hubicka  <jh@suse.cz>
3477
3478         * ipa-cp.c (ipcp_analyze_node): New function.
3479         (ipcp_update_cloned_node): Use it.
3480         (ipcp_init_stage): Likewise.
3481         * ipa-inline.c (function_insertion_hook_holder): New static var.
3482         (analyze_function): Break out from ....
3483         (inline_generate_summary): Here; register insertion hook.
3484         (cgraph_decide_inlining): Remove hook.
3485         (add_new_function): New function.
3486
3487 2008-08-23  Jan Hubicka  <jh@suse.cz>
3488
3489         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
3490
3491 2008-08-23  Jan Hubicka  <jh@suse.cz>
3492
3493         * ipa-cp.c (constant_val_insert): Remove.
3494         (ipcp_propagate_one_const): Remove.
3495         (ipcp_create_replace_map): Always insert replacements to the map.
3496         (ipcp_insert_stage): Do not try to insert statements by hand.
3497         * tree-inline.c (insert_init_stmt): Break out from ...
3498         (setup_one_parameter): ... here; allow NULL BB pointer.
3499         (tree_function_versioning): Use setup_one_parameter to process
3500         replacement map.
3501
3502 2008-08-23  Jan Hubicka  <jh@suse.cz>
3503
3504         * tree.c (decl_address_ip_invariant_p): New function.
3505         * tree.h (decl_address_ip_invariant_p): Declare.
3506         * gimple.c (strip_invariant_refs): Break out from ...
3507         (is_gimple_invariant_address): ... here
3508         (is_gimple_ip_invariant_address): New function.
3509         (is_gimple_ip_invariant): New function.
3510         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
3511         Declare.
3512
3513         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
3514         (ipcp_lat_is_insertable): All constants are insertable.
3515         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
3516         IPA_CONST_VALUE_REF.
3517         (ipcp_initialize_node_lattices): Propagate all types of operands.
3518         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
3519         (ipcp_create_replace_map): Reformat.
3520         (ipcp_need_redirect_p): Simplify.
3521         (ipcp_insert_stage): Check that argument is used before clonning.
3522         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
3523         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
3524         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
3525         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
3526         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
3527         (jump_func_type): Remove IPA_CONST_VALUE_REF.
3528         * tree-inline.c (tree_function_versioning): Add variables referenced by
3529         replacing trees.
3530
3531 2008-08-23  Jan Hubicka  <jh@suse.cz>
3532
3533         PR target/37094
3534         * i386.c (standard_80387_constant_p): Use optimize_size.
3535
3536 2008-08-23  Ira Rosen  <irar@il.ibm.com>
3537
3538         PR tree-optimization/37161
3539         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
3540         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
3541         (vect_determine_vectorization_factor): Move the scalar type
3542         retrieval to vect_get_smallest_scalar_type.
3543         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
3544         scalar type. Remove redundant computation.
3545         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
3546         (vect_get_slp_defs): Take the type of RHS into account if
3547         necessary by calling vect_get_smallest_scalar_type. Call
3548         vect_get_constant_vectors with additional argument.
3549
3550 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3551
3552         PR 35648
3553         * doc/invoke.texi (Wwrite-strings): Clarify description.
3554
3555 2008-08-23  Ira Rosen  <irar@il.ibm.com>
3556
3557         PR tree-optimization/37174
3558         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
3559         def stmt is a part of the loop before accessing its stmt_vec_info.
3560
3561 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
3562
3563         PR target/11259
3564         * config/avr/avr.md (UNSPEC_SWAP): New constants.
3565         (*swap): New insn pattern.
3566         (*ashlqi3): Rename from ashlqi3 insn pattern.
3567         (ashlqi3): New expanders.
3568         (*lshrqi3): Rename from lshrqi3 insn pattern.
3569         (lshrqi3): New expanders.
3570         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
3571         lshrqi3_const5, lshrqi3_const6): New splitters.
3572         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
3573         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
3574         peephole2 patterns.
3575
3576 2008-08-22  Richard Guenther  <rguenther@suse.de>
3577
3578         PR tree-optimization/37078
3579         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
3580         [+INF, +INF] ranges.
3581
3582 2008-08-22  Richard Guenther  <rguenther@suse.de>
3583
3584         PR tree-optimization/37143
3585         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
3586         a conversion statement instead of a copy.
3587
3588 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
3589
3590         PR target/37184
3591         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
3592         CCCmode, CCOmode and CCSmode destination modes.
3593
3594         PR target/37191
3595         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
3596         from different units in a single alternative.
3597         (*vec_extractv2sf_1): Ditto.
3598         (*vec_extractv2si_0): Ditto.
3599         (*vec_extractv2si_1): Ditto.
3600         * config/i386/sse.md (sse2_storehpd): Ditto.
3601         (sse2_storelpd): Ditto.
3602         (sse2_loadhpd): Ditto.
3603         (sse2_loadlpd): Ditto.
3604
3605         PR target/37197
3606         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
3607         (popcountsi2): Ditto.
3608         (clzdi2_abm): Ditto.
3609         (popcountdi2): Ditto.
3610         (clzhi2_abm): Ditto.
3611         (popcounthi2): Ditto.
3612
3613 2008-08-22  Richard Guenther  <rguenther@suse.de>
3614
3615         PR middle-end/36548
3616         PR middle-end/37125
3617         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
3618         if the multiplication does not overflow.
3619
3620 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
3621
3622         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
3623
3624 2008-08-21  Richard Henderson  <rth@redhat.com>
3625
3626         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
3627         spurrious comma from test.
3628         * configure: Rebuild.
3629
3630 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3631
3632         PR 30457
3633         * builtins.c (fold_builtin_next_arg): Add warning about undefined
3634         behaviour.
3635
3636 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
3637
3638         * c-tree.h (grokfield): New argument.
3639         * c-decl.c (grokfield): Handle new location argument.
3640         * c-parser.c (c_parser_struct_declaration): Pass location to
3641         grokfield.
3642
3643 2008-08-21  Richard Guenther  <rguenther@suse.de>
3644
3645         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
3646
3647 2008-08-21  Jan Hubicka  <jh@suse.cz>
3648
3649         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
3650         (cgraph_add_function_insertion_hook,
3651         cgraph_remove_function_insertion_hook,
3652         cgraph_call_function_insertion_hooks): New functions.
3653         * cgraph.h (cgraph_add_function_insertion_hook,
3654         cgraph_remove_function_insertion_hook,
3655         cgraph_call_function_insertion_hooks): Declare.
3656         * ipa-reference.c (function_insertion_hook_holder): New variable.
3657         (check_operand, look_for_address_of): When checking late, do not care
3658         about module bitmaps.
3659         (add_new_function): New function.
3660         (generate_summary): Register hooks; zero module bitmaps.
3661         (propagate): Unregister hooks.
3662         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
3663         (add_new_function): New function.
3664         (generate_summary): Register hook.
3665         (propagate): Remove hook.
3666
3667         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
3668
3669         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
3670         * ipa-cp.c (ipcp_update_cloned_node): New function.
3671         (build_const_val): Handle functions correctly; bring type logic
3672         into sync with tree-inline.c
3673         (ipcp_init_stage):  Take care of computing stuff needed by
3674         indirect inlining; update clones.
3675         (ipcp_generate_summary): Break out of ipcp_driver.
3676         (ipcp_driver): Do only execution and transformation.
3677         (pass_ipa_cp): Make IPA_PASS.
3678         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
3679         offset to address.
3680         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
3681         ipcp, some info is already available.
3682         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
3683         * tree-inline.c (remap_ssa_name): Unshare expression.
3684
3685 2008-08-21  Richard Guenther  <rguenther@suse.de>
3686
3687         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
3688         a PHI ask VN if it is already available.
3689         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
3690         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3691
3692 2008-08-21  Richard Guenther  <rguenther@suse.de>
3693
3694         PR middle-end/36817
3695         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
3696         makes sure to produce a result of the correct type.
3697
3698 2008-08-21  Jan Hubicka  <jh@suse.cz>
3699         Backport from LTO branch:
3700
3701         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
3702                     Jan Hubicka  <jh@suse.cz>
3703
3704         * ipa-pure-const.c
3705         (init_state, finish_state, set_function_state, generate_summary):
3706         New functions.
3707         (scan_stmt): Renamed from scan_function.  Changed to keep state in
3708         local static vars rather than cgraph aux field.
3709         (propagate): Renamed from static_execute. Changed to keep state in
3710         local static vars rather than cgraph aux field.
3711         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
3712         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
3713
3714         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3715
3716         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
3717         * ipa-reference.c (init_function_info, generate_summary,
3718         propagate): New functions.
3719         (analyze_function):  Call init_function_info.
3720         (static_execute): Stripped into generate_summary and propagate.
3721         (pass_ipa_reference): Made into ipa_opt_pass.
3722
3723 2008-08-21  Richard Guenther  <rguenther@suse.de>
3724
3725         PR tree-optimization/37181
3726         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
3727         folding result.
3728         (extract_range_from_unary_expr): Likewise.
3729
3730 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3731
3732         * diagnostic.c (pedwarn_at): Rename as pedwarn.
3733         (pedwarn): Delete.
3734         * toplev.h (pedwarn_at): Likewise.
3735         * builtins.c: Update all calls to pedwarn.
3736         * c-lex.c: Likewise.
3737         * toplev.c: Likewise.
3738         * c-tree.h: Likewise.
3739         * c-decl.c: Likewise.
3740         * c-errors.c: Likewise.
3741         * c-typeck.c: Likewise.
3742         * c-common.c: Likewise.
3743         * c-parser.c: Likewise.
3744
3745 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
3746
3747         PR target/31070
3748         * config/sparc/sparc.c (function_arg_slotno): Handle structure
3749         with MODE_VECTOR_INT mode.
3750
3751 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3752
3753         PR middle-end/179
3754         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
3755         initialized outside the current module.
3756         (warn_uninitialized_var): Ignore left-hand side when walking the
3757         trees. Ignore address expressions. Examine VUSE operands in gimple
3758         statements with a variable declaration on the right-hand side.
3759
3760 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
3761
3762         PR bootstrap/37155
3763         * rtlanal.c (subreg_offset_representable_p): Revert last change.
3764
3765 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3766
3767         PR 35701
3768         * c-common.c (conversion_warning): Do not warn if applying bit-and
3769         operator to unsigned constant that fits in the target type.
3770
3771 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3772
3773         PR c++/35602
3774         * c-common.c (conversion_warning): Do not warn for artificial
3775         expressions.
3776
3777 2008-08-20  Richard Guenther  <rguenther@suse.de>
3778
3779         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
3780         (extract_range_from_binary_expr): Fall back to constant propagation.
3781         (extract_range_from_unary_expr): Likewise.
3782
3783 2008-08-20  Richard Guenther  <rguenther@suse.de>
3784
3785         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
3786         with TREE_THIS_VOLATILE on shared nodes.
3787         (fold_stmt_r): Likewise.
3788
3789 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
3790
3791         PR c/37171
3792         * c-parser.c (c_parser_attributes): For keywords use canonical
3793         spelling for attr_name.
3794
3795 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3796
3797         * value-prof.c (check_counter): Revert wrong call to error.
3798
3799 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3800
3801         * profile.c: Update calls to inform.
3802         * value-prof.c: Update calls to inform.
3803
3804 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3805
3806         * diagnostic.c (inform): Add an explicit location_t parameter.
3807         * toplev.h (inform): Update declaration.
3808         * builtins.c: Update all calls to inform.
3809         * c-common.c: Likewise.
3810         * c-decl.c: Likewise.
3811         * c-opts.c: Likewise.
3812         * c-pch.c: Likewise.
3813         * c-pragma.c: Likewise.
3814         * c-typeck.c: Likewise.
3815         * coverage.c: Likewise.
3816         * opts.c: Likewise.
3817         * toplev.c: Likewise.
3818         * tree-cfg.c: Likewise.
3819         * tree-ssa.c: Likewise.
3820
3821 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3822
3823         PR target/37169
3824         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
3825         V2DI mode, for SSE4.1, use movq instead of vector set if the
3826         second element is zero and inter-unit moves are OK.
3827
3828 2008-08-20  Richard Guenther  <rguenther@suse.de>
3829
3830         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
3831         properly handle conversion/copy chains after tuplification.
3832
3833 2008-08-20  Richard Guenther  <rguenther@suse.de>
3834
3835         * passes.c (init_optimization_passes): Move the second
3836         forwprop pass before alias computation.  Remove the second
3837         DCE pass.  Remove the first dominator and phi copy/const
3838         prop passes.
3839
3840 2008-08-20  Nick Clifton  <nickc@redhat.com>
3841
3842         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
3843         support of this feature.  Do not assume that a sufficiently new
3844         assembler will support the feature regardless of the target type.
3845         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
3846         * configure: Regenerate.
3847
3848 2008-08-20  Richard Guenther  <rguenther@suse.de>
3849
3850         * tree-vrp.c (found_in_subgraph): Remove.
3851         (live): New global static.
3852         (live_on_edge): New function.
3853         (blocks_visited): Remove.
3854         (register_edge_assert_for_2): Use live_on_edge.
3855         (find_conditional_asserts): Remove code dealing with
3856         found_in_subgraph.  Do not walk the CFG.
3857         (find_switch_asserts): Likewise.
3858         (find_assert_locations_1): Renamed from find_assert_locations.
3859         Move finding assert locations for conditional and switch
3860         statements first.  Update live bitmap.  Do not walk the CFG.
3861         (find_assert_locations): New function.
3862         (insert_range_assertions): Remove entry of CFG walk.
3863         Adjust call to find_assert_locations.
3864         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
3865         that only can appear because of fake exit edges but assert we
3866         never try to insert on those.
3867         (fini_pre): Do not remove fake exit edges here...
3868         (execute_pre): ...but here, before committing edge inserts.
3869
3870 2008-08-19  Richard Guenther  <rguenther@suse.de>
3871
3872         * passes.c (init_optimization_passes): Exchange store-ccp
3873         with a ccp pass.
3874
3875 2008-08-19  Rafael Espíndola  <espindola@google.com>
3876
3877         * varasm.c (weak_decls): Move earlier in the file.
3878         (assemble_external): Add weak decls to the weak_decls list.
3879         (declare_weak): Don't add decls to the weak_decls list.
3880
3881 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
3882
3883         PR target/37157
3884         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
3885         before (sse2_shufpd_<mode>).
3886
3887 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
3888
3889         PR debug/37156
3890         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
3891         * tree.c (block_nonartificial_location): Likewise.
3892
3893 2008-08-19  Richard Guenther  <rguenther@suse.de>
3894
3895         PR tree-optimization/35972
3896         PR tree-optimization/23094
3897         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
3898         parameter.
3899         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
3900         handle MISALIGNED_INDIRECT_REF.
3901         (get_ref_from_reference_ops): New helper.
3902         (vn_reference_lookup_pieces): Walk the use-def chain using the
3903         alias-oracle if requested.
3904         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
3905         walking the use-def chain.
3906         (compute_avail): But not here.
3907         (create_component_ref_by_pieces_1): Properly handle
3908         MISALIGNED_INDIRECT_REF.
3909         (do_regular_insertion): Handle fully redundant
3910         expressions after PHI-translation also for SSA_NAME values, not
3911         only constants.  Correctly use edoubleprime for that.
3912
3913 2008-08-19  Ira Rosen  <irar@il.ibm.com>
3914
3915         * tree-vectorizer.c (supportable_widening_operation): Support
3916         multi-step conversion, return the number of steps in such conversion
3917         and the required intermediate types.
3918         (supportable_narrowing_operation): Likewise.
3919         * tree-vectorizer.h (vect_pow2): New function.
3920         (supportable_widening_operation): Change argument types.
3921         (supportable_narrowing_operation): Likewise.
3922         (vectorizable_type_promotion): Add an argument.
3923         (vectorizable_type_demotion): Likewise.
3924         * tree-vect-analyze.c (vect_analyze_operations): Call
3925         vectorizable_type_promotion and vectorizable_type_demotion with
3926         additional argument.
3927         (vect_get_and_check_slp_defs): Detect patterns.
3928         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
3929         types.
3930         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
3931         vect_build_slp_tree with correct arguments. Calculate unrolling factor
3932         according to the smallest type in the loop.
3933         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
3934         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
3935         supportable_widening_operation with correct arguments.
3936         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
3937         operands lists according to the number of vector statements in left
3938         or right node, if exists.
3939         (vect_gen_widened_results_half): Remove unused argument.
3940         (vectorizable_conversion): Call supportable_widening_operation,
3941         supportable_narrowing_operation, and vect_gen_widened_results_half
3942         with correct arguments.
3943         (vectorizable_assignment): Change documentation, support multiple
3944         types in SLP.
3945         (vectorizable_operation): Likewise.
3946         (vect_get_loop_based_defs): New function.
3947         (vect_create_vectorized_demotion_stmts): Likewise.
3948         (vectorizable_type_demotion): Support loop-aware SLP and general
3949         multi-step conversion. Call vect_get_loop_based_defs and
3950         vect_create_vectorized_demotion_stmts for transformation.
3951         (vect_create_vectorized_promotion_stmts): New function.
3952         (vectorizable_type_promotion): Support loop-aware SLP and general
3953         multi-step conversion. Call vect_create_vectorized_promotion_stmts
3954         for transformation.
3955         (vectorizable_store): Change documentation, support multiple
3956         types in SLP.
3957         (vectorizable_load): Likewise.
3958         (vect_transform_stmt): Pass SLP_NODE to
3959         vectorizable_type_promotion and vectorizable_type_demotion.
3960         (vect_schedule_slp_instance): Move here the calculation of number
3961         of vectorized statements for each node from...
3962         (vect_schedule_slp): ... here.
3963         (vect_transform_loop): Call vect_schedule_slp without the last
3964         argument.
3965
3966 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
3967
3968         PR bootstrap/37152
3969         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
3970         to == in assert statement.
3971         (vectorizable_reduction): Fix typo.
3972
3973 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
3974
3975         PR bootstrap/37153
3976         * value-prof.c (check_counter): Dereference pointer to overall
3977         count when printing it.
3978
3979 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
3980
3981         * profile.h: Really add it.
3982
3983 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
3984
3985         * mcf.c: Really add it.
3986
3987 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
3988             Vinodha Ramasamy  <vinodha@google.com>
3989
3990         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
3991         count_scale.
3992         * value-prof.c (check_counter): Fix the counter if
3993         flag_profile_correction is true.
3994         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
3995         tree_mod_subtract_transform):
3996         Follow check_counter parameter change.
3997         * common.opt (fprofile-correction): New option.
3998         * mcf.c: New file.
3999         * profile.h: Likewise.
4000         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
4001         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
4002         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
4003         functions.
4004         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
4005         flag_profile_correction is set.
4006
4007 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
4008
4009         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
4010
4011 2008-08-18  Tomas Bily  <tbily@suse.cz>
4012
4013         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
4014         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
4015         CONVERT_EXPR_P.
4016         * tree-data-ref.c (split_constant_offset_1): Likewise.
4017         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
4018         * tree-sra.c (sra_walk_expr): Likewise.
4019         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
4020         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4021         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
4022         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
4023         Likewise.
4024         * gimple.c (gimple_assign_unary_nop_p): Likewise.
4025         * tree-vect-transform.c (vectorizable_type_demotion)
4026         (vectorizable_type_promotion): Likewise.
4027         * tree-inline.c (expand_call_inline):
4028         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4029         (forward_propagate_addr_expr_1, forward_propagate_comparison)
4030         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4031         * expr.c (expand_expr_real_1): Likewise.
4032         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
4033         (gimple_assign_unary_useless_conversion_p): Likewise.
4034         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4035         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
4036         * fold-const.c (fold_unary): Likewise.
4037         * tree.h (CONVERT_EXPR_P): Likewise.
4038         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
4039         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4040         * tree-vrp.c:
4041         (register_edge_assert_for_2, extract_range_from_unary_expr)
4042         (register_edge_assert_for_1): Likewise.
4043
4044 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4045
4046         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
4047         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
4048         (enum real_value_const): Delete.
4049         (get_real_const): Delete.
4050         * real.c (get_real_const): Delete.
4051         (dconst_e_ptr): Define.
4052         (dconst_third_ptr): Define.
4053         (dconst_sqrt2_ptr): Define.
4054         * builtins.c: Update all callers.
4055
4056 2008-08-18  Richard Guenther  <rguenther@suse.de>
4057
4058         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
4059         statement iterator after statement removal.
4060
4061 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
4062
4063         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
4064         (detect_processor_freebsd): Likewise.
4065         (host_detect_local_cpu): Call newly added functions for FreeBSD.
4066
4067 2008-08-18  Richard Guenther  <rguenther@suse.de>
4068
4069         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
4070         and loads have the correct types.
4071
4072 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4073
4074         PR cpp/7263
4075         * c-opts.c (cpp_opts): Remove static.
4076         * c-parser.c (cpp_opts): Declare it extern.
4077         (disable_extension_diagnostics): Handle cpp options.
4078         (enable_extension_diagnostics): Likewise.
4079
4080 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4081
4082         * diagnostics.c (permerror_at): Rename as permerror.
4083         (permerror): Delete.
4084         * toplev.h: Likewise.
4085
4086 2008-08-18  Richard Guenther  <rguenther@suse.de>
4087
4088         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
4089         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
4090         Move call_cdce before build_alias.  Move copyrename2,
4091         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
4092         right after final inlining.
4093         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
4094         (pass_build_cfg): But instead via TODO_dump_func.
4095
4096 2008-08-18  Richard Guenther  <rguenther@suse.de>
4097
4098         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
4099         element index.
4100         (scalarize_init): If we failed to generate some initializers
4101         do not generate zeros for not instantiated members.  Instead
4102         rely on the copy out.
4103         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
4104         about missing flow-sensitive alias info only if we have
4105         aliases computed.
4106
4107 2008-08-17  Nick Clifton  <nickc@redhat.com>
4108
4109         * doc/extend.texi (Function Attributes): Fix typo in description
4110         if hot function attribute.
4111
4112 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
4113             Richard Sandiford  <rdsandiford@googlemail.com>
4114
4115         * doc/install.texi (--with-mips-plt): Document.
4116         * doc/invoke.texi (-mplt, -mno-plt): Document.
4117         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
4118         and handle ${with_mips_plt}.
4119         * config/mips/mips.opt (mplt): New option.
4120         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
4121         (TARGET_ABICALLS_PIC2): Likewise.
4122         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
4123         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
4124         (ASM_SPEC): Use !mabi=* instead of !mabi*.
4125         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
4126         to decide whether to output ".option picX" directives.
4127         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
4128         Pass -call_nonpic rather than -KPIC for -mplt.
4129         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
4130         on the command line.  Also remove it when -mabi=64 is used without
4131         -msym32.
4132         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
4133         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
4134         TARGET_ABICALLS_PIC0.
4135         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
4136         TARGET_ABICALLS.
4137         (mips16_build_function_stub): Only output ".option pic" directives
4138         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
4139         (mips16_build_call_stub): Fix comment and remove redundant
4140         ".set at"/"set .noat" directives.
4141         (mips_function_rodata_section): Use the default behaviour for
4142         TARGET_ABSOLUTE_ABICALLS.
4143         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
4144         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
4145         (mips_restore_gp): Do nothing if the current function doesn't use
4146         a global pointer.
4147         (mips_expand_prologue): Only save $gp if the current function uses it.
4148         Use a normal move for TARGET_ABICALLS_PIC0.
4149         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
4150
4151 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
4152
4153         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
4154         of function when handling GLOBAL_POINTER_REGNUM.
4155
4156 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
4157
4158         PR ada/20548
4159         * common.opt (-fstack-check): Do not declare the variable here.
4160         (-fstack-check=): New option variant.
4161         * doc/invoke.texi (Code Gen Options): Document it.
4162         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
4163         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
4164         (STACK_CHECK_STATIC_BUILTIN): New macro.
4165         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
4166         * opts.c: Include expr.h.
4167         (common_handle_option) <OPT_fold_stack_check_>: New case.
4168         <OPT_fstack_check>: Likewise.
4169         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
4170         consistently in the test for variable-sized types.  Adjust for
4171         new behaviour of flag_stack_check.
4172         * explow.c: Include except.h.
4173         (allocate_dynamic_stack_space): Do not take into account
4174         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
4175         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
4176         for variable-sized parameters.  Treat all parameters whose size is
4177         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
4178         stack checking is enabled.
4179         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
4180         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
4181         if generic stack checking is enabled.
4182         (expand_function_end): Adjust for new behaviour of flag_stack_check.
4183         * reload1.c (reload): Likewise.
4184         * stmt.c (expand_decl): Assert that all automatic variables have
4185         fixed size at this point and remove dead code.
4186         * flags.h (stack_check_type): New enumeration type.
4187         (flag_stack_check): Declare.
4188         * toplev.c (flag_stack_check): New global variable.
4189         * Makefile.in (opts.o): Add dependency on EXPR_H.
4190         (explow.o): Add dependency on except.h.
4191
4192 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
4193
4194         * config/avr/avr.c (avr_override_options): Reduce value of
4195         PARAM_INLINE_CALL_COST.
4196
4197 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
4198
4199         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
4200         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
4201         lieu of TYPE_MODE (type) throughout.
4202
4203 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
4204
4205         * config/arm/arm.c (add_minipool_backward_ref): Check for
4206         8-byte-aligned entries in second case of forcing insertion after a
4207         particular entry.  Change third case to avoid inserting
4208         non-8-byte-aligned entries before 8-byte-aligned ones.
4209
4210 2008-08-15  Richard Guenther  <rguenther@suse.de>
4211
4212         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
4213         strip components for unknown size accesses.
4214
4215 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
4216
4217         * config/s390/2097.md New file.
4218         * config/s390/s390.md ("z10prop" attribute): Define none,
4219         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
4220         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
4221         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
4222         possible values and apply them to insns as appropriate.
4223         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
4224         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
4225         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
4226         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
4227         values.
4228         ("bfp" mode attribute): Removed.  Every occurence replaced
4229         with <mode>.
4230         * config/s390/s390.c (struct "z10_cost"): Updated entries.
4231         * config/s390/2084.md (insn_reservation "x_itof"): Updated
4232           type attribute.
4233
4234 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4235
4236         PR c/28152
4237         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
4238         for keywords.
4239
4240 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
4241
4242         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
4243         additional argument. Support reduction when duplication is needed due
4244         to data-types of different sizes in the loop.
4245         (get_initial_def_for_induction): Fix printout.
4246         (vect_get_vec_def_for_stmt_copy): Support case where the
4247         vec_stmt_for_operand is a phi node.
4248         (vectorizable_reduction): Support reduction when duplication is needed
4249         due to data-types of different sizes in the loop.
4250         (vectorizable_call): Remove restriction to not vectorize in case we
4251         have data-types of different sizes in the loop.
4252         (vectorizable_conversion): Likewise.
4253         (vectorizable_operation): Likewise.
4254         (vectorizable_type_demotion): Likewise.
4255         (vectorizable_type_promotion): Likewise.
4256         (vectorizable_induction): Add restriction to not vectorize in case
4257         we have data-types of different sizes in the loop.
4258
4259 2008-08-14  Christophe Saout  <christophe@saout.de>
4260             Uros Bizjak  <ubizjak@gmail.com>
4261
4262         PR target/37101
4263         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
4264         (*vec_concatv2di_rex64_sse4_1): Ditto.
4265         (*vec_concatv2di_rex64_sse): Ditto.
4266
4267 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
4268
4269         PR middle-end/37103
4270         * fold-const.c (fold_widened_comparison): Do not allow
4271         sign changes that change the result even if shorter type
4272         is wider than arg1_unw's type.
4273
4274 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
4275
4276         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
4277         Skip if the multilib testing specifies -march that does not
4278         agree with the one specified in the testcase.
4279
4280 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
4281
4282         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
4283         zero extend SImode values being converted to TFmode before passing
4284         to libcalls.
4285
4286 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4287
4288         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
4289         __PPU__ when targeting the Cell/B.E. PPU processor.
4290
4291 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
4292
4293         * gimple.h (gimple_call_set_chain): Accept SSA variables.
4294         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
4295         Rematerialize the static chain, if any.
4296         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
4297         static chain.
4298
4299 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
4300
4301         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
4302         (new_loc_descr): Likewise.
4303         (add_loc_descr): Likewise.
4304         (size_of_loc_descr): Likewise.
4305         (size_of_locs): Likewise.
4306         (output_loc_operands): Likewise.
4307         (output_loc_sequence): Likewise.
4308         (new_reg_loc_descr): New.
4309         (build_cfa_loc): Use it.
4310         (build_cfa_aligned_loc): Likewise.
4311         (one_reg_loc_descriptor): Likewise.
4312         (based_loc_descr): Likewise.
4313
4314 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4315
4316         PR 30551
4317         * doc/invoke.texi (Wmain): Update.
4318         * c-decl.c (start_decl): warn_main is only 0 or 1.
4319         (start_function): Likewise. Fix formatting.
4320         (finish_function): Delete redundant warning.
4321         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
4322         * c-opts (c_common_handle_option): -Wall only has effect if
4323         warn_main is uninitialized. OPT_Wmain is automatically
4324         handled. -pedantic also enables Wmain.
4325         (c_common_post_options): Handle all logic for Wmain here.
4326         * c-common.c (warn_main): Delete.
4327         (check_main_parameter_types): Make pedwarns conditional on
4328         OPT_Wmain.
4329         * c-common.h (warn_main): Delete.
4330
4331 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
4332
4333         PR middle-end/36701
4334         * expr.c (emit_group_store): Allocate stack temp with the
4335         largest alignment when copying from register to stack.
4336
4337 2008-08-13  Richard Guenther  <rguenther@suse.de>
4338
4339         * tree.h (maybe_fold_offset_to_address): Declare.
4340         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
4341         (ccp_fold): Handle pointer conversions the same as fold_stmt.
4342         Likewise for POINTER_PLUS_EXPR.
4343         (maybe_fold_offset_to_reference): Enable disabled code.
4344         (maybe_fold_offset_to_address): New function.
4345         (fold_stmt_r): Use it.
4346         (fold_gimple_assign): Likewise.
4347         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
4348         (gimplify_expr): Likewise.
4349
4350 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4351
4352         * toplev.h (pedwarn_at): Fix declaration.
4353
4354 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
4355
4356         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4357         LINK_SPEC): Use %R in -Y P argument.
4358
4359 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4360
4361         PR c/15236
4362         * diagnostic.c (pedwarn_at): New.
4363         * toplev.h (pedwarn_at): Declare.
4364         * c-tree.h (build_enumerator): Update declaration.
4365         * c-decl.c (finish_enum): Update comment.
4366         (build_enumerator): Take a location parameter. Give a pedwarn but do
4367         not perform any conversion.
4368         * c-parser.c (c_parser_enum_specifier): Set correct location for
4369         enumerator.
4370
4371 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4372
4373         PR 35635
4374         * c-common.c (conversion_warning): Use a switch. Ignore boolean
4375         expressions except for conversions to signed:1 bitfields. Handle
4376         COND_EXPR with constant operands.
4377
4378 2008-08-13  Richard Guenther  <rguenther@suse.de>
4379
4380         PR tree-optimization/15255
4381         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
4382         (struct oecount_s): New struct and VEC types.
4383         (cvec): New global.
4384         (oecount_hash): New function.
4385         (oecount_eq): Likewise.
4386         (oecount_cmp): Likewise.
4387         (zero_one_operation): New function.
4388         (build_and_add_sum): Likewise.
4389         (undistribute_ops_list): Perform un-distribution of multiplication
4390         and division on the chain of summands.
4391         (should_break_up_subtract): Also break up subtracts for factors.
4392         (reassociate_bb): Delete dead visited statements.
4393         Call undistribute_ops_list.  Re-sort and optimize if it did something.
4394         * passes.c (init_optimization_passes): Move DSE before
4395         reassociation.
4396         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
4397         PHI nodes.
4398
4399 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
4400
4401         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
4402
4403         * doc/invoke.texi: Revert unintended checkin.
4404
4405 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
4406
4407         PR libgomp/26165
4408         * gcc.c (include_spec_function): Tweak call to find_a_file.
4409
4410 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
4411
4412         PR middle-end/37014
4413         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
4414         and TRUTH_ORIF_EXPR.
4415         * dojump.c (do_jump): Likewise.
4416
4417         PR tree-optimization/37084
4418         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
4419         if id->regimplify, don't assume stmt is a cast assignment.
4420
4421 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
4422
4423         * final.c (final_scan_insn): Use app_enable/app_disable functions.
4424
4425 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4426
4427         PR bootstrap/37097
4428         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
4429         by last change.
4430
4431 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4432
4433         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
4434         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
4435
4436         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
4437         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
4438         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
4439         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
4440         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
4441
4442         * doc/tm.texi (Storage Layout): Remove documentation for
4443         TARGET_FLOAT_FORMAT.
4444
4445         * simplify-rtx.c (simplify_binary_operation_1): Replace
4446         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
4447
4448 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4449
4450         * real.h (struct real_format): New member has_sign_dependent_rounding.
4451         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
4452         spu_single_format, ieee_double_format, mips_double_format,
4453         motorola_double_format, ieee_extended_motorola_format,
4454         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
4455         ieee_extended_intel_96_round_53_format, ibm_extended_format,
4456         mips_extended_format, ieee_quad_format, mips_quad_format,
4457         vax_f_format, vax_d_format, vax_g_format): Initialize it.
4458         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
4459
4460         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
4461         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
4462         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
4463         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
4464         (ROUND_TOWARDS_ZERO): Likewise.
4465
4466         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
4467         (FLOAT_MODE_FORMAT): New macro.
4468         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
4469         (MODE_COMPOSITE_P): ... this new macro.
4470         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
4471         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
4472         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
4473
4474         * flags.h: Include "real.h".
4475
4476         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
4477         REAL_MODE_FORMAT_COMPOSITE_P.
4478         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
4479
4480         * doc/tm.texi (Storage Layout): Remove documentation of
4481         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
4482         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
4483         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
4484         they only apply to libgcc2.a.
4485
4486 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4487
4488         * config/spu/float_disf.c: New file.
4489         * config/spu/float_unsdisf.c: New file.
4490         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
4491         (LIB2FUNCS_EXCLUDE): Define.
4492
4493 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4494             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4495
4496         * real.h (struct real_format): New member round_towards_zero.
4497         * real.c (round_for_format): Respect fmt->round_towards_zero.
4498         (ieee_single_format, mips_single_format, motorola_single_format,
4499         spu_single_format, ieee_double_format, mips_double_format,
4500         motorola_double_format, ieee_extended_motorola_format,
4501         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
4502         ieee_extended_intel_96_round_53_format, ibm_extended_format,
4503         mips_extended_format, ieee_quad_format, mips_quad_format,
4504         vax_f_format, vax_d_format, vax_g_format): Initialize it.
4505         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
4506
4507         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
4508         real_format to choose rounding mode when calling MPFR functions.
4509         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
4510         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
4511
4512         * real.h (real_to_decimal_for_mode): Add prototype.
4513         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
4514         Respect target rounding mode when generating decimal representation.
4515         (real_to_decimal): New stub for backwards compatibility.
4516         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
4517         real_to_decimal_for_mode instead of real_to_decimal.
4518
4519         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
4520
4521 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4522             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4523
4524         * real.c (spu_single_format): New variable.
4525         * real.h (spu_single_format): Declare.
4526
4527         * config/spu/spu.c (spu_override_options): Install SFmode format.
4528         (spu_split_immediate): Use integer mode to operate on pieces of
4529         floating-point values in all cases.
4530
4531         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
4532         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
4533         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
4534
4535 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4536
4537         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
4538
4539 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4540
4541         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
4542
4543 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
4544
4545         PR c++/36688
4546         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
4547         on the VAR_DECL instead of TYPE_READONLY on its type.
4548
4549 2008-08-12  Ira Rosen  <irar@il.ibm.com>
4550
4551         * tree-vectorizer.c: Depend on langhooks.h.
4552         (supportable_widening_operation): Add two arguments. Support double
4553         type conversions.
4554         (supportable_narrowing_operation): Likewise.
4555         * tree-vectorizer.h (supportable_widening_operation): Add two
4556         arguments.
4557         (supportable_narrowing_operation): Likewise.
4558         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
4559         supportable_widening_operation with correct arguments.
4560         * tree-vect-transform.c (vectorizable_conversion): Likewise.
4561         (vectorizable_type_demotion): Support double type conversions.
4562         (vectorizable_type_promotion): Likewise.
4563         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
4564
4565 2008-08-11  Michael Matz  <matz@suse.de>
4566
4567         * i386/i386.c (override_options): Move initialisation from
4568         flag_schedule_insns_after_reload to here from ...
4569         (optimization_options): ... here.
4570
4571 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
4572
4573         PR rtl-optimization/36998
4574         * dwarf2out.c (compute_barrier_args_size_1,
4575         compute_barrier_args_size): Temporarily remove assertions.
4576
4577 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4578
4579         PR middle-end/20644
4580         * tree-ssa.c (struct walk_data): Add new flag
4581         warn_possibly_uninitialized.
4582         (warn_uninitialized_var): Use it.
4583         (warn_uninitialized_vars): New.
4584         (execute_early_warn_uninitialized): Call it.
4585         (execute_late_warn_uninitialized): Likewise.
4586
4587 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4588
4589         PR middle-end/36238
4590         * reload1.c (gen_reload): Guard calls to get_secondary_mem
4591         for memory subregs.
4592
4593 2008-08-09  Jan Hubicka  <jh@suse.cz>
4594
4595         PR target/37055
4596         * optabs.c (maybe_emit_unop_insn): Remove produced code if
4597         expansion failed.
4598         (expand_fix): Be prepared for expansion to fail.
4599         (expand_sfix_optab): Remove instructions if expansion failed.
4600
4601 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
4602
4603         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
4604         avr31 architecture.
4605         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
4606         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4607
4608 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4609
4610         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
4611         mips/t-libgcc-mips16 to tmake_file.
4612         * config/mips/mips-protos.h (mips_call_type): New enum.
4613         (mips_pic_base_register, mips_got_load): Declare.
4614         (mips_restore_gp): Take an rtx argument.
4615         (mips_use_pic_fn_addr_reg_p): Declare.
4616         (mips_expand_call): Replace the sibcall_p argument with
4617         a mips_call_type argument.  Add a lazy_p parameter.
4618         (mips_split_call): Declare.
4619         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
4620         (MIPS16_PIC_TEMP): Likewise.
4621         (reg_class): Delete M16_NA_REGS.
4622         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
4623         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
4624         (mips_split_hi_p): Declare.
4625         * config/mips/mips.c (mips_split_hi_p): New array.
4626         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
4627         (mips_got_symbol_type_p): New function.
4628         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
4629         (mips16_stub_function_p): New function.
4630         (mips16_local_function_p): Likewise.
4631         (mips_use_pic_fn_addr_reg_p): Likewise.
4632         (mips_cannot_force_const_mem): Return false for HIGHs.
4633         Extend CONST_INT and symbolic handling to MIPS16, using
4634         mips_symbol_insns to check that the base symbol type is a
4635         legitimate constant.  Reject GOT-based constants if
4636         TARGET_MIPS16_PCREL_LOADS.
4637         (mips_const_insns): Check targetm.cannot_force_const_mem when
4638         decomposing a symbolic base and a large offset.
4639         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
4640         When calling a function that needs $25 from MIPS16 code,
4641         move the target address into $25 separately and add a USE
4642         to the call insn.
4643         (mips16_gp_pseudo_reg): Insert the initializer immediately
4644         before the first real insn.
4645         (mips_pic_base_register, mips_got_load): New functions.
4646         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
4647         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
4648         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
4649         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
4650         (mips_call_tls_get_addr): Update the call to mips_expand_call,
4651         also passing NULL_RTX rather than const0_rtx as the aux argument.
4652         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
4653         instead of TARGET_EXPLICIT_RELOCS.
4654         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
4655         (mips_load_call_address): Replace the sibcall_p argument with
4656         a mips_call_type argument.  Use mips_got_load.
4657         (mips16_local_alias): New structure.
4658         (mips16_local_aliases): New variable.
4659         (mips16_local_aliases_hash): New function.
4660         (mips16_local_aliases_eq): Likewise.
4661         (mips16_local_alias): Likewise.
4662         (mips16_stub_function): Likewise.
4663         (mips16_build_function_stub): Create a local alias for the target
4664         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
4665         .cpload directive and an R_MIPS_NONE relocation for the target
4666         function, then load the alias rather than the function itself.
4667         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
4668         (mips16_copy_fpr_return_value): Use mips16_stub_function and
4669         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
4670         (mips16_build_call_stub): Replace the FN parameter with an
4671         FN_PTR parameter.  Force the address into a register if it
4672         isn't a call_insn_operand; don't rely on the caller to do this.
4673         If a call to a locally-defined and locally-binding MIPS16
4674         function must be made indirectly, redirect the call to the
4675         function's local alias.  Use mips16_stub_function_p,
4676         mips16_stub_function, mips_expand_call and use_reg.
4677         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
4678         Use explicit %hi and %lo accesses where possible.
4679         Use MIPS_CALL to generate the correct code form of a
4680         jal instruction.  Add clobbers of $18 instead of uses.
4681         Update the call to mips_emit_call_insn.
4682         (mips_expand_call): Replace the SIBCALL_P argument with a
4683         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
4684         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
4685         allowing it to modify the call address.  Update the calls to
4686         mips_load_call_address and mips_emit_call_insn.
4687         (mips_split_call): New function.
4688         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
4689         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
4690         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
4691         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
4692         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
4693         if TARGET_MIPS16.
4694         (mips_cprestore_slot): New function.
4695         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
4696         and use mips_cprestore_slot.
4697         (mips_output_function_prologue): Handle TARGET_MIPS16 for
4698         LOADGP_OLDABI.
4699         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
4700         then use a copygp_mips16 instruction to set up $28.
4701         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
4702         (mips16_lay_out_constants): Call split_all_insns_noflow.
4703         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
4704         false if TARGET_MIPS16.
4705         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
4706         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
4707         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
4708         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
4709         MIPS16 code.  Allow MIPS16 o32 PIC.
4710         (mips_override_options): Allow MIPS16 o32 PIC.
4711         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
4712         after reload if TARGET_USE_GOT.
4713         (UNSPEC_COPYGP): New constant.
4714         (length): Use a default length of 8 for MIPS16 GOT loads.
4715         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
4716         (*got_page<mode>): Check mips_split_hi_p.
4717         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
4718         (unspec_got<mode>, unspec_call<mode>): New expanders.
4719         (load_got<mode>, load_call<mode>): Remove the length attributes.
4720         Use a got attribute instead of a type attribute.
4721         (copygp_mips16): New insn.
4722         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
4723         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
4724         (sibcall, sibcall_value, call, call_value): Update the calls
4725         to mips_expand_call.
4726         (call_internal, call_value_internal): Use mips_split_call.
4727         (call_value_multiple_internal): Likewise.
4728         (call_split): Move after call_internal (the insn it is split from).
4729         (call_internal_direct, call_value_internal_direct): Turn into
4730         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
4731         (call_direct_split, call_value_direct_split): New patterns.
4732         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
4733         and use M16_REGS instead of M16_NA_REGS.
4734         * config/mips/predicates.md (const_call_insn_operand): Replace
4735         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
4736         mips_use_pic_fn_addr_reg_p check.
4737         (move_operand): Reject HIGHs if mips_split_hi_p.
4738         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
4739         (__mips16_floatunsisf): Inline __mips16_floatsisf.
4740         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
4741         * config/mips/libgcc-mips16.ver: New file.
4742         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
4743         $(srcdir)/config/mips/libgcc-mips16.ver.
4744
4745 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4746
4747         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
4748         (mips_unspec_address, mips_unspec_offset_high): Likewise.
4749         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
4750         (mips16_cfun_returns_in_fpr_p): Likewise.
4751
4752 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4753
4754         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
4755         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
4756         rather than 4 to PC.
4757
4758 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4759
4760         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
4761         (FUNCTION_PROFILER): Save the static chain pointer into $2
4762         beforehand and restore it aftewards.
4763         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
4764         address directly into $25 and call the function through $25;
4765         do not clobber $3.  Pad the DImode version to cover the space
4766         left by the deleted $25 <- $3 move.
4767         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
4768         the removal of the $25 <- $3 move.
4769         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
4770         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
4771
4772 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4773             Daniel Jacobowitz  <dan@codesourcery.com>
4774
4775         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
4776         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
4777         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
4778         * config/mips/mips.c (mips_start_function_definition): New function.
4779         (mips_end_function_definition): Likewise.
4780         (mips_output_function_prologue): Use mips_start_function_definition.
4781         (mips_output_function_epilogue): Use mips_end_function_definition.
4782         (build_mips16_function_stub): Use mips_start_function_definition
4783         and mips_end_function_definition.
4784         (build_mips16_call_stub): Likewise.
4785
4786 2008-08-09  Richard Guenther  <rguenther@suse.de>
4787
4788         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
4789         * gimple.h (gimple_call_fn): Adjust comment.
4790         (gimple_call_set_fndecl): New function.
4791         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
4792         longer having bare FUNCTION_DECL operand.
4793         (gimple_call_return_type): Likewise.
4794         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
4795
4796         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
4797         (gimple_mod_pow2): Likewise.
4798         (gimple_mod_subtract): Likewise.
4799         (gimple_ic): Likewise.
4800         (gimple_stringop_fixed_value): Likewise.
4801         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
4802         longer having bare FUNCTION_DECL operand.
4803         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
4804         * omp-low.c (optimize_omp_library_calls): Likewise.
4805         * cgraphunit.c (update_call_expr): Likewise.
4806         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
4807         (execute_convert_to_rsqrt): Likewise.
4808         * cfgexpand.c (gimple_to_tree): Simplify.
4809         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
4810         bare FUNCTION_DECL operand.
4811         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
4812         (convert_gimple_call): Use gimple_call_fndecl.
4813         * c-common.c (c_warn_unused_result): Likewise.
4814
4815 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4816
4817         PR c/17880
4818         * c-typeck.c (digest_init): Call verify_sequence_points from here.
4819         (c_finish_return): Likewise.
4820         (c_start_case): Likewise.
4821         * c-common.c (warn_for_collisions_1): Use explicit location in
4822         warning.
4823         * c-parser.c (c_parser_condition): New. Call
4824         verify_sequence_points.
4825         (c_parser_paren_condition): Call c_parser_condition.
4826         (c_parser_for_statement): Call c_parser_condition.
4827
4828 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4829
4830         PR 36901
4831         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
4832         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
4833         Moved from diagnostic.h
4834         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
4835         DK_PERMERROR.
4836         (emit_diagnostic): New.
4837         (warning0, pedwarn0): Delete.
4838         (warning, warning_at, pedwarn, permerror): Return bool.
4839         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
4840         Moved to diagnostic.c.
4841         (struct diagnostic_context): Use correct type for
4842         classify_diagnostic.
4843         (diagnostic_report_diagnostic): Update declaration.
4844         (emit_diagnostic): Declare.
4845         * errors.c (warning): Return bool.
4846         * errors.h (warning): Update declaration.
4847         * toplev.h (warning0, pedwarn0): Delete.
4848         (warning, warning_at, pedwarn, permerror): Return bool.
4849         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
4850         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
4851         inform. Update all calls.
4852         (diagnose_mismatched_decls): Check return value of warning/pedwarn
4853         before giving informative note.
4854         (implicit_decl_warning): Likewise.
4855         * c-typeck.c (build_function_call): Likewise.
4856         * tree-sssa.c (warn_uninit): Likewise.
4857         * builtins.c (gimplify_va_arg_expr): Likewise.
4858
4859 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4860
4861         PR 7651
4862         * doc/invoke.texi (-Wextra): Move warning from here...
4863         (-Wuninitialized): ... to here.
4864
4865 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4866
4867         PR 28875
4868         * flags.h (set_Wunused): Delete
4869         * toplev.c (process_options): Handle Wunused flags here.
4870         * opts.c (maybe_warn_unused_parameter): Delete.
4871         (common_handle_option): Replace set_Wunused by warn_unused.
4872         (set_Wextra): Do not handle Wunused-parameter here.
4873         (set_Wunused): Delete.
4874         * c-opts.c (c_common_handle_option): Replace set_Wunused by
4875         warn_unused.
4876         * common.opt (Wunused): Add Var and Init.
4877         (Wunused-function): Likewise.
4878         (Wunused-label): Likewise.
4879         (Wunused-parameter): Likewise.
4880         (Wunused-value): Likewise.
4881         (Wunused-variable): Likewise.
4882
4883 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
4884
4885         * doc/invoke.texi: Add cpu_type power7.
4886         * config.in (HAVE_AS_VSX): New.
4887         * config.gcc: Add cpu_type power7.
4888         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
4889         VSX instructions.
4890         * configure: Regenerate.
4891         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
4892         power5.
4893         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
4894         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
4895         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
4896
4897 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
4898
4899         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
4900         type to vectorize.builtin_conversion.
4901         (vectorizable_conversion): Likewise.
4902         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
4903         integral type as input.
4904         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
4905         FIX_TRUNC_EXPR.
4906         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
4907         and ALTIVEC_BUILTIN_VCTSXS.
4908         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
4909         formatting.
4910
4911 2008-08-08  Richard Guenther  <rguenther@suse.de>
4912
4913         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
4914         (surely_varying_stmt_p): Calls are varying only if they are
4915         non-builtin and not indirect or have no result.
4916         (ccp_fold): Re-instantiate code before the tuples merge.
4917
4918 2008-08-08  Richard Guenther  <rguenther@suse.de>
4919
4920         PR tree-optimization/37056
4921         * gimple.h (gimple_assign_rhs_class): New helper function.
4922         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
4923         unary operations properly.
4924
4925 2008-08-07  Jan Hubicka  <jh@suse.cz>
4926
4927         * i386.h (ix86_size_cost): Declare.
4928         (ix86_cur_cost): New function macro.
4929         * i386.md (peepholes expanding size and splitters): Predicate by
4930         optimize_insn_for_speed_p.
4931         (peepholes reduce size and splitters): Predicate by
4932         optimize_insn_for_size_p.
4933         * i386.c (ix86_size_cost): Rename from ...
4934         (size_cost): This one.
4935         (override_options): Update.
4936         (decide_alg): Likewise.
4937         (ix86_expand_clear): Use RTL profile.
4938         (ix86_pad_returns): Use RTL profile.
4939
4940 2008-08-07  Jan Hubicka  <jh@suse.cz>
4941
4942         * recog.c (split_all_insns): Set RTL profile
4943         (peephole2_optimize): Likewise.
4944         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4945         * combine.c (combine_instructions): Likewise.
4946
4947 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4948
4949         * c-common.c (c_common_reswords): Also warn about keyword "bool".
4950
4951 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
4952
4953         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
4954         value in a6 after the set_frame_ptr insn.
4955
4956 2008-08-07  Richard Henderson  <rth@redhat.com>
4957
4958         PR debug/37033
4959         * gcc.c (cpp_options): Pass along -g*.
4960
4961 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
4962
4963         * config/arm/arm.c (output_move_neon): Update comment describing
4964         big-endian vector layout.
4965         (arm_assemble_integer): Do not handle big-endian NEON vectors
4966         specially.
4967         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
4968         neon_vget_lane<mode>_sext_internal,
4969         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
4970         element indices for big-endian.
4971
4972 2008-08-07  Richard Henderson  <rth@redhat.com>
4973
4974         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
4975         * configure, config.in: Rebuild.
4976         * debug.h (dwarf2out_do_cfi_asm): Declare.
4977         * c-cppbuiltin.c (c_cpp_builtins): Use it.
4978         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
4979         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
4980         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
4981
4982 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
4983
4984         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4985         movv2si_internal): Combine into mov<mode>_internal.
4986         (movv2si_internal_2): Remove.
4987
4988 2008-08-07  Jan Hubicka  <jh@suse.cz>
4989
4990         PR target/37048
4991         * i386.md (single stringop patterns): Enable unconditionally.
4992
4993 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
4994
4995         PR target/36992
4996         * config/i386/emmintrin.h (_mm_move_epi64): Use
4997         __builtin_ia32_movq128.
4998
4999         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
5000         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
5001
5002         * config/i386/sse.md (sse2_movq128): New.
5003
5004         * doc/extend.texi: Document __builtin_ia32_movq128.
5005
5006 2008-08-07  Richard Guenther  <rguenther@suse.de>
5007
5008         PR middle-end/37042
5009         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
5010         pointers can access anything.
5011
5012 2008-08-06  Jan Hubicka  <jh@suse.cz>
5013
5014         * optabs.c (emit_unop_insn): Break out to ...
5015         (maybe_emit_unop_insn): ... this one.
5016         (expand_sfix_optab): Use maybe variant.
5017         * optabs.h (maybe_emit_unop_insn): Declare.
5018
5019         * i386.md (mov0 patterns): Enable by default.
5020         (FP conversion expanders): Disable expansion of code expanding
5021         sequences when instruction should be optimized for size.
5022         (single strinop patterns): Enable when optimizing for size.
5023         (string expanders): Disable expanding of code expanding sequences
5024         when optimizning instruction for size.
5025         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
5026         per BB basis.
5027         (ix86_fp_comparison_sahf_cost): Likewise.
5028         (ix86_expand_branch): Likewise.
5029         (ix86_expand_ashl_const): Likewise.
5030         (ix86_split_ashl): Likewise.
5031         (ix86_expand_strlen): Likewise.
5032         (ix86_emit_fp_unordered_jump): Likewie.
5033
5034 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5035
5036         * c-common.c: Fix typo.
5037         (c_common_reswords): Activate more C++ keyword warnings.
5038
5039         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
5040
5041 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5042
5043         PR 26785
5044         * diagnostic.c (permerror_at): New.
5045         * toplev.h (permerror_at): Declare.
5046
5047 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
5048             Ira Rosen  <irar@il.ibm.com>
5049
5050         * tree-vect-transform.c (vect_model_simple_cost): Return
5051         immediately if stmt is pure SLP.
5052         (vect_model_store_cost): Ditto.
5053         (vect_model_load_cost): Ditto.
5054         (vectorizable_store): Remove PURE_SLP check before call
5055         to vect_model_store_cost.
5056         (vect_model_store_cost): When checking whether stmt describe
5057         strided access, add a check that it is not slp_node.
5058
5059 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5060
5061         PR 8715
5062         * c-common.c (warn_for_sign_compare): New. Handle separately the
5063         case that 'constant' is zero.
5064         * c-typeck.c (build_binary_op): Move code to c-common.c
5065
5066 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5067
5068         * config/alpha/alpha.c (alpha_preferred_reload_class,
5069         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
5070         alpha_output_mi_thunk_osf): Avoid C++ keywords.
5071         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
5072         * config/arm/arm.md: Likewise.
5073         * config/avr/avr-protos.h (preferred_reload_class,
5074         test_hard_reg_class, avr_simplify_comparison_p,
5075         out_shift_with_cnt, class_max_nregs): Likewise.
5076         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
5077         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
5078         preferred_reload_class, test_hard_reg_class): Likewise.
5079         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
5080         bfin_memory_move_cost, bfin_secondary_reload,
5081         bfin_output_mi_thunk): Likewise.
5082         * config/crx/crx.c (crx_secondary_reload_class,
5083         crx_memory_move_cost): Likewise.
5084         * config/frv/frv-protos.h (frv_secondary_reload_class,
5085         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
5086         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
5087         frv_secondary_reload_class, frv_class_likely_spilled_p,
5088         frv_class_max_nregs): Likewise.
5089         * config/h8300/h8300.c (h8300_classify_operand,
5090         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
5091         Likewise.
5092         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
5093         * config/ia64/ia64.c (ia64_preferred_reload_class,
5094         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
5095         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
5096         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
5097         Likewise.
5098         * config/m68hc11/m68hc11.c (preferred_reload_class,
5099         m68hc11_memory_move_cost): Likewise.
5100         * config/mcore/mcore.c (mcore_secondary_reload_class,
5101         mcore_reload_class): Likewise.
5102         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
5103         mips_class_max_nregs, mips_cannot_change_mode_class,
5104         mips_preferred_reload_class, mips_secondary_reload_class,
5105         mips_output_mi_thunk): Likewise.
5106         * config/mmix/mmix.c (mmix_preferred_reload_class,
5107         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
5108         Likewise.
5109         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5110         Likewise.
5111         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
5112         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
5113         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5114         * config/rs6000/rs6000.c (paired_expand_vector_init,
5115         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
5116         compare_section_name, rs6000_memory_move_cost): Likewise.
5117         * config/s390/s390.c (s390_emit_compare_and_swap,
5118         s390_preferred_reload_class, s390_secondary_reload,
5119         legitimize_pic_address, legitimize_tls_address,
5120         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
5121         s390_class_max_nregs): Likewise.
5122         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5123         * config/s390/s390.md: Likewise.
5124         * config/score/score-protos.h (score_secondary_reload_class,
5125         score_preferred_reload_class): Likewise.
5126         * config/score/score.c (score_preferred_reload_class,
5127         score_secondary_reload_class): Likewise.
5128         * config/score/score3.c (score3_output_mi_thunk,
5129         score3_preferred_reload_class, score3_secondary_reload_class,
5130         score3_hard_regno_mode_ok): Likewise.
5131         * config/score/score3.h (score3_preferred_reload_class,
5132         score3_secondary_reload_class): Likewise.
5133         * config/score/score7.c (score7_output_mi_thunk,
5134         score7_preferred_reload_class, score7_secondary_reload_class,
5135         score7_hard_regno_mode_ok): Likewise.
5136         * config/score/score7.h (score7_preferred_reload_class,
5137         score7_secondary_reload_class): Likewise.
5138         * config/sh/sh.c (prepare_move_operands, output_far_jump,
5139         output_branchy_insn, add_constant, gen_block_redirect,
5140         sh_insn_length_adjustment, sh_cannot_change_mode_class,
5141         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
5142         Likewise.
5143         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5144         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
5145         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
5146         xstormy16_preferred_reload_class): Likewise.
5147         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
5148         xtensa_expand_atomic, override_options,
5149         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
5150         Likewise.
5151         * reorg.c (try_merge_delay_insns): Likewise.
5152         * tree.c (merge_dllimport_decl_attributes): Likewise.
5153
5154         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
5155
5156 2008-08-06  Michael Matz  <matz@suse.de>
5157
5158         * Makefile.in (write_entries_to_file): Quote words.
5159         * gengtype.c: (read_input_line): Skip over leading white-space.
5160
5161 2008-08-06  Marc Gauthier  <marc@tensilica.com>
5162
5163         * config.gcc: Match more processor names for Xtensa.
5164         * configure.ac: Likewise.
5165         * doc/install.texi (Specific): Likewise.
5166         * configure: Regenerate.
5167
5168 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5169
5170         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
5171         * calls.c (avoid_likely_spilled_reg): Likewise.
5172         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
5173         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
5174         * config/i386/i386.c (ix86_expand_special_args_builtin,
5175         ix86_secondary_reload): Likewise.
5176         * except.c (struct eh_region, gen_eh_region_catch,
5177         remove_unreachable_regions, duplicate_eh_regions,
5178         assign_filter_values, build_post_landing_pads,
5179         sjlj_find_directly_reachable_regions, remove_eh_handler,
5180         reachable_next_level, foreach_reachable_handler,
5181         can_throw_internal_1, can_throw_external_1,
5182         collect_one_action_chain): Likewise.
5183         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
5184         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
5185         * function.c (update_temp_slot_address, instantiate_new_reg,
5186         instantiate_virtual_regs_in_rtx,
5187         instantiate_virtual_regs_in_insn): Likewise.
5188         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
5189         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
5190         gimplify_cleanup_point_expr): Likewise.
5191         * ipa-cp.c (ipcp_lattice_changed): Likewise.
5192         * passes.c (next_pass_1): Likewise.
5193         * print-tree.c (print_node_brief, print_node): Likewise.
5194         * profile.c (branch_prob): Likewise.
5195         * tree-dump.c (dump_register): Likewise.
5196         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
5197         Likewise.
5198         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
5199         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
5200         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
5201         copy_arguments_for_versioning, copy_static_chain): Likewise.
5202         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
5203         add_new_name_mapping, register_new_name_mapping): Likewise.
5204         * tree-mudflap.c (mf_xform_derefs): Likewise.
5205         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
5206         get_init_expr, combine_chains): Likewise.
5207         * tree-pretty-print.c (dump_generic_node): Likewise.
5208         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
5209         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
5210         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
5211         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
5212
5213 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
5214
5215         PR middle-end/37010
5216         * calls.c (expand_call): Use the biggest preferred stack
5217         boundary.
5218
5219 2008-08-06  Michael Matz  <matz@suse.de>
5220
5221         PR target/36613
5222         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
5223         for reused reload, instead of overwriting them.
5224
5225 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
5226
5227         PR middle-end/37009
5228         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
5229         for incoming stack boundary.
5230
5231         * function.c (assign_parm_find_entry_rtl): Update
5232         parm_stack_boundary.
5233
5234         * function.h (rtl_data): Add parm_stack_boundary.
5235
5236         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
5237         parm_stack_boundary for incoming stack boundary.
5238
5239 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
5240
5241         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
5242         for unrepresentable subregs or treat them as equal to other regs
5243         or subregs with the same register number.
5244
5245 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
5246
5247         PR middle-end/35432
5248         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
5249         if want_value.
5250
5251 2008-08-06  Jan Hubicka  <jh@suse.cz>
5252
5253         * predict.c (maybe_hot_frequency_p): When profile is absent, all
5254         frequencies might be hot.
5255
5256 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
5257
5258         * reload.c (find_reloads): Force constants into literal pool
5259         also if they are wrapped in a SUBREG.
5260
5261 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5262
5263         PR target/35659
5264         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
5265         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
5266         Don't allow predicated instructions for data speculation.
5267         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
5268         declaration.
5269
5270 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5271
5272         * haifa-sched.c (extend_global): Split to extend_global_data and
5273         extend_region_data.  Update all uses.
5274         (extend_all): Rename to extend_block_data.
5275
5276 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5277
5278         * sched-rgn.c (new_ready): Check if instruction can be
5279         speculatively scheduled before attempting speculation.
5280         (debug_rgn_dependencies): Remove wrongful assert.
5281
5282 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
5283
5284         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
5285
5286 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
5287
5288         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
5289         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
5290         va_size, and type_size.
5291
5292 2008-08-04  Jason Merrill  <jason@redhat.com>
5293
5294         PR c++/37016
5295         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
5296         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
5297
5298 2008-08-05  Richard Henderson  <rth@redhat.com>
5299
5300         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
5301         * configure: Rebuild.
5302
5303 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5304
5305         PR tree-opt/37024
5306         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
5307         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
5308         is a conversion.
5309
5310 2008-08-05  Richard Henderson  <rth@redhat.com>
5311
5312         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
5313         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
5314         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
5315         * common.opt (fdwarf2-cfi-asm): New.
5316         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
5317         * config.in, configure: Rebuild.
5318         * dwarf2asm.c (dw2_asm_output_data_raw): New.
5319         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
5320         (dw2_force_const_mem): Externalize.
5321         * dwarf2asm.h: Update.
5322         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
5323         generate a real label.
5324         (output_cfi_directive): New.
5325         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
5326         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
5327         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
5328         and .cfi_lsda.
5329         (dwarf2out_end_epilogue): Emit .cfi_endproc.
5330         (output_loc_operands_raw, output_loc_sequence_raw): New.
5331         (output_cfa_loc_raw): New.
5332
5333 2008-08-05  Paul Brook  <paul@codesourcery.com>
5334
5335         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
5336         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
5337         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
5338         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
5339         * config/arm/arm.h (TARGET_VFPD32): Define.
5340         (TARGET_VFP3): Use TARGET_VFPD32.
5341         (fputype): Add FPUTYPE_VFP3D16.
5342         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
5343         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
5344         * config/arm/arm-cores.def: Add cortex-r4f.
5345         * config/arm/arm-tune.md: Regenerate.
5346
5347 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5348
5349         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
5350         Reword some comments throughout the file.
5351
5352         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
5353         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
5354         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
5355         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
5356
5357         (MFC_START_ENABLE): Remove PPU-only define.
5358         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
5359         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
5360
5361         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
5362         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
5363         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
5364         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
5365         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
5366         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
5367         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
5368
5369         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
5370         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
5371         (mfc_sdcrt, mfc_sdcrtst): Likewise.
5372         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
5373
5374         (spu_read_machine_status): Fix typo.
5375
5376 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5377
5378         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
5379         SUBREG of multi-word hard register.
5380         * config/spu/spu.c (valid_subreg): Likewise.
5381         (adjust_operand): Handle SUBREGs of multi-word hard registers.
5382
5383 2008-08-04  Richard Guenther  <rguenther@suse.de>
5384
5385         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
5386         the candidate with the stripped base if that base is different
5387         from the original base even for offset zero.
5388
5389 2008-08-04  Richard Guenther  <rguenther@suse.de>
5390
5391         PR middle-end/36691
5392         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
5393         check for no_overflow.
5394
5395 2008-08-04  Richard Guenther  <rguenther@suse.de>
5396
5397         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
5398
5399 2008-08-04  Paul Brook  <paul@codesourcery.com>
5400
5401         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
5402         (arm_order_regs_for_local_alloc): New function.
5403         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
5404         prototype.
5405         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
5406
5407 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
5408
5409         PR target/37012
5410         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
5411         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
5412         (ix86_expand_epilogue): Likewise.
5413
5414 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
5415
5416         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
5417         in comments.
5418
5419 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
5420
5421         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
5422         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
5423         (*movv2sf_internal_rex64): Ditto.
5424
5425 2008-08-03  Jan Hubicka  <jh@suse.cz>
5426
5427         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
5428         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
5429         * expmed.c (expand_smod_pow2): Likewise.
5430
5431 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
5432
5433         PR target/36992
5434         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
5435         alternative 0 of operand 1.
5436         (*vec_concatv2di_rex64_sse): Ditto.
5437         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
5438         of operand 1.
5439         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
5440         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
5441         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
5442         (*movv2sf_internal_rex64): Ditto.
5443
5444 2008-08-02  Richard Guenther  <rguenther@suse.de>
5445
5446         PR target/35252
5447         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
5448         (ssedoublesizemode): New mode attribute.
5449         (sse_shufps): Call gen_sse_shufps_v4sf.
5450         (sse_shufps_1): Macroize.
5451         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
5452         (sse2_shufpd_1): Macroize.
5453         (vec_extract_odd, vec_extract_even): New expanders.
5454         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
5455         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
5456         * i386.c (ix86_expand_vector_init_one_nonzero): Call
5457         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
5458         (ix86_expand_vector_set): Likewise.
5459         (ix86_expand_reduc_v4sf): Likewise.
5460
5461 2008-08-01  Doug Kwan  <dougkwan@google.com>
5462
5463         * matrix-reorg.c: Re-enable all code.
5464         (struct malloc_call_data): Change CALL_STMT to gimple type.
5465         (collect_data_for_malloc_call): Tuplify.
5466         (struct access_site_info): Change STMT to gimple type.
5467         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
5468         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
5469         (struct free_info): Change STMT to gimple type.
5470         (struct matrix_access_phi_node):  Change PHI to gimple type.
5471         (get_inner_of_cast_expr): Remove.
5472         (may_flatten_matrices_1): Tuplify.
5473         (may_flatten_matrices): Ditto.
5474         (mark_min_matrix_escape_level): Ditto.
5475         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
5476         (ssa_accessed_in_call_rhs): New
5477         (ssa_accessed_in_assign_rhs): New
5478         (record_access_alloc_site_info): Tuplify.
5479         (add_allocation_site): Ditto.
5480         (analyze_matrix_allocation_site): Ditto.
5481         (analyze_transpose): Ditto.
5482         (get_index_from_offset): Ditto.
5483         (update_type_size): Ditto.
5484         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
5485         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
5486         (analyze_accesses_for_phi_node): Tuplify.
5487         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
5488         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
5489         (analyze_matrix_accesses): Tuplify.
5490         (check_var_data): New call-back type for check_var_notmodified_p.
5491         (check_var_notmodified_p): Tuplify and use call-back struct to
5492         return statement found.
5493         (can_calculate_expr_before_stmt): Factor out statement related code
5494         into ...
5495         (can_calculate_stmt_before_stmt): New.
5496         (check_allocation_function): Tuplify.
5497         (find_sites_in_func): Ditto.
5498         (record_all_accesses_in_func): Ditto.
5499         (transform_access_sites): Ditto.
5500         (transform_allocation_sites): Ditto.
5501         (matrix_reorg): Re-enable.
5502         (gate_matrix_reorg): Re-enable.
5503
5504 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
5505
5506         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
5507         for labels for which it hasn't been set yet.  If it has been set,
5508         stop walking insns and continue with next worklist item.
5509         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
5510         if the only BARRIER is at the very end of a function.
5511
5512 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
5513
5514         * cfgexpand.c (expand_stack_alignment): Assert that
5515         stack_realign_drap and drap_rtx must match.
5516
5517         * function.c (instantiate_new_reg): If DRAP is used to realign
5518         stack, replace virtual_incoming_args_rtx with internal arg
5519         pointer.
5520
5521 2008-08-01  Richard Guenther  <rguenther@suse.de>
5522
5523         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
5524         loop information only if we initialized it.
5525         (execute_pre): Call fini_pre with in_fre.
5526         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
5527         if we do not unroll because we hit max-completely-peeled-insns.
5528         Use our estimation for consistency, do allow shrinking.
5529
5530 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
5531
5532         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
5533         with MIN_STACK_BOUNDARY.
5534         (ix86_update_stack_boundary): Likewise.
5535         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
5536         STACK_BOUNDARY.
5537
5538         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
5539         (MIN_STACK_BOUNDARY): This.
5540
5541 2008-08-01  Richard Guenther  <rguenther@suse.de>
5542
5543         PR middle-end/36997
5544         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
5545
5546 2008-08-01  Richard Guenther  <rguenther@suse.de>
5547
5548         PR tree-optimization/36988
5549         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
5550         do not matter if that doesn't change volatile qualification.
5551
5552 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
5553
5554         * configure.ac: Do not generate libada-mk.  Do not subst
5555         host_cc_for_libada.
5556         * libada-mk.in: Remove.
5557         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
5558         * configure: Regenerate.
5559
5560 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
5561
5562         * tree-pass.h: Added comment about not dumping passes with name
5563         starting with star in struct opt_pass.
5564         * passes.c (register_dump_files_1): Don't do dump for a pass with
5565         name starting with star.
5566         * doc/passes.texi (Pass manager): Mention pass names and special
5567         meaning of star prefix to avoid dump.
5568
5569 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
5570
5571         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
5572         to MIPS64r2.
5573         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
5574         (ISA_MIPS64R2): New macro.
5575         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
5576         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
5577         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
5578         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
5579         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
5580         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
5581         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
5582         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
5583         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
5584         Move up to keep list alphabetically sorted.
5585         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
5586         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
5587         processor.
5588         * doc/invoke.texi (MIPS Options): Add -mips64r2.
5589         (-march=@var{arch}): Add mips64r2.
5590
5591 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5592
5593         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
5594
5595 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
5596
5597         * expr.c (expand_assignment): Check for complete type.
5598
5599 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5600
5601         PR debug/36977
5602         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
5603
5604         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
5605         for stack alignment.
5606
5607         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
5608
5609 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
5610
5611         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5612         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
5613
5614 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
5615
5616         PR rtl-optimization/36419
5617         * dwarf2out.c (barrier_args_size): New variable.
5618         (compute_barrier_args_size, compute_barrier_args_size_1): New
5619         functions.
5620         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
5621         if not called yet in the current function, use barrier_args_size
5622         array to find the new args_size value.
5623         (dwarf2out_frame_debug): Free and clear barrier_args_size.
5624
5625 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5626
5627         PR debug/36980
5628         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
5629         rule 19.
5630
5631 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5632
5633         PR debug/36976
5634         * dwarf2out.c (dwarf2out_args_size_adjust): New.
5635         (dwarf2out_stack_adjust): Use it.
5636         (dwarf2out_frame_debug_expr): Likewise.
5637
5638 2008-07-31  Richard Guenther  <rguenther@suse.de>
5639
5640         PR tree-optimization/36978
5641         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
5642         the generated condition.
5643
5644 2008-07-31  Richard Guenther  <rguenther@suse.de>
5645
5646         * passes.c (init_optimization_passes): Always call
5647         pass_early_warn_uninitialized.
5648         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
5649         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
5650         * doc/passes.texi (Warn for uninitialized variables): Adjust.
5651
5652 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
5653
5654         PR c/36970
5655         * builtins.c (maybe_emit_free_warning): New function.
5656         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
5657         maybe_emit_free_warning for BUILT_IN_FREE.
5658
5659         PR debug/36278
5660         * dwarf2out.c (get_context_die): New function.
5661         (force_decl_die, force_type_die): Use it.
5662         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
5663         returns NULL, force generation of DW_TAG_typedef and put that into
5664         DW_AT_import.
5665
5666         PR preprocessor/36649
5667         * c-pch.c (c_common_read_pch): Save and restore
5668         line_table->trace_includes across PCH restore.
5669
5670 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
5671
5672         PR ada/36554
5673         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
5674
5675 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
5676
5677         PR 36974
5678         * final.c (call_from_call_insn): Handle COND_EXEC.
5679
5680 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
5681
5682         * builtins.c (std_gimplify_va_arg_expr): Replace
5683         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
5684         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
5685
5686 2008-07-30  Joey Ye  <joey.ye@intel.com>
5687             H.J. Lu  <hongjiu.lu@intel.com>
5688
5689         * builtins.c (expand_builtin_setjmp_receiver): Replace
5690         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
5691         (expand_builtin_apply_args_1): Likewise.
5692         (expand_builtin_longjmp): Need DRAP for stack alignment.
5693         (expand_builtin_apply): Likewise.
5694
5695         * caller-save.c (setup_save_areas): Call assign_stack_local_1
5696         instead of assign_stack_local to allow alignment reduction.
5697
5698         * calls.c (emit_call_1): Need DRAP for stack alignment if
5699         return pops.
5700         (expand_call): Replace virtual_incoming_args_rtx with
5701         crtl->args.internal_arg_pointer.
5702         * stmt.c (expand_nl_goto_receiver): Likewise.
5703
5704         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
5705         alignment and store to stack_alignment_estimated and
5706         max_used_stack_slot_alignment.
5707         (expand_one_var): Likewise.
5708         (expand_stack_alignment): New function.
5709         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
5710         and stack_alignment_estimated fields in rtl_data.  Call
5711         expand_stack_alignment at end.
5712
5713         * defaults.h (INCOMING_STACK_BOUNDARY): New.
5714         (MAX_STACK_ALIGNMENT): Likewise.
5715         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
5716         (SUPPORTS_STACK_ALIGNMENT): Likewise.
5717
5718         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
5719         stack alignment when generating virtual registers.
5720
5721         * function.c (assign_stack_local): Renamed to ...
5722         (assign_stack_local_1): This.  Add a parameter to indicate
5723         if it is OK to reduce alignment.
5724         (assign_stack_local): Use it.
5725         (instantiate_new_reg): Instantiate virtual incoming args rtx
5726         to vDRAP if stack realignment and DRAP is needed.
5727         (assign_parms): Collect parameter/return type alignment and
5728         contribute to stack_alignment_estimated.
5729         (locate_and_pad_parm): Likewise.
5730         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
5731         with crtl->args.internal_arg_pointer.
5732
5733         * function.h (rtl_data): Add new field drap_reg,
5734         max_used_stack_slot_alignment, stack_alignment_estimated,
5735         stack_realign_needed, need_drap, stack_realign_processed and
5736         stack_realign_finalized.
5737         (stack_realign_fp): New macro.
5738         (stack_realign_drap): Likewise.
5739
5740         * global.c (compute_regsets): Frame pointer is needed when
5741         stack is realigned.  Can eliminate frame pointer when stack is
5742         realigned and dynamic realigned argument pointer isn't used.
5743
5744         * reload1.c (update_eliminables):  Frame pointer is needed
5745         when stack is realigned.
5746         (init_elim_table): Can eliminate frame pointer when stack is
5747         realigned and dynamic realigned argument pointer isn't used.
5748
5749         * rtl.h (assign_stack_local_1): Declare new funtion.
5750
5751         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
5752         (TARGET_GET_DRAP_RTX): Likewise.
5753         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
5754         TARGET_GET_DRAP_RTX.
5755
5756         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
5757
5758         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
5759         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
5760
5761 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
5762             H.J. Lu  <hongjiu.lu@intel.com>
5763
5764         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
5765         vdrap_reg, stack_realign and drap_reg_saved.
5766         (add_cfi): Don't allow redefining CFA when DRAP is used.
5767         (reg_save): Handle stack alignment.
5768         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
5769         alignment.  Don't generate DWARF information for (set fp sp)
5770         when DRAP is used.
5771         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
5772         to INVALID_REGNUM.
5773         (int_loc_descriptor): Move prototype forward.  Also define if
5774         DWARF2_UNWIND_INFO is true.
5775         (output_cfa_loc): Handle DW_CFA_expression.
5776         (build_cfa_aligned_loc): New.
5777         (based_loc_descr): Update assert for stack realign.  For local
5778         variables, use sp+offset when stack is aligned without drap and
5779         fp+offset when stack is aligned with drap.  For arguments, use
5780         cfa+offset when drap is used to align stack.
5781
5782 2008-07-30  Joey Ye  <joey.ye@intel.com>
5783             H.J. Lu  <hongjiu.lu@intel.com>
5784
5785         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
5786         Break long line.
5787         (ix86_gen_andsp): New.
5788         (ix86_user_incoming_stack_boundary): Likewise.
5789         (ix86_default_incoming_stack_boundary): Likewise.
5790         (ix86_incoming_stack_boundary): Likewise.
5791         (ix86_can_eliminate): Likewise.
5792         (find_drap_reg): Likewise.
5793         (ix86_update_stack_boundary): Likewise.
5794         (ix86_get_drap_rtx): Likewise.
5795         (ix86_finalize_stack_realign_flags): Likewise.
5796         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
5797         (TARGET_GET_DRAP_RTX): Likewise.
5798         (override_options): Overide option value for new options.
5799         (ix86_function_ok_for_sibcall): Remove check for
5800         force_align_arg_pointer.
5801         (ix86_handle_cconv_attribute): Likewise.
5802         (ix86_function_regparm): Likewise.
5803         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
5804         (ix86_va_start): Replace virtual_incoming_args_rtx with
5805         crtl->args.internal_arg_pointer.
5806         (ix86_select_alt_pic_regnum): Check DRAP register.
5807         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
5808         (ix86_compute_frame_layout): Compute frame layout wrt stack
5809         realignment.
5810         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
5811         (ix86_expand_prologue): Decide if stack realignment is needed
5812         and generate prologue code accordingly.
5813         (ix86_expand_epilogue): Generate epilogue code wrt stack
5814         realignment is really needed or not.
5815
5816         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
5817         (ABI_STACK_BOUNDARY): Likewise.
5818         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
5819         (STACK_REALIGN_DEFAULT): Likewise.
5820         (INCOMING_STACK_BOUNDARY): Likewise.
5821         (MAX_STACK_ALIGNMENT): Likewise.
5822         (ix86_incoming_stack_boundary): Likewise.
5823         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
5824         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
5825         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
5826         (machine_function): Remove force_align_arg_pointer.
5827
5828         * config/i386/i386.md (BX_REG): New.
5829         (R13_REG): Likewise.
5830
5831         * config/i386/i386.opt (mforce_drap): New.
5832         (mincoming-stack-boundary): Likewise.
5833         (mstackrealign): Add Init(-1).
5834
5835         * config/i386/i386-protos.h (ix86_can_eliminate): New
5836
5837 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
5838
5839         * doc/extend.texi: Update force_align_arg_pointer.
5840
5841         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
5842         -mstackrealign.
5843
5844         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
5845         (INCOMING_STACK_BOUNDARY): Likewise.
5846         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
5847         (TARGET_GET_DRAP_RTX): Likewise.
5848
5849 2008-07-30  Andreas Schwab  <schwab@suse.de>
5850
5851         PR rtl-optimization/36929
5852         * dse.c (replace_inc_dec): Use emit_insn_before instead of
5853         add_insn_before and fix argument order.
5854         (replace_inc_dec_mem): Handle NULL rtx.
5855
5856 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
5857
5858         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
5859         function.
5860         (arm_compute_initial_elimination_offset): Use it.
5861         (arm_compute_save_reg_mask): Include static chain save slot when
5862         calculating alignment.
5863         (arm_get_frame_offsets): Ditto.
5864         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
5865         that we can use to decrement the stack when the stack decrement
5866         could be too big for an immediate value in a single insn.
5867         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
5868
5869 2008-07-30  Richard Guenther  <rguenther@suse.de>
5870
5871         PR tree-optimization/36967
5872         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
5873         Release defs of statements we remove.
5874
5875 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
5876
5877         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
5878         instead of NULL_RTVEC.
5879
5880 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
5881
5882         PR target/35866
5883
5884         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
5885         vector modes.
5886
5887 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
5888
5889         * final.c (call_from_call_insn): New.
5890         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
5891
5892 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
5893
5894         * configure.ac: Substitute ADA_CFLAGS.
5895         * configure: Regenerate.
5896         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
5897         * Makefile.in: Remove mention of X_* variables.
5898         * config/pa/x-ada-hpux10: Remove.
5899         * config/pa/x-ada: Remove.
5900
5901         * doc/fragments.texi: Update.
5902
5903 2008-07-30  Olivier Hainque  <hainque@adacore.com>
5904
5905         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
5906         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
5907         __dso_handle explicitly here.
5908
5909 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5910
5911         PR 34389
5912         * c-typeck.c (build_binary_op): Encapsulate code into...
5913         * c-common.c (shorten_binary_op): ...this new function.
5914         (conversion_warning): Use the new function. Handle non-negative
5915         constant in bitwise-and.
5916         * c-common.h (shorten_binary_op): Declare.
5917
5918 2008-07-30  Olivier Hainque  <hainque@adacore.com>
5919
5920         * scan.c (make_sstring_space): Add explicit conversions of
5921         allocator's return value.
5922         * fix-header.c (recognized_function): Likewise.
5923
5924 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5925
5926         * doc/cpp.texi: Update to GFDL 1.2.
5927         * doc/gcc.texi: Do not list GPL as Invariant Section.
5928         * doc/gccint.texi: Likewise.  Update copyright years.
5929         * doc/install.texi: Update copyright years.
5930
5931 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
5932
5933         PR target/36955
5934         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
5935         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
5936
5937 2008-07-29  Jan Hubicka  <jh@suse.cz>
5938
5939         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
5940         (grokdeclarator): Likewise.
5941         * langhooks.c (lhd_warn_unused_global_decl): Use
5942         DECL_DECLARED_INLINE_P.
5943         * print-tree.c (print_node): Remove DECL_INLINE check.
5944
5945 2008-07-29  Richard Guenther  <rguenther@suse.de>
5946
5947         PR tree-optimization/36945
5948         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
5949         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
5950         Record invariant addresses un-decomposed.
5951         (copy_reference_ops_from_call): Record reference call
5952         arguments properly.  Simplify.
5953         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
5954         helper split out from ...
5955         (create_component_ref_by_pieces): ... here.  Simplify.
5956         Prepare for recursive invocation for call arguments.
5957         (create_expression_by_pieces): Adjust call to
5958         create_component_ref_by_pieces.
5959         (compute_avail): Process operand 2 of reference ops.
5960
5961 2008-07-29  Richard Guenther  <rguenther@suse.de>
5962
5963         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
5964
5965 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
5966
5967         * c-format.c (check_format_types): Revert unwanted checkin.
5968
5969 2008-07-29  Jan Hubicka  <jh@suse.cz>
5970
5971         * flags.h (flag_really_no_inline): Remove.
5972         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
5973         * toplev.c (flag_really_no_inline): Remove.
5974         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
5975         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
5976         (cgraph_decide_inlining_incrementally): Likewise.
5977         (compute_inline_parameters): Likewise.
5978         * opts.c (decode_options): Simplify.
5979         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
5980         * common.opt (finline): Initialize to 1.
5981         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
5982
5983 2008-07-29  Jan Hubicka  <jh@suse.cz>
5984
5985         * predict.c (always_optimize_for_size_p): New function.
5986         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
5987         optimize_edge_for_size_p, optimize_edge_for_speed_p,
5988         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
5989         functions.
5990         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
5991         * function.c (prepare_function_start): Set default profile.
5992         * function.h (rtl_data): Add maybe_hot_insn_p.
5993         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
5994         (construct_exit_block): Likewise.
5995         (tree_expand_cfg): Likewise.
5996         * basic-block.h
5997         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
5998         optimize_edge_for_size_p, optimize_edge_for_speed_p,
5999         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
6000         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
6001         Declare.
6002
6003 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6004
6005         PR 34985
6006         * c-decl.c (merge_decls): Merge USED flags.
6007
6008 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6009
6010         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
6011         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
6012         next_stack, lab_false and lab_over trees.
6013
6014 2008-07-28  Richard Guenther  <rguenther@suse.de>
6015
6016         PR tree-optimization/36957
6017         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
6018         (useless_type_conversion_p): Remove.
6019         (types_compatible_p): Remove.
6020         * gimple.h (tree_ssa_useless_type_conversion): Declare.
6021         (useless_type_conversion_p): Declare.
6022         (types_compatible_p): Declare.
6023         (gimple_expr_type): Return the base type only if it is
6024         trivially convertible to the subtype.
6025
6026 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
6027
6028         * configure.ac: Use the m4_do macro to concatenate the warnings into
6029         one string in ACX_PROG_CC_WARNING_OPTS,
6030         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
6031         * configure: Regenerate.
6032
6033 2008-07-28  Richard Guenther  <rguenther@suse.de>
6034
6035         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
6036         (insert_fake_stores): Remove.
6037         (realify_fake_stores): Likewise.
6038         (execute_pre): Remove dead code.
6039         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
6040         (find_func_aliases): Deal with it here instead.
6041         Re-enable gcc_unreachable call.
6042
6043 2008-07-28  Richard Guenther  <rguenther@suse.de>
6044
6045         Merge from gimple-tuples-branch.
6046
6047         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
6048         * gimple.def: New file.
6049         * gsstruct.def: Likewise.
6050         * gimple-iterator.c: Likewise.
6051         * gimple-pretty-print.c: Likewise.
6052         * tree-gimple.c: Removed.  Merged into ...
6053         * gimple.c: ... here.  New file.
6054         * tree-gimple.h: Removed.  Merged into ...
6055         * gimple.h: ... here.  New file.
6056
6057         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
6058         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
6059         --enable-checking=gimple flag.
6060         * config.in: Likewise.
6061         * configure: Regenerated.
6062
6063         * tree-ssa-operands.h: Tuplified.
6064         * tree-vrp.c: Likewise.
6065         * tree-loop-linear.c: Likewise.
6066         * tree-into-ssa.c: Likewise.
6067         * tree-ssa-loop-im.c: Likewise.
6068         * tree-dump.c: Likewise.
6069         * tree-complex.c: Likewise.
6070         * cgraphbuild.c: Likewise.
6071         * tree-ssa-threadupdate.c: Likewise.
6072         * tree-ssa-loop-niter.c: Likewise.
6073         * tree-pretty-print.c: Likewise.
6074         * tracer.c: Likewise.
6075         * gengtype.c: Likewise.
6076         * tree-loop-distribution.c: Likewise.
6077         * tree-ssa-loop-unswitch.c: Likewise.
6078         * cgraph.c: Likewise.
6079         * cgraph.h: Likewise.
6080         * tree-ssa-loop-manip.c: Likewise.
6081         * value-prof.c: Likewise.
6082         * tree-ssa-loop-ch.c: Likewise.
6083         * tree-tailcall.c: Likewise.
6084         * value-prof.h: Likewise.
6085         * tree.c: Likewise.
6086         * tree.h: Likewise.
6087         * tree-pass.h: Likewise.
6088         * ipa-cp.c: Likewise.
6089         * tree-scalar-evolution.c: Likewise.
6090         * tree-scalar-evolution.h: Likewise.
6091         * target.h: Likewise.
6092         * lambda-mat.c: Likewise.
6093         * tree-phinodes.c: Likewise.
6094         * diagnostic.h: Likewise.
6095         * builtins.c: Likewise.
6096         * tree-ssa-alias-warnings.c: Likewise.
6097         * cfghooks.c: Likewise.
6098         * fold-const.c: Likewise.
6099         * cfghooks.h: Likewise.
6100         * omp-low.c: Likewise.
6101         * tree-ssa-dse.c: Likewise.
6102         * ipa-reference.c: Likewise.
6103         * tree-ssa-uncprop.c: Likewise.
6104         * toplev.c: Likewise.
6105         * tree-gimple.c: Likewise.
6106         * tree-gimple.h: Likewise.
6107         * tree-chrec.c: Likewise.
6108         * tree-chrec.h: Likewise.
6109         * tree-ssa-sccvn.c: Likewise.
6110         * tree-ssa-sccvn.h: Likewise.
6111         * cgraphunit.c: Likewise.
6112         * tree-ssa-copyrename.c: Likewise.
6113         * tree-ssa-ccp.c: Likewise.
6114         * tree-ssa-loop-ivopts.c: Likewise.
6115         * tree-nomudflap.c: Likewise.
6116         * tree-call-cdce.c: Likewise.
6117         * ipa-pure-const.c: Likewise.
6118         * c-format.c: Likewise.
6119         * tree-stdarg.c: Likewise.
6120         * tree-ssa-math-opts.c: Likewise.
6121         * tree-ssa-dom.c: Likewise.
6122         * tree-nrv.c: Likewise.
6123         * tree-ssa-propagate.c: Likewise.
6124         * ipa-utils.c: Likewise.
6125         * tree-ssa-propagate.h: Likewise.
6126         * tree-ssa-alias.c: Likewise.
6127         * gimple-low.c: Likewise.
6128         * tree-ssa-sink.c: Likewise.
6129         * ipa-inline.c: Likewise.
6130         * c-semantics.c: Likewise.
6131         * dwarf2out.c: Likewise.
6132         * expr.c: Likewise.
6133         * tree-ssa-loop-ivcanon.c: Likewise.
6134         * predict.c: Likewise.
6135         * tree-ssa-loop.c: Likewise.
6136         * tree-parloops.c: Likewise.
6137         * tree-ssa-address.c: Likewise.
6138         * tree-ssa-ifcombine.c: Likewise.
6139         * matrix-reorg.c: Likewise.
6140         * c-decl.c: Likewise.
6141         * tree-eh.c: Likewise.
6142         * c-pretty-print.c: Likewise.
6143         * lambda-trans.c: Likewise.
6144         * function.c: Likewise.
6145         * langhooks.c: Likewise.
6146         * ebitmap.h: Likewise.
6147         * tree-vectorizer.c: Likewise.
6148         * function.h: Likewise.
6149         * langhooks.h: Likewise.
6150         * tree-vectorizer.h: Likewise.
6151         * ipa-type-escape.c: Likewise.
6152         * ipa-type-escape.h: Likewise.
6153         * domwalk.c: Likewise.
6154         * tree-if-conv.c: Likewise.
6155         * profile.c: Likewise.
6156         * domwalk.h: Likewise.
6157         * tree-data-ref.c: Likewise.
6158         * tree-data-ref.h: Likewise.
6159         * tree-flow-inline.h: Likewise.
6160         * tree-affine.c: Likewise.
6161         * tree-vect-analyze.c: Likewise.
6162         * c-typeck.c: Likewise.
6163         * gimplify.c: Likewise.
6164         * coretypes.h: Likewise.
6165         * tree-ssa-phiopt.c: Likewise.
6166         * calls.c: Likewise.
6167         * tree-ssa-coalesce.c: Likewise.
6168         * tree.def: Likewise.
6169         * tree-dfa.c: Likewise.
6170         * except.c: Likewise.
6171         * except.h: Likewise.
6172         * cfgexpand.c: Likewise.
6173         * tree-cfgcleanup.c: Likewise.
6174         * tree-ssa-pre.c: Likewise.
6175         * tree-ssa-live.c: Likewise.
6176         * tree-sra.c: Likewise.
6177         * tree-ssa-live.h: Likewise.
6178         * tree-predcom.c: Likewise.
6179         * lambda.h: Likewise.
6180         * tree-mudflap.c: Likewise.
6181         * ipa-prop.c: Likewise.
6182         * print-tree.c: Likewise.
6183         * tree-ssa-copy.c: Likewise.
6184         * ipa-prop.h: Likewise.
6185         * tree-ssa-forwprop.c: Likewise.
6186         * ggc-page.c: Likewise.
6187         * c-omp.c: Likewise.
6188         * tree-ssa-dce.c: Likewise.
6189         * tree-vect-patterns.c: Likewise.
6190         * tree-ssa-ter.c: Likewise.
6191         * tree-nested.c: Likewise.
6192         * tree-ssa.c: Likewise.
6193         * lambda-code.c: Likewise.
6194         * tree-ssa-loop-prefetch.c: Likewise.
6195         * tree-inline.c: Likewise.
6196         * tree-inline.h: Likewise.
6197         * tree-iterator.c: Likewise.
6198         * tree-optimize.c: Likewise.
6199         * tree-ssa-phiprop.c: Likewise.
6200         * tree-vect-transform.c: Likewise.
6201         * tree-object-size.c: Likewise.
6202         * tree-outof-ssa.c: Likewise.
6203         * cfgloop.c: Likewise.
6204         * system.h: Likewise.
6205         * tree-profile.c: Likewise.
6206         * cfgloop.h: Likewise.
6207         * c-gimplify.c: Likewise.
6208         * c-common.c: Likewise.
6209         * tree-vect-generic.c: Likewise.
6210         * tree-flow.h: Likewise.
6211         * c-common.h: Likewise.
6212         * basic-block.h: Likewise.
6213         * tree-ssa-structalias.c: Likewise.
6214         * tree-switch-conversion.c: Likewise.
6215         * tree-ssa-structalias.h: Likewise.
6216         * tree-cfg.c: Likewise.
6217         * passes.c: Likewise.
6218         * ipa-struct-reorg.c: Likewise.
6219         * ipa-struct-reorg.h: Likewise.
6220         * tree-ssa-reassoc.c: Likewise.
6221         * cfgrtl.c: Likewise.
6222         * varpool.c: Likewise.
6223         * stmt.c: Likewise.
6224         * tree-ssanames.c: Likewise.
6225         * tree-ssa-threadedge.c: Likewise.
6226         * langhooks-def.h: Likewise.
6227         * tree-ssa-operands.c: Likewise.
6228         * config/alpha/alpha.c: Likewise.
6229         * config/frv/frv.c: Likewise.
6230         * config/s390/s390.c: Likewise.
6231         * config/m32c/m32c.c: Likewise.
6232         * config/m32c/m32c-protos.h: Likewise.
6233         * config/spu/spu.c: Likewise.
6234         * config/sparc/sparc.c: Likewise.
6235         * config/i386/i386.c: Likewise.
6236         * config/sh/sh.c: Likewise.
6237         * config/xtensa/xtensa.c: Likewise.
6238         * config/stormy16/stormy16.c: Likewise.
6239         * config/ia64/ia64.c: Likewise.
6240         * config/rs6000/rs6000.c: Likewise.
6241         * config/pa/pa.c: Likewise.
6242         * config/mips/mips.c: Likewise.
6243
6244 2008-07-28  Simon Baldwin  <simonb@google.com>
6245
6246         * c-pragma.c (handle_pragma_message): New function.
6247         (init_pragma): Register handle_pragma_message.
6248         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
6249         documentation.
6250
6251 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
6252
6253         PR tree-optimization/35252
6254         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
6255         REALPART_EXPR to be considered as same load operation.
6256
6257 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
6258
6259         PR tree-optimization/36830
6260         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
6261         (expressions_equal_p): Return false if only one operand is null.
6262
6263 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
6264
6265         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
6266         version requirements.
6267
6268 2008-07-26  Olivier Hainque  <hainque@adacore.com>
6269
6270         * collect2.c (symkind): New enum.  Symbol kinds we care about.
6271         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
6272         code and head comment accordingly.
6273         (scan_prog_file): Use symkind names instead of bare integers.
6274
6275 2008-07-25  Jan Hubicka  <jh@suse.cz>
6276
6277         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
6278         DECL_INLINE.
6279         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
6280         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
6281         * dojump.c (clear_pending_stack_adjust): Likewise.
6282         * print-tree.c (print_node): Ignore DECL_INLINE.
6283         * tree-inline.c (inlinable_function_p): Likewise.
6284
6285 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
6286
6287         * doc/extend.texi (hot attribute): Document that the hot attribute
6288         turns on -O3 for some ports.
6289         (cold attribute): Document that the cold attribute turns on -Os
6290         for some ports
6291
6292         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
6293         reflect function specific option support.
6294
6295         * target.h (struct target_option_hooks): Add fields to say whether
6296         the cold attribute implies -Os and the hot attribute implies -O3.
6297
6298         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
6299         By default, do not turn on -Os for cold functions.
6300         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
6301         not turn on -O3 for hot functions.
6302
6303         * c-common.c (handle_hot_attribute): Use target hook to determine
6304         if hot functions should enable -O3.
6305         (handle_cold_attribute): Use target hook to determine if cold
6306         functions should enable -Os.
6307
6308         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
6309         (override_options): Move disable scheduling to
6310         optimization_options.
6311         (optimization_options): Disable scheduling here, not
6312         override_options.
6313         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6314         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6315
6316         * config/ia64/ia64.c (ia64_override_options): Move setting
6317         scheduling flags to ia64_optimization_options.
6318         (ia64_optimization_options): Disable scheduling options here, and
6319         not in ia64_override_options.
6320         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6321         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6322
6323 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
6324
6325         PR target/36936
6326         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
6327
6328 2008-07-25  Martin Jambor  <mjambor@suse.cz>
6329
6330         PR tree-optimization/36926
6331         * ipa-prop.c (ipa_analyze_call_uses): Call
6332         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
6333
6334 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
6335
6336         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
6337         movv2si_internal): Add mem = reg alternative.
6338
6339 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
6340
6341         PR bootstrap/36918
6342         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
6343         DEFAULT_PCC_STRUCT_RETURN to 127.
6344
6345 2008-07-24  Jan Hubicka  <jh@suse.cz>
6346
6347         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
6348         (build_cgraph_edges): Likewise.
6349         * cgraph.c (cgraph_node): Do not update assembler hash.
6350         (cgraph_remove_node): Drop non-unit-at-a-time code.
6351         * tree-pass.h (pass_O0_always_inline): Remove.
6352         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
6353         * toplev.c (process_options): Flag unit-at-a-time does not imply
6354         no section anchors.
6355         * cgraphunit.c: Update comments.
6356         (decide_is_function_needed): Drop non-unit-at-a-time mode.
6357         (cgraph_assemble_pending_functions): Remove.
6358         (cgraph_reset_node): Drop non-unit-at-a-time code.
6359         (cgraph_finalize_function): Likewise.
6360         (cgraph_analyze_function): Likewise.
6361         (cgraph_finalize_compilation_unit): Likewise.
6362         (cgraph_expand_function): Likewise.
6363         (cgraph_optimize): Likesise.
6364         (save_inline_function_body): Likewise.
6365         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
6366         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
6367         * ipa-inline.c: Update comments.
6368         (enum inlining_mode): remove INLINE_SPEED.
6369         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
6370         (cgraph_mark_inline_edge): Likewise.
6371         (try_inline): Likewise.
6372         (cgraph_decide_inlining_incrementally): Likewise.
6373         (cgraph_gate_inlining): Remove.
6374         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
6375         (cgraph_gate_early_inlining): Likewise.
6376         (gate_inline_passes): Remove.
6377         (pass_inline_parameters, pass_ipa_inline): Remove gates.
6378         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
6379         pass_O0_always_inline): Remove.
6380         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
6381         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
6382         * opts.c (no_unit_at_a_time_default): Remove.
6383         (decode_options): Remove flag_unit_at_a_time reset and warning.
6384         * opts.h (no_unit_at_a_time_default): Remove.
6385         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
6386         early in GNU dialect.
6387         (merge_decls): Update comment; drop unit-at-a-time check.
6388         (finish_decl): Likewise.
6389         (grok_declaration): Remove flag_inline_trees code.
6390         (finish_functions): Return on function returning non-void on all
6391         statics.
6392         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
6393         * cfgexpand.c (expand_one_static_var): Remove.
6394         (expand_one_var): Remove expand_one_static_var call.
6395         (expand_used_vars_for_block): Remove flag_unit_a_time check.
6396         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
6397         and flag_unit_at_a-time compatibility checks.
6398         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
6399         * tree-inline.c (flag_inline_trees): Remove.
6400         (inlinable_function_p): Don't check it.
6401         (expand_call_inline): Remove non-unit-at-a-time code.
6402         * tree-inline.h (flag_inline_trees): Remove.
6403         * tree-optimize.c (execute_early_local_optimizations): Remove
6404         unit-at-a-time checks.
6405         (tree_rest_of_compilation): Likewise.
6406         * combine.c (setup_incoming_promotions): Likewise.
6407         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
6408         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
6409         * passes.c (pass_inline_parameters): Update comments; remove
6410         O0_alwaysinline pass.
6411         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
6412         (execute_one_pass): Likewise.
6413         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
6414         (ix86_function_sseregparm): Likewise.
6415         * arm.c (arm_function_in_section_p): Likewise.
6416         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
6417         * varpool.c: Update comments.
6418         (decide_is_variable_needed): Remove unit-at-a-time checks.
6419         (varpool_finalize_decl): Likewise.
6420
6421 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
6422
6423         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
6424         to 2 instead of -1.
6425         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
6426
6427 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
6428
6429         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
6430         imp symbol extension.
6431
6432         2008-07-23  Ian Lance Taylor  <iant@google.com>
6433
6434         * tree-vrp.c (infer_value_range): Ignore asm statements when
6435         looking for memory accesses for -fdelete-null-pointer-checks.
6436
6437 2008-07-24  Ben Elliston  <bje@au.ibm.com>
6438
6439         * config/spu/spu-c.c (__vector_keyword): New variable.
6440         (vector_keyword): Likewise.
6441         (spu_categorize_keyword): New function.
6442         (spu_macro_to_expand): Likewise.
6443         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
6444         compiling an ISO C dialect.
6445
6446 2008-07-24  Ben Elliston  <bje@au.ibm.com>
6447
6448         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
6449         conventional usage.
6450
6451 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6452
6453         * configure: Regenerate.
6454         * configure.ac: Require texinfo 4.7.
6455         * doc/install.texi: Document texinfo 4.7 requirement.
6456
6457 2008-07-23  Martin Jambor  <mjambor@suse.cz>
6458
6459         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
6460         rather than for DECL_SAVED_TREE.
6461         * ipa-prop.c: Include diagnostic.h.
6462         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
6463         thoroughly.
6464         (ipa_detect_param_modifications): Function rewritten from scratch.
6465         (ipa_compute_jump_functions): Changed accesses to modification flags.
6466         (ipa_free_node_params_substructures): Update flags destruction.
6467         (ipa_node_duplication_hook): Update flags duplication.
6468         (ipa_print_all_params_modified): Updated flag access.
6469         * ipa-prop.h (struct ipa_param_flags): New structure.
6470         (struct ipa_node_params): New field modification_analysis_done,
6471         modified_flags changed into param_flags.
6472         (ipa_is_ith_param_modified): Changed to use new flags.
6473         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
6474
6475         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
6476         ipa-cp.c and split into two functions.
6477         (ipa_print_node_jump_functions): New function.
6478         (compute_scalar_jump_functions): New function.
6479         (type_like_member_ptr_p): New function.
6480         (compute_pass_through_member_ptrs): New function.
6481         (fill_member_ptr_cst_jump_function): New function.
6482         (determine_cst_member_ptr): New function.
6483         (compute_cst_member_ptr_arguments): New function.
6484         (ipa_compute_jump_functions): Complete rewrite.
6485         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
6486         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
6487         (struct ipa_member_ptr_cst): New structure.
6488         (union jump_func_value): New field member_cst.
6489         * ipa-cp.c (ipcp_lat_is_insertable): New function.
6490         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
6491         jump function types.
6492         (ipcp_print_all_lattices): Slight fprintf rearrangement.
6493         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
6494         instead of ipcp_print_all_jump_functions.
6495         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
6496         only for replacable scalars.
6497
6498         * doc/invoke.texi (Optimize options): Add description of
6499         -findirect-inlining.
6500         * common.opt (flag_indirect_inlining): New flag.
6501         * opts.c (decode_options): Set flag_indirect_inlining when
6502         optimize >= 3.
6503
6504         * ipa-inline.c: Include ipa-prop.h.
6505         (inline_indirect_intraprocedural_analysis): New function.
6506         (inline_generate_summary): Allocate parameter and argument info
6507         structures, call inline_indirect_intraprocedural_analysis on each
6508         node when doing indirect inlining and deallocate indirect inlining
6509         data structures in the end.
6510         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
6511         (free_all_ipa_structures_after_iinln): New function.
6512         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
6513         done.
6514         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
6515
6516         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
6517         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
6518         of computing the frequency separately.
6519         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
6520         of computing the frequency separately.
6521         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
6522         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
6523         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
6524         (ipa_get_stmt_member_ptr_load_param): New function.
6525         (ipa_is_ssa_with_stmt_def): New function.
6526         (ipa_note_param_call): New function.
6527         (ipa_analyze_call_uses): New function.
6528         (ipa_analyze_stmt_uses): New function.
6529         (ipa_analyze_params_uses): New function.
6530         (ipa_free_node_params_substructures): Also free the param_calls linked
6531         list.
6532         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
6533         (ipa_print_node_param_flags): New function.
6534         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
6535         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
6536         * ipa-prop.h (struct ipa_param_flags): New field called.
6537         (struct ipa_param_call_note): New structure.
6538         (struct ipa_node_params): New fields param_calls and
6539         uses_analysis_done.
6540         (ipa_is_ith_param_called): New function.
6541         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6542         ipa_analyze_params_uses and dump parameter flags.
6543
6544         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
6545         ipa_propagate_indirect_call_infos if performing indirect inlining,
6546         pass a new parameter new_edges to it.
6547         (add_new_edges_to_heap): New fucntion.
6548         (cgraph_decide_inlining_of_small_functions): New vector
6549         new_indirect_edges for newly found indirect edges , call
6550         ipa_propagate_indirect_call_infos after inlining.
6551         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
6552         inlining if performing indirect inlining.  Call
6553         free_all_ipa_structures_after_iinln when doing so too.
6554         (inline_generate_summary): Do not call
6555         free_all_ipa_structures_after_iinln here.
6556         * ipa-prop.c (update_jump_functions_after_inlining): New function.
6557         (print_edge_addition_message): New function.
6558         (update_call_notes_after_inlining): New function.
6559         (propagate_info_to_inlined_callees): New function.
6560         (ipa_propagate_indirect_call_infos): New function.
6561         * ipa-prop.h: Include cgraph.h
6562         (struct ipa_param_call_note): Fields reordered, new field processed.
6563         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
6564         flag indirect_call.
6565         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
6566         rediscovered call statements.
6567         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
6568         (dump_cgraph_node): Dump also the indirect_call flag.
6569         (cgraph_clone_edge): Copy also the indirect_call flag.
6570         * tree-inline.c (copy_bb): Do not check for fndecls from call
6571         expressions, check for edge availability when moving clones.
6572         (get_indirect_callee_fndecl): New function.
6573         (expand_call_inline): If callee declaration is not apprent from
6574         the statement, try calling get_indirect_callee_fndecl.  Do not
6575         issue warnings or call sorry when not inlinings an indirect edge.
6576         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
6577
6578         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
6579         bit more frandly to matching.
6580         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
6581         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
6582         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
6583
6584 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
6585
6586         PR 36907
6587         * opth-gen.awk: Suppress function specific features when building
6588         target libraries.
6589         * optc-gen.awk: Ditto.
6590
6591 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6592
6593         PR 35058
6594         * diagnostic.c (pedwarn): Add opt parameter.
6595         (pedwarn0): New.
6596         * c-tree.h (pedwarn_init): Add opt parameter.
6597         (pedwarn_c90): Likewise.
6598         (pedwarn_c99): Likewise.
6599         * c-errors.c (pedwarn_c99): Likewise.
6600         (pedwarn_c90): Likewise.
6601         * toplev.h (pedwarn): Update declaration.
6602         (pedwarn0): Declare.
6603         * c-lex.c: All calls to pedwarn changed.
6604         * builtins.c: All calls to pedwarn changed.
6605         * toplev.c: All calls to pedwarn changed.
6606         * c-decl.c: All calls to pedwarn changed.
6607         * c-typeck.c: All calls to pedwarn changed.
6608         * c-common.c: All calls to pedwarn changed.
6609         * c-parser.c: All calls to pedwarn changed.
6610
6611 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
6612             Karthik Kumar  <karthikkumar@gmail.com>
6613
6614         * attribs.c (file scope): Include c-common.h.
6615         (decl_attributes): Add support for #pragma GCC optimize and
6616         #pragma GCC option.
6617
6618         * targhooks.c (default_can_inline_p): New function that is the
6619         default for the TARGET_CAN_INLINE_P target hook.
6620
6621         * targhooks.h (default_can_inline_p): Add declaration.
6622
6623         * tree.c (cl_optimization_node): New static tree for building
6624         OPTIMIZATION_NODE tree.
6625         (cl_target_option_node): New static tree for building
6626         TARGET_OPTION_NODE tree.
6627         (cl_option_hash_table): New hash table for hashing
6628         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
6629         (cl_option_hash_hash): New function to provide the hash value for
6630         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
6631         (cl_option_hash_eq): New function to provide an equality test for
6632         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
6633         (tree_code_size): Add support for OPTIMIZATION_NODE and
6634         TARGET_OPTION_NODE trees.
6635         (tree_code_structure): Add support for OPTIMIZATION_NODE and
6636         TARGET_OPTION_NODE trees.
6637         (build_optimization_node): Build a tree that has all of the
6638         current optimization options.
6639         (build_target_option_node): Build a tree that has the target
6640         options that might be changed on a per function basis.
6641
6642         * tree.h (file scope): Include options.h.
6643         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
6644         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
6645         (TREE_OPTIMIZATION): Ditto.
6646         (TREE_TARGET_SPECIFIC): Ditto.
6647         (struct tree_function_decl): Add fields for remembering the
6648         current optimization options and target specific options.
6649         (struct tree_optimization_option): New tree variant that remembers
6650         the optimization options.
6651         (struct tree_target_option): New tree variant that remembers the
6652         target specific flags that might change for compiling a particular
6653         function.
6654         (union tree_node): Include tree_optimization_option and
6655         tree_target_option fields.
6656         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
6657         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
6658         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
6659         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
6660         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
6661         optimization and target options.
6662         (optimization_default_node): New macro to refer to global_trees
6663         field.
6664         (optimization_current_node): Ditto.
6665         (optimization_cold_node): Ditto.
6666         (optimization_hot_node): Ditto.
6667         (target_option_default_node): Ditto.
6668         (target_option_current_node): Ditto.
6669         (current_option_pragma): Ditto.
6670         (current_optimize_pragma): Ditto.
6671
6672         * target.h (struct gcc_target): Add valid_option_attribute_p,
6673         target_option_save, target_option_restore, target_option_print,
6674         target_option_pragma_parse, and can_inline_p hooks.
6675
6676         * toplev.h (parse_optimize_options): Add declaration.
6677         (fast_math_flags_struct_set_p): Ditto.
6678
6679         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
6680         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
6681         optimize is used.
6682
6683         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
6684         tree_can_inline_p hook to see if one function can inline another.
6685         (cgraph_decide_inlining): Ditto.
6686         (cgraph_decide_inlining_incrementally): Ditto.
6687
6688         * opts.c (decode_options): Add support for running multiple times
6689         to allow functions with different target or optimization options
6690         than was specified on the command line.
6691         (fast_math_flags_struct_set_p): New function that is similar to
6692         fast_math_flags_set_p, except it uses the values in the
6693         cl_optimization structure instead of global variables.
6694
6695         * optc-gen.awk: Add support for TargetSave to allow a back end to
6696         declare new fields that need to be saved when using function
6697         specific options.  Include flags.h and target.h in the options.c
6698         source.  Add support for Save to indicate which options can be set
6699         for individual functions.  Generate cl_optimize_save,
6700         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
6701         cl_target_option_restore, cl_target_option_print functions to
6702         allow functions to use different optimization or target options.
6703
6704         * opt-functions.awk (var_type_struct): Return the type used for
6705         storing the field in a structure.
6706
6707         * opth-gen.awk: Add support for TargetSave to allow a back end to
6708         declare new fields that need to be saved when using function
6709         specific options.  Add support for Save to indicate which options
6710         can be set for individual functions.  Only generate one extern for
6711         Mask fields.  Generate cl_optimization and cl_target_option
6712         structures to remember optimization and target options.
6713
6714         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
6715         collecting new tree nodes.
6716         (TS_TARGET_OPTION): Ditto.
6717
6718         * c-decl.c (merge_decls): Merge function specific target and
6719         optimization options.
6720
6721         * function.c (invoke_set_current_function_hook): If the function
6722         uses different optimization options, change the global variables
6723         to reflect this.
6724
6725         * coretypes.h (struct cl_optimization): Add forward reference.
6726         (struct cl_target_option): Ditto.
6727
6728         * c-pragma.c (option_stack): New static vector to remember the
6729         current #pragma GCC option stack.
6730         (handle_pragma_option): New function to support #pragma GCC option
6731         to change target options.
6732         (optimize_stack): New static vector to remember the current
6733         #pragma GCC optimize stack.
6734         (handle_pragma_optimize): New function to support #pragma GCC
6735         optimize to change optimization options.
6736         (init_pragma): Add support for #pragma GCC optimize and #pragma
6737         GCC option.
6738
6739         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
6740         optimization options.
6741         (TARGET_OPTION_NODE): New tree code for remembering certain target
6742         options.
6743
6744         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
6745         TARGET_OPTION_NODE trees.
6746
6747         * common.opt (-O): Add Optimization flag.
6748         (-Os): Ditto.
6749         (-fmath-errno): Ditto.
6750         (-falign-functions): Add UInteger flag to make sure flag gets full
6751         int in cl_optimization structure.
6752         (-falign-jumps): Ditto.
6753         (-falign-labels): Ditto.
6754         (-falign-loops): Ditto.
6755         (-fsched-stalled-insns): Ditto.
6756         (-fsched-stalled-insns-dep): Ditto.
6757
6758         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
6759         definition.
6760         (TARGET_OPTION_SAVE): Ditto.
6761         (TARGET_OPTION_RESTORE): Ditto.
6762         (TARGET_OPTION_PRINT): Ditto.
6763         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
6764         (TARGET_CAN_INLINE_P): Ditto.
6765         (TARGET_INITIALIZER): Add new hooks.
6766
6767         * tree-inline.c (tree_can_inline_p): New function to determine
6768         whether one function can inline another.  Check if the functions
6769         use compatible optimization options, and also call the backend
6770         can_inline_p hook.
6771
6772         * tree-inline.h (tree_can_inline_p): Add declaration.
6773
6774         * c-common.c (c_common_attribute): Add support for option and
6775         optimize attributes.
6776         (handle_option_attribute): Add support for the option attribute to
6777         allow the user to specify different target options for compiling a
6778         specific function.
6779         (handle_optimize_attribute): Add support for the optimize
6780         attribute to allow the user to specify different optimization
6781         options for compiling a specific function.
6782         (handle_hot_attribute): Turn on -O3 optimization for this one
6783         function if it isn't the default optimization level.
6784         (handle_cold_attribute): Turn on -Os optimization for this one
6785         function if it insn't the default optimization.
6786         (const_char_p): New const char * typedef.
6787         (optimize_args): New static vector to remember the optimization
6788         arguments.
6789         (parse_optimize_options): New function to set up the optimization
6790         arguments from either the optimize attribute or #pragma GCC optimize.
6791
6792         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
6793         (builtin_define_std): Ditto.
6794
6795         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
6796         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
6797         (x86_64-*-*): Ditto.
6798
6799         * Makefile.in (TREE_H): Add options.h.
6800         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
6801
6802         * doc/extend.texi (option attribute): Document new attribute.
6803         (optimize attribute): Ditto.
6804         (hot attribute): Document hot attribute sets -O3.
6805         (cold attribute): Document cold attribute sets -Os.
6806         (#pragma GCC option): Document new pragma.
6807         (#pragma GCC optimize): Ditto.
6808
6809         * doc/options.texi (TargetSave): Document TargetSave syntax.
6810         (UInteger): Document UInteger must be used for certain flags.
6811         (Save): Document Save option to create target specific options
6812         that can be saved/restored on a function specific context.
6813
6814         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
6815         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
6816
6817         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
6818         (TARGET_OPTION_SAVE): Ditto.
6819         (TARGET_OPTION_RESTORE): Ditto.
6820         (TARGET_OPTION_PRINT): Ditto.
6821         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
6822         (TARGET_CAN_INLINE_P): Ditto.
6823
6824         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
6825         -mfpmath=sse,387.
6826         (-mfpmath=both): Ditto.
6827
6828 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
6829             Karthik Kumar  <karthikkumar@gmail.com>
6830
6831         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
6832         (TARGET_POPCNT): Ditto.
6833         (TARGET_SAHF): Ditto.
6834         (TARGET_AES): Ditto.
6835         (TARGET_PCLMUL): Ditto.
6836         (TARGET_CMPXCHG16B): Ditto.
6837         (TARGET_RECIP): Move switch into target_flags.
6838         (TARGET_FUSED_MADD): Ditto.
6839         (ix86_arch_features): Make an unsigned char type.
6840         (ix86_tune_features): Ditto.
6841         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
6842         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
6843         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
6844
6845         * config/i386/i386.opt (arch): New TargetSave field to define
6846         fields that need to be saved for function specific option support.
6847         (tune): Ditto.
6848         (fpmath): Ditto.
6849         (branch_cost): Ditto.
6850         (ix86_isa_flags_explicit): Ditto.
6851         (tune_defaulted): Ditto.
6852         (arch_specified): Ditto.
6853         (-m128-long-double): Add Save flag to save option for target
6854         specific option support.
6855         (-m80387): Ditto.
6856         (-maccumulate-outgoing-args): Ditto.
6857         (-malign-double): Ditto.
6858         (-malign-stringops): Ditto.
6859         (-mfancy-math-387): Ditto.
6860         (-mhard-float): Ditto.
6861         (-mieee-fp): Ditto.
6862         (-minline-all-stringops): Ditto.
6863         (-minline-stringops-dynamically): Ditto.
6864         (-mms-bitfields): Ditto.
6865         (-mno-align-stringops): Ditto.
6866         (-mno-fancy-math-387): Ditto.
6867         (-mno-push-args): Ditto.
6868         (-mno-red-zone): Ditto.
6869         (-mpush-args): Ditto.
6870         (-mred-zone): Ditto.
6871         (-mrtd): Ditto.
6872         (-msseregparm): Ditto.
6873         (-mstack-arg-probe): Ditto.
6874         (-m32): Ditto.
6875         (-m64): Ditto.
6876         (-mmmx): Ditto.
6877         (-m3dnow): Ditto.
6878         (-m3dnowa): Ditto.
6879         (-msse): Ditto.
6880         (-msse2): Ditto.
6881         (-msse3): Ditto.
6882         (-msse4.1): Ditto.
6883         (-msse4.2): Ditto.
6884         (-msse4): Ditto.
6885         (-mno-sse4): Ditto.
6886         (-msse4a): Ditto.
6887         (-msse5): Ditto.
6888         (-mrecip): Move flag into target_flags.
6889         (-mcld): Ditto.
6890         (-mno-fused-madd): Ditto.
6891         (-mfused-madd): Ditto.
6892         (-mabm): Move flag into ix86_isa_flags.
6893         (-mcx16): Ditto.
6894         (-mpopcnt): Ditto.
6895         (-msahf): Ditto.
6896         (-maes): Ditto.
6897         (-mpclmul): Ditto.
6898
6899         * config/i386/i386-c.c: New file for #pragma support.
6900         (ix86_target_macros_internal): New function to #define or #undef
6901         target macros based when the user uses the #pragma GCC option to
6902         change target options.
6903         (ix86_pragma_option_parse): New function to add #pragma GCC option
6904         support.
6905         (ix86_target_macros): Move defining the target macros here from
6906         TARGET_CPU_CPP_BUILTINS in i386.h.
6907         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
6908         defined, initialize any subtarget #pragmas.
6909
6910         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
6911         REGISTER_TARGET_PRAGMAS.
6912
6913         * config/i386/t-i386: New file for x86 dependencies.
6914         (i386.o): Make dependencies mirror the include files used.
6915         (i386-c.o): New file, add dependencies.
6916
6917         * config/i386/i386-protos.h (override_options): Add bool argument.
6918         (ix86_valid_option_attribute_tree): Add declaration.
6919         (ix86_target_macros): Ditto.
6920         (ix86_register_macros): Ditto.
6921
6922         * config/i386/i386.c (ix86_tune_features): Move initialization of
6923         the target masks to initial_ix86_tune_features to allow functions
6924         to have different target options.  Make type unsigned char,
6925         instead of unsigned int.
6926         (initial_ix86_tune_features): New static vector to hold processor
6927         masks for the tune variables.
6928         (ix86_arch_features): Move initialization of the target masks to
6929         initial_ix86_arch_features to allow functions to have different
6930         target options.  Make type unsigned char, instead of unsigned int.
6931         (initial_ix86_arch_features): New static vector to hold processor
6932         masks for the arch variables.
6933         (enum ix86_function_specific_strings): New enum to describe the
6934         string options used for attribute((option(...))).
6935         (ix86_target_string): New function to return a string that
6936         describes the target options.
6937         (ix86_debug_options): New function to print the current options in
6938         the debugger.
6939         (ix86_function_specific_save): New function hook to save the
6940         function specific global variables in the cl_target_option structure.
6941         (ix86_function_specific_restore): New function hook to restore the
6942         function specific variables from the cl_target_option structure to
6943         the global variables.
6944         (ix86_function_specific_print): New function hook to print the
6945         target specific options in the cl_target_option structure.
6946         (ix86_valid_option_attribute_p): New function hook to validate
6947         attribute((option(...))) arguments.
6948         (ix86_valid_option_attribute_tree): New function that is common
6949         code between attribute((option(...))) and #pragma GCC option
6950         support that parses the options and returns a tree holding the options.
6951         (ix86_valid_option_attribute_inner_p): New helper function for
6952         ix86_valid_option_attribute_tree.
6953         (ix86_can_inline_p): New function hook to decide if one function
6954         can inline another on a target specific basis.
6955         (ix86_set_current_function); New function hook to switch target
6956         options if the user used attribute((option(...))) or #pragma GCC
6957         option.
6958         (ix86_tune_defaulted): Move to static file scope from
6959         override_options.
6960         (ix86_arch_specified): Ditto.
6961         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
6962         ix86_isa_flags.
6963         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
6964         (OPTION_MASK_ISA_ABM_SET): Ditto.
6965         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
6966         (OPTION_MASK_ISA_CX16_SET): Ditto.
6967         (OPTION_MASK_ISA_SAHF_SET): Ditto.
6968         (OPTION_MASK_ISA_AES_UNSET): Ditto.
6969         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
6970         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
6971         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
6972         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
6973         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
6974         (struct ptt): Move to static file scope from override_options.
6975         (processor_target_table): Ditto.
6976         (cpu_names): Ditto.
6977         (ix86_handle_option): Add support for options that are now isa options.
6978         (override_options): Add support for declaring functions that
6979         support different target options than were specified on the
6980         command line.  Move struct ptt, processor_target_table, cpu_names,
6981         ix86_tune_defaulted, ix86_arch_specified to static file scope.
6982         Add bool argument.  Fix up error messages so the appropriate error
6983         is given for either command line or attribute.
6984         (ix86_previous_fndecl): New static to remember previous function
6985         declaration to see if we need to change target options.
6986         (ix86_builtins_isa): New array to record the ISA of each builtin
6987         function.
6988         (def_builtin): Always create the builtin function, even if the
6989         current ISA doesn't support it.
6990         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
6991         tests for those builtins.
6992         (ix86_init_builtins): Remove TARGET_MMX test for calling
6993         ix86_init_mmx_sse_builtins.
6994         (ix86_expand_builtin): If the current ISA doesn't support a given
6995         builtin, signal an error.
6996         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
6997         (TARGET_SET_CURRENT_FUNCTION): Ditto.
6998         (TARGET_OPTION_SAVE): Ditto.
6999         (TARGET_OPTION_RESTORE): Ditto.
7000         (TARGET_OPTION_PRINT): Ditto.
7001         (TARGET_CAN_INLINE_P): Ditto.
7002
7003 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
7004
7005         * c-typeck.c (build_external_ref): Don't call assemble_external.
7006         * final.c (output_operand): Call assemble_external.
7007
7008 2008-07-21  DJ Delorie  <dj@redhat.com>
7009
7010         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
7011         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
7012
7013 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7014
7015         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
7016         original insn and splitter contents into ...
7017         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
7018         flag_unsafe_math_optimizations.  Add dummy scratch register.
7019         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
7020         !flag_unsafe_math_optimizations.  Returns number with next
7021         highest magnitude if this is still less or equal to the true
7022         quotient in magnitude.
7023
7024 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
7025
7026         * Makefile.in: Replace toplev.h with TOPLEV_H.
7027         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
7028         * c-lex.c (fe_file_change): Don't set in_system_header.
7029         * c-parser.c (c_token): Remove in_system_header.
7030         (c_lex_one_token): Don't set in_system_header.
7031         (c_parser_set_source_position_from_token): Don't set in_system_header.
7032         * diagnostic.c (diagnostic_report_diagnostic): Use location from
7033         diagnostic_info.
7034         (warning_at): New.
7035         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
7036         * flags.h (in_system_header): Remove.
7037         * function.c (saved_in_system_header): Remove.
7038         (push_cfun): Don't set in_system_header.
7039         (pop_cfun): Don't set in_system_header.
7040         (push_struct_function): Don't set in_system_header.
7041         * input.h (expanded_location): Add sysp.
7042         (in_system_header_at): New.
7043         (in_system_header): New.
7044         * toplev.c (in_system_header): Remove.
7045         * toplev.h: Include input.h
7046         (warning_at): New.
7047         * tree-cfg.c (execute_warn_function_return): Call warning_at.
7048         * tree-ssa.c (warn_uninit): Call warning_at.
7049         (warn_uninitialized_var): Update calls to warn_uninit.
7050         (warn_uninitialized_phi): Update calls to warn_uninit.
7051         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
7052         (expand_location): Initialize xloc.sysp.
7053         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
7054         (tree_decl_with_vis): Remove in_system_header_flag.
7055
7056 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
7057
7058         PR target/36822
7059         * recog.c (asm_operand_ok): Change the order of the extra
7060         memory constraint checks.
7061
7062 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7063
7064         PR tree-opt/36879
7065         * tree-switch-conversion.c (build_one_array): Call
7066         varpool_mark_needed_node and varpool_finalize_decl
7067         instead of assemble_variable.
7068
7069 2008-07-19  Jan Hubicka  <jh@suse.cz>
7070
7071         * cgraph.c (cgraph_add_new_function): Do early local passes.
7072         * tree-nrv.c (gate_pass_return_slot): New gate.
7073         (pass_nrv): Add the gate.
7074         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
7075         functions.
7076         (coalesce_ssa_name): Coalesce SSA names.
7077         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
7078         not optimizing so unused user vars remains visible.
7079         * common.opt (flag_tree_ter): Always enable by default.
7080         * tree-ssa-ter.c: Include flags.h
7081         (is_replaceable_p): Check that locations match; when aliasing is missing
7082         be conservative about loads.
7083         * tree-optimize.c (gate_init_datastructures): Remove.
7084         (pass_init_datastructures): New.
7085         * passes.c: Reorder passes so we always go into SSA.
7086
7087 2008-07-19  Jan Hubicka  <jh@suse.cz>
7088
7089         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
7090         * doc/invoke.texi (--combine): Likewise.
7091         (-finline-functions-called-once): Update levels when enabled.
7092         (-funit-at-a-time): Document new behaviour.
7093         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
7094         -fno-section-anchors when disabled explicitly.
7095         (inline params): They are not ignored now.
7096         (precompiled headers): Remove unit-at-a-time as being incompatible.
7097         * opts.c (decode_options): Handle unit-at-a-time as alias;
7098         imply -fno-section-anchors when toplevel reorder is disabled
7099         explicitly.
7100         * common.opt (ftoplevel-reorder): Set default value to 2.
7101         (funit-at-a-time): Set default value to 1.
7102         * config/rs6000/rs6000.c (optimization_options): Set section anchors
7103         to 2.
7104
7105 2008-07-19  Jan Hubicka  <jh@suse.cz>
7106
7107         * builtins.c (expand_builtin_int_roundingfn,
7108         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
7109         it is not useful.
7110
7111 2008-07-19  Richard Guenther  <rguenther@suse.de>
7112
7113         PR bootstrap/36864
7114         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
7115         * tree-ssa-sccvn.c (get_constant_value_id): New function.
7116         * tree-ssa-pre.c (get_expr_value_id): For newly created
7117         constant value-ids make sure to add the expression to its
7118         expression-set.
7119
7120 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
7121
7122         PR middle-end/36877
7123         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
7124         return value of the builtin is ignored.
7125
7126 2008-07-19  Olivier Hainque  <hainque@adacore.com>
7127
7128         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
7129         bits, a C conformant malloc implementation has to provide.
7130         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
7131
7132 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
7133
7134         PR target/36780
7135         PR target/36827
7136         * reload.c (find_reloads_subreg_address): Only reload address if
7137         reloaded == 0, not for reloaded != 1.
7138
7139         Revert:
7140         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
7141         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
7142         (m32c_legitimate_address_p): Handle "++rii" addresses created by
7143         m32c_legitimize_reload_address.
7144
7145         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7146         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
7147         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
7148
7149 2008-07-19  Olivier Hainque  <hainque@adacore.com>
7150
7151         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
7152         argument, saying whether nested array are to be collapsed
7153         into a single array type DIE with multiple subscripts.
7154         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
7155         issues, centralize the nested array types collapsing control and
7156         disable the transformation for Ada.
7157
7158 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
7159
7160         PR target/36786
7161         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
7162         x86_64_shift_adj.
7163         (x86_64_shift_adj_2): New expander.
7164         (x86_64_shift_adj_3): Ditto.
7165         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
7166         to split TImode operands.
7167         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
7168         (ix86_split_lshr): Ditto.
7169
7170 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
7171
7172         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
7173         and __CHAR32_TYPE__.
7174         * c-typeck.c (digest_init): Support char16_t and char32_t.
7175         (set_nonincremental_init_from_string): Idem.
7176
7177 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
7178
7179         PR middle-end/36859
7180         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
7181         PREFERRED_STACK_BOUNDARY.
7182         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
7183
7184 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
7185
7186         PR middle-end/36858
7187         * function.c (locate_and_pad_parm): Cap boundary earlier.
7188
7189 2008-07-17  Julian Brown  <julian@codesourcery.com>
7190
7191         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
7192         no-op for targets which don't use DLLs.
7193
7194 2008-07-17  Martin Jambor  <mjambor@suse.cz>
7195
7196         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
7197         that nodes are relevant by examining the node->analyzed flag.
7198         (ipcp_init_stage): Check which nodes are relevant, assert that the
7199         relevant ones are also required.
7200         (ipcp_propagate_stage): Check on the side arrays are properly
7201         allocated.
7202         (ipcp_print_all_jump_functions): Make sure not to touch any node
7203         that is not analyzed or an edge that does not have a corresponding
7204         entry in the on-the-side vectors.
7205         (ipcp_function_scale_print): Likewise.
7206         (ipcp_update_callgraph): Check that the node is relevant.
7207         (ipcp_insert_stage): Check that the node is relevant.  Check there is
7208         an info for every node and edge.
7209         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
7210         (ipa_print_all_tree_maps): Likewise and a new variable info.
7211         (ipa_print_all_params_modified): Likewise.
7212         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
7213
7214 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
7215
7216         PR target/25343
7217         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
7218
7219 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
7220
7221         PR rtl-optimization/36753
7222         * fwprop.c (use_killed_between): Don't shortcut
7223         single-definition global registers.
7224
7225 2008-07-16  Jan Hubicka  <jh@suse.cz>
7226
7227         * cgraph.h (varpool_empty_needed_queue): Declare.
7228         * cgraphunit.c (output_in_order): Mark all variables as needed;
7229         empty the queue.
7230         * varpool.c (varpool_assemble_node): Update debug queue.
7231         (varpool_assemble_pending_decls): Don't do it here.
7232         (varpool_empty_needed_queue):  New function.
7233
7234 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7235
7236         * recog.c (peephole2_optimize): Fix formatting.
7237
7238 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7239
7240         * c-pch.c (get_ident): Avoid C++ keywords.
7241         * combine-stack-adj.c (single_set_for_csa): Likewise.
7242         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
7243         output_asm_insn): Likewise.
7244         * reload.c (push_secondary_reload, find_reusable_reload,
7245         push_reload, combine_reloads, find_reloads,
7246         debug_reload_to_stream): Likewise.
7247         * reload.h (struct reload): Likewise.
7248         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
7249         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
7250         emit_output_reload_insns): Likewise.
7251         * targhooks.c (default_secondary_reload): Likewise.
7252         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
7253
7254 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7255
7256         * recog.c (validate_change_1, validate_change,
7257         validate_unshare_change, validate_replace_rtx_1, struct
7258         funny_match, constrain_operands, peephole2_optimize): Avoid C++
7259         keywords.
7260         * reload.c (push_secondary_reload, secondary_reload_class,
7261         scratch_reload_class, find_valid_class, find_reusable_reload,
7262         push_reload, find_dummy_reload, find_reloads_address_1,
7263         find_reloads_address_part, find_equiv_reg): Likewise.
7264         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
7265         choose_reload_regs): Likewise.
7266         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
7267         Likewise.
7268         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
7269         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
7270         * sched-rgn.c (concat_INSN_LIST): Likewise.
7271         * stor-layout.c (mode_for_size, mode_for_size_tree,
7272         smallest_mode_for_size): Likewise.
7273
7274 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7275
7276         * cfg.c (dump_reg_info): Avoid C++ keywords.
7277         * dwarf2asm.c (dw2_force_const_mem,
7278         dw2_asm_output_encoded_addr_rtx): Likewise.
7279         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
7280         * expmed.c (expand_shift): Likewise.
7281         * global.c (find_reg): Likewise.
7282         * graph.c (draw_edge): Likewise.
7283         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
7284         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
7285         widen_clz, widen_bswap, expand_parity, expand_unop,
7286         emit_cmp_and_jump_insn_1): Likewise.
7287         * postreload.c (reload_cse_simplify_operands): Likewise.
7288         * ra.h (add_neighbor): Likewise.
7289         * reg-stack.c (remove_regno_note, change_stack): Likewise.
7290         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
7291         record_reg_classes, copy_cost, record_address_regs,
7292         invalid_mode_change_p): Likewise.
7293         * regrename.c (regrename_optimize, scan_rtx_reg,
7294         dump_def_use_chain, find_oldest_value_reg,
7295         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
7296
7297 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
7298
7299         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
7300         MASK_POWERPC64 for power4 in previous commit.
7301
7302 2008-07-16  Olivier Hainque  <hainque@adacore.com>
7303
7304         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
7305         instead of bare conversion to cast const-ness away.
7306
7307 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
7308
7309         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
7310         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
7311         * config/xtensa/xtensa.c (xtensa_function_value): New function.
7312         (TARGET_FUNCTION_VALUE): Define.
7313
7314 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
7315
7316         * config/rs6000/rs6000.c (processor_target_table): Add
7317         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
7318
7319 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
7320
7321         PR target/36827
7322         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
7323         (m32c_legitimate_address_p): Handle "++rii" addresses created by
7324         m32c_legitimize_reload_address.
7325
7326 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
7327
7328         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
7329         DECL_IN_SYSTEM_HEADER in sync.
7330
7331 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
7332
7333         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
7334         * tree-ssa-pre.c (pre_expr_eq): Ditto
7335         (get_constant_for_value_id): Take a type as an argument.
7336         (fully_constant_expression): Pass in type.
7337         (find_or_generate_expression): Short circuit constant case.
7338         (create_expression_by_pieces): Remove special casing of
7339         pointer_plus.
7340         (do_regular_insertion): Short circuit constant case.
7341         (do_partial_partial_insertion): Ditto.
7342
7343 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7344
7345         PR target/36782
7346         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
7347
7348 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
7349
7350         * config/xtensa/libgcc-xtensa.ver: New file.
7351         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
7352
7353 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7354
7355         * df-problems.c (df_set_note): Avoid C++ keywords.
7356         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
7357         * dse.c (record_store, remove_useless_values): Likewise.
7358         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
7359         gen_reg_rtx_offset, operand_subword, change_address_1,
7360         change_address, adjust_address_1, offset_address,
7361         widen_memory_access, emit_copy_of_insn_after): Likewise.
7362         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
7363         * fwprop.c (should_replace_address, propagate_rtx_1,
7364         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
7365         Likewise.
7366         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
7367         gcse_emit_move_after, update_ld_motion_stores): Likewise.
7368         * lcm.c (compute_insert_delete, pre_edge_lcm,
7369         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
7370         * lower-subreg.c (resolve_reg_notes): Likewise.
7371         * mode-switching.c (optimize_mode_switching): Likewise.
7372
7373 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7374
7375         * bt-load.c (add_btr_def, migrate_btr_def,
7376         branch_target_load_optimize): Avoid C++ keywords.
7377         * caller-save.c (insert_restore, insert_save, insert_one_insn):
7378         Likewise.
7379         * combine.c (subst, simplify_set, make_extraction,
7380         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
7381         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
7382         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
7383
7384 2008-07-15  Richard Guenther  <rguenther@suse.de>
7385
7386         PR middle-end/36369
7387         * c-common.c (strict_aliasing_warning): Do not warn for
7388         TYPE_REF_CAN_ALIAS_ALL pointers.
7389         (c_common_get_alias_set): may_alias types are not special.
7390         * tree.c (build_pointer_type_for_mode): Look up the may_alias
7391         attribute and set can_ref_all accordingly.
7392         (build_reference_type_for_mode): Likewise.
7393         * doc/extend.texi (may_alias): Clarify.
7394
7395 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7396
7397         PR target/36780
7398         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
7399         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
7400
7401 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7402
7403         PR target/31568
7404         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
7405         gcc_assert, instead call output_operand_lossage.
7406
7407 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
7408
7409         * builtins.c (std_canonical_va_list): Treat structure based
7410         va_list types.
7411
7412 2008-07-15  Ben Elliston  <bje@au.ibm.com>
7413
7414         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
7415
7416 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
7417
7418         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
7419         is set.
7420
7421 2008-07-14  Jan Hubicka  <jh@suse.cz>
7422
7423         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
7424         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
7425         fix predicates and constraints.
7426         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
7427         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
7428
7429 2008-07-14  Doug Kwan  <dougkwan@google.com>
7430
7431         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
7432         additional option file arm/eabi.opt.
7433         * config/arm/eabi.h (File): New configuration file for EABI targets.
7434         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
7435         SUBSUBTARGET_EXTRA_SPECS.
7436         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
7437         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
7438         from STARTFILE_SPEC so that it can be referenced in an override.
7439         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
7440         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
7441         can be referenced in an override.
7442         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
7443         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
7444         so that it can be referenced in an override.
7445         (LINK_SPEC): Use BPABI_LINK_SPEC.
7446         * config/arm/eabi.opt (File): New.
7447
7448 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7449
7450         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
7451         (FIXED_VALUE_H): New variable.
7452         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
7453         input.h, fixed-value.h.
7454         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
7455         (BASIC_BLOCK_H): Use $(BITMAP_H).
7456         (FUNCTION_H): Add varray.h.
7457         (IPA_REFERENCE_H): Use $(BITMAP_H).
7458         (CGRAPH_H): Add $(BASIC_BLOCK_H).
7459         (DF_H): Use $(BITMAP_H).
7460         (GGC_H): Add statistics.h.
7461         (INSN_ADDR_H): New.
7462         (INSN_ATTR_H): Use it.
7463         (SYSTEM_H): Add safe-ctype.h, filenames.h.
7464         (INPUT_H): New.
7465         (SYMTAB_H): Add $(OBSTACK_H).
7466         (CPP_INTERNAL_H): New.
7467         (TREE_DUMP_H): Add tree-pass.h.
7468         (TREE_FLOW_H): Use $(BITMAP_H)
7469         (PRETTY_PRINT_H): Use $(INPUT_H).
7470         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
7471         (GSTAB_H): New.
7472         (BITMAP_H): New.
7473         (many object files): Fix lots of header dependencies throughout.
7474
7475 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7476
7477         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
7478         New macros.
7479         (s-gtyp-input): Use them to write tmp-gi.list.
7480         (echo_to_gi.list): Remove.
7481
7482 2008-07-14  Richard Guenther  <rguenther@suse.de>
7483
7484         * tree-ssa-sccvn.c (pre_info): Remove.
7485         (switch_to_PRE_table): Likewise.
7486         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
7487         (set_hashtable_value_ids): Do not create value-ids for the
7488         optimistic tables.
7489         (run_scc_vn): Remove double test.  Remove bogus special-case
7490         in value-number printing.
7491         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
7492         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
7493         SSA_NAME_VALUE.
7494         * tree-flow-inline.h (get_value_handle): Remove.
7495         * tree-flow.h (get_value_handle): Remove.
7496
7497 2008-07-14  Martin Jambor  <mjambor@suse.cz>
7498
7499         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
7500         in which we generate arithmetics is not a subrange.
7501
7502 2008-07-14  Martin Jambor  <mjambor@suse.cz>
7503
7504         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
7505
7506 2008-07-14  Richard Guenther  <rguenther@suse.de>
7507
7508         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
7509
7510 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7511
7512         PR target/36745
7513         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
7514         reload for symbol refs moved to r0 with -fPIC.
7515         (legitimize_pic_address): Use the target register as temporary
7516         reg if possible.
7517         (emit_symbolic_move): Adjust comment.
7518         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
7519         New expanders.
7520
7521 2008-07-14  Ben Elliston  <bje@au.ibm.com>
7522
7523         * c-common.h (C_CPP_HASHNODE): New macro.
7524         * coretypes.h (struct cpp_token): Forward declare.
7525         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7526         the context-sensitive keyword method.
7527         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
7528         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
7529         expand_bool_pixel): New.
7530         (altivec_categorize_keyword): New function.
7531         (init_vector_keywords): New function.
7532         (rs6000_macro_to_expand): Likewise.
7533         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
7534         compiling an ISO C dialect.
7535
7536 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
7537
7538         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
7539         (create_expression_by_pieces): Fix typo.
7540         (do_regular_insertion): Use debug counter here too.
7541
7542 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
7543
7544         PR target/35492.
7545         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
7546         CONST_OK_FOR_LETTER_P.  All port-local users changed.
7547         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
7548         implement Kp matching power-of-two.
7549         (CONSTRAINT_LEN): Define to match.
7550         * config/cris/cris.md: Replace all use of constraint K with Kc.
7551         ("*btst*): Use Kp for operand 0 of last alternative.
7552
7553 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7554
7555         PR testsuite/36440
7556         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
7557         and quad formats.
7558
7559 2008-07-13  Jan Hubicka  <jh@suse.cz>
7560
7561         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
7562         to be mangled too.
7563
7564 2008-07-13  Richard Guenther  <rguenther@suse.de>
7565
7566         PR middle-end/36811
7567         * langhooks.c (lhd_print_error_function): Deal with recursive
7568         BLOCK trees.
7569
7570 2008-07-12  Jan Hubicka  <jh@suse.cz>
7571
7572         * cgraph.c (assembler_name_hash): New static var.
7573         (hash_node_by_assembler_name, eq_assembler_name): New.
7574         (cgraph_node_for_asm): Use hashtable.
7575         (cgraph_remove_node): Maintain hashtable.
7576         (change_decl_assembler_name): Sanity check that names are not changing
7577         after aliasing was processed.
7578         * cgraph.h (varpoon_node): Add next GGC marker.
7579         * tree.c (decl_assembler_name_equal): Constify.
7580         (decl_assembler_name_hash): New.
7581         * tree.h (decl_assembler_name_equal): Constify.
7582         (decl_assembler_name_hash): Update.
7583
7584 2008-07-12  David Daney  <ddaney@avtrex.com>
7585
7586         * config/mips/driver-native.c (host_detect_local_cpu): Handle
7587         sb1 and r5000 cpus.
7588
7589 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7590
7591         * doc/md.texi: Document the MIPS "v" constraint.
7592         * config/mips/mips.h (reg_class): Revert last change.
7593         (REG_CLASS_NAMES): Likewise.
7594         (REG_CLASS_CONTENTS): Likewise.
7595         * config/mips/mips.c (mips_regno_to_class): Likewise.
7596         * config/mips/constraints.md (v): Likewise, but add documentation.
7597         Add a comment to say that this constraint should not be used in
7598         gcc code.
7599
7600 2008-07-11  DJ Delorie  <dj@redhat.com>
7601
7602         * config/h8300/h8300.md (length): Fix branch offset limit.
7603
7604 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
7605
7606         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
7607         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
7608         (avr_hard_regno_scratch_ok): New function.
7609         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
7610         * config/avr/avr.md (all peepholes that request a scratch register):
7611         Remove avr_peep2_scratch_safe use.
7612
7613 2008-07-11  Tom Tromey  <tromey@redhat.com>
7614             Ian Lance Taylor  <iant@google.com>
7615
7616         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
7617         (struct c_common_resword): Define.
7618         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
7619         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
7620         (c_common_reswords, num_c_common_reswords): Declare.
7621         * c-common.c (c_common_reswords): New global const array.
7622         (num_c_common_reswords): New const int.
7623         * c-parser.c (struct resword, reswords): Don't define.
7624         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
7625         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
7626         than reswords.  If warning about C++ keywords, give them a special
7627         RID code.
7628         (c_lex_one_token): Warn about C++ keywords.  Call
7629         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
7630         (c_parser_external_declaration): Look for RID_xxx rather than
7631         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
7632         (c_parser_statement_after_labels): Likewise.
7633         (c_parser_objc_class_instance_variables): Likewise.
7634         (c_parser_objc_class_declaration): Likewise.
7635         (c_parser_objc_try_catch_statement): Likewise.
7636         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
7637         (declspecs_add_type): Likewise.
7638
7639 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
7640
7641         * ggc-page.c (alloc_page):
7642         Substituting xmalloc, xcalloc with
7643         XNEWVEC and XCNEWVAR macros which add the
7644         needed casts.
7645
7646 2008-07-11  Richard Guenther  <rguenther@suse.de>
7647
7648         PR tree-optimization/36765
7649         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
7650         aliases from HEAP vars to SMTs.
7651
7652 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7653
7654         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
7655         * configure.ac (loose_warn): Move -Wc++-compat from here...
7656         (strict_warn): ...to here.
7657         * configure: Regenerate.
7658
7659 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
7660
7661         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
7662         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
7663         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
7664         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
7665         excluding more specific h8300-*-* and sh-*-* targets.
7666
7667 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
7668
7669         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
7670         (eliminate): Ditto.
7671         (execute_pre): Call loop_optimizer_finalize in early exit.
7672
7673 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
7674
7675         PR middle-end/36790
7676         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
7677         uids in the bitmap, not just VAR_DECL uids.
7678
7679         PR rtl-optimization/36419
7680         * combine-stack-adj.c (adjust_frame_related_expr): New function.
7681         (combine_stack_adjustments_for_block): Call it if needed.  Delete
7682         correct insn.
7683         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
7684         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
7685         prologue sp adjustment.
7686
7687 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
7688
7689         PR other/28322
7690         * opts.c (print_ignored_options): Report postponed diagnostics for
7691         unknown -Wno-* options as warnings, not errors.
7692         (postpone_unknown_option_error): Renamed to...
7693         (postpone_unknown_option_warning): ... this.
7694
7695 2008-07-09  Doug Kwan  <dougkwan@google.com>
7696
7697         Revert:
7698         2008-07-08  Doug Kwan  <dougkwan@google.com>
7699
7700         * config/arm/arm.opt (mandroid): New option.
7701         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
7702         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
7703         (CC1_SPEC): Same.
7704         (CC1PLUS_SPEC): Same.
7705         (LIB_SPEC): Same.
7706         (STARTFILE_SPEC): Same.
7707         (ENDFILE_SPEC): Same.
7708         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
7709         used.
7710
7711 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
7712
7713         PR target/35802
7714         * config/mips/mips.h (reg_class): Remove V1_REG.
7715         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
7716         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
7717         instead of V1_REGS.
7718         (mips_get_tp): New function.
7719         (mips_legitimize_tls_address): Use it.
7720         * config/mips/constraints.md (v): Delete.
7721         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
7722         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
7723         After reload, split into a move and ...
7724         (*tls_get_tp_<mode>_split): ...this new instruction.
7725
7726 2008-07-09  David Daney  <ddaney@avtrex.com>
7727
7728         * config/mips/driver-native.c: Include coretypes.h and tm.h.
7729
7730 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
7731
7732         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
7733         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
7734         Add c argument.
7735         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
7736         htab_delete should be called.  Don't free c.
7737         (lookup_tmp_var): Create temp_htab lazily.
7738         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
7739         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
7740         callers.
7741         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
7742         lower_omp_ordered, lower_omp_critical, lower_omp_for,
7743         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
7744         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
7745         * tree-sra.c (generate_element_init): Likewise.
7746         * tree-mudflap.c (execute_mudflap_function_ops,
7747         execute_mudflap_function_decls): Likewise.
7748         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
7749         * tree-gimple.h (struct gimplify_ctx): New type.
7750         (push_gimplify_context): Adjust prototype.
7751
7752 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
7753
7754         * tree-ssa-pre.c (phi_translate_1): Update placement of
7755         add_to_value calls.
7756
7757 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
7758
7759         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
7760         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
7761         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
7762         * targhooks.c (default_hard_regno_scratch_ok): New function.
7763         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
7764         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
7765         * recog.c:  Include "target.h".
7766         (peep2_find_free_register): Add check for global regs. Add target
7767         specific check.
7768         * Makefile.in (recog.o): Depend on target.h.
7769
7770 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
7771
7772         * config/sh/sh.c (sh_canonical_va_list_type): New.
7773         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
7774
7775 2008-07-09  Raksit Ashok <raksit@google.com>
7776
7777         * doc/invoke.texi (Option Summary): Mention new option
7778         -Wdisallowed-function-list=...
7779         (Warning Options): Document -Wdisallowed-function-list=...
7780         * common.opt (Wdisallowed-function-list=): New flag.
7781         * flags.h (warn_disallowed_functions): External definition of new
7782         boolean warning flag.
7783         (warn_if_disallowed_function_p): Declare new function.
7784         * opts.c (warning_disallowed_functions): New static variable.
7785         (warn_disallowed_functions): New boolean warning flag.
7786         (warn_if_disallowed_function_p): New function.
7787         (add_comma_separated_to_vector): Rename
7788         add_instrument_functions_exclude_list to this.
7789         (common_handle_option): Handle new option. Rename calls to
7790         add_instrument_functions_exclude_list into calls to
7791         add_comma_separated_to_vector.
7792         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
7793         based on flag warn_disallowed_functions.
7794
7795 2008-07-09  Christian Bruel  <christian.bruel@st.com>
7796
7797         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
7798          instead of get_attr_length.
7799
7800 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7801
7802         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
7803         keywords.
7804         * genemit.c (gen_insn): Likewise.
7805         * gengtype.c (note_def_vec): Likewise.
7806         * gengtype.h (note_def_vec): Likewise.
7807         * genoutput.c (struct data, output_insn_data, process_template,
7808         gen_expand, gen_split, note_constraint): Likewise.
7809         * genrecog.c (new_decision, add_to_sequence, factor_tests,
7810         make_insn_sequence): Likewise.
7811         * gensupport.c (record_insn_name): Likewise.
7812
7813 2008-07-08  Doug Kwan  <dougkwan@google.com>
7814
7815         * config/arm/arm.opt (mandroid): New option.
7816         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
7817         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
7818         (CC1_SPEC): Same.
7819         (CC1PLUS_SPEC): Same.
7820         (LIB_SPEC): Same.
7821         (STARTFILE_SPEC): Same.
7822         (ENDFILE_SPEC): Same.
7823         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
7824         used.
7825
7826 2008-07-08  Raksit Ashok  <raksit@google.com>
7827
7828         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
7829         (set_storage_via_setmem): Fix expected_align parameter.
7830         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
7831         missing from the list.
7832         * doc/md.texi (movmem): Explicitly state that expected alignment is
7833         to be expressed in bytes.
7834         (setmem): Explicitly state that expected alignment is to be expressed
7835         in bytes.
7836
7837 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
7838
7839         * reload.c (find_reloads_subreg_address): Do not require validity
7840         of address in original mode before reloading address.
7841
7842 2008-07-07  Tianwei Sheng  <tianweis@google.com>
7843
7844         * df-core.c (df_remove_problem): Adjust the access to avoid out of
7845         bounds array access.
7846
7847 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
7848
7849         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
7850
7851 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
7852
7853         Fix PR tree-optimization/23455
7854         Fix PR tree-optimization/35286
7855         Fix PR tree-optimization/35287
7856         * Makefile.in (OBJS-common): Remove tree-vn.o.
7857         (tree-vn.o): Remove.
7858         * dbgcnt.def: Add treepre_insert debug counter.
7859         * gcc/tree-flow.h (add_to_value): Updated for other changes.
7860         (debug_value_expressions): Ditto.
7861         (print_value_expressions): Ditto.
7862         * tree-pretty-print.c (dump_generic_node): Updated for
7863         VALUE_HANDLE removal.
7864         * tree-ssa-dom.c (record_equality): Ditto.
7865         (cprop_operand): Ditto.
7866         (lookup_avail_expr): Ditto.
7867         * tree-ssa-threadedge.c
7868         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
7869         (simplify_control_stmt_condition): Ditto.
7870         * tree.c (tree_code_size): Ditto.
7871         (tree_node_structure): Ditto.
7872         (iterative_hash_expr): Ditto.
7873         * tree.def: Ditto.
7874         * tree.h (VALUE_HANDLE_ID): Ditto.
7875         (VALUE_HANDLE_EXPR_SET): Ditto.
7876         (struct tree_value_handle): Ditto.
7877         (union tree_node): Ditto.
7878         * treestruct.def: Ditto.
7879         * tree-vn.c: Removed.
7880         * tree-ssa-pre.c: Rewritten entirely.
7881         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
7882         (constant_value_ids): Ditto.
7883         (vn_nary_op_t): Moved to header.
7884         (vn_phi_t): Ditto.
7885         (vn_reference_op_t): Ditto
7886         (vn_reference_t): Ditto.
7887         (next_value_id): New variable.
7888         (VN_INFO): Add an assert.
7889         (vn_constant_eq): New function.
7890         (vn_constant_hash): Ditto.
7891         (get_or_alloc_constant_value_id): Ditto.
7892         (value_id_constant_p): Ditto.
7893         (vn_reference_compute_hash): De-staticify.
7894         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
7895         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
7896         (valueize_refs): Update opcode if it changes from ssa name to constant.
7897         (vn_reference_lookup_1): Add new argument.
7898         (vn_reference_lookup):  Ditto.
7899         (vn_reference_lookup_pieces): New function.
7900         (vn_reference_insert): Add return type. Modify to deal with value ids.
7901         (vn_reference_insert_pieces):  New function.
7902         (vn_nary_op_compute_hash): De-staticify.
7903         (vn_nary_op_eq): Ditto.
7904         (vn_nary_op_lookup_pieces): New function.
7905         (vn_nary_op_lookup): Add new argument.
7906         (vn_nary_op_insert_pieces): New function.
7907         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
7908         (vn_phi_insert): Ditto.
7909         (visit_unary_op): Update for callee changes.
7910         (visit_binary_op): Ditto.
7911         (visit_reference_op_load): Ditto.
7912         (visit_reference_op_store): Ditto.
7913         (init_scc_vn): Init next_value_id, constant_to_value_id and
7914         constant_value_ids.
7915         (free_scc_vn): Free them.
7916         (set_hashtable_value_ids): New function.
7917         (run_scc_vn): Use it.
7918         (get_max_value_id): New function.
7919         (get_next_value_id): Ditto.
7920         (expressions_equal_p): Moved from tree-vn.c
7921         (sort_vuses): Ditto.
7922         (sort_vuses_heap): Ditto.
7923         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
7924         above).
7925         * tree.c (iterative_hash_hashval_t): Made non-static
7926         * tree.h (iterative_hash_hashval_t): Declare it.
7927
7928 2008-07-08  Martin Jambor  <mjambor@suse.cz>
7929
7930         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
7931         instead of ipa_create_node_params.
7932         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
7933         ipa_check_create_edge_args, free them with
7934         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
7935
7936         * ipa-prop.c: Include flags.h and tree-inline.h.
7937         (ipa_node_params_vector): New variable.
7938         (ipa_edge_args_vector): New variable.
7939         (edge_removal_hook_holder): New variable.
7940         (node_removal_hook_holder): New variable.
7941         (edge_duplication_hook_holder): New variable.
7942         (node_duplication_hook_holder): New variable.
7943         (ipa_detect_param_modifications): Check for presence of modified flags.
7944         (ipa_compute_jump_functions): Check for presence of jump functions.
7945         (ipa_free_edge_args_substructures): New function.
7946         (ipa_create_node_params): Removed.
7947         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
7948         (ipa_free_node_params_substructures): New function.
7949         (ipa_free_all_node_params): Changed to deallocate the on-the-side
7950         vector.
7951         (ipa_edge_removal_hook): New function.
7952         (ipa_node_removal_hook): New function.
7953         (duplicate_array): New function.
7954         (ipa_edge_duplication_hook): New function.
7955         (ipa_node_duplication_hook): New function.
7956         (ipa_register_cgraph_hooks): New function.
7957         (ipa_unregister_cgraph_hooks): New function.
7958         (free_all_ipa_structures_after_ipa_cp): New function.
7959
7960         * ipa-prop.h: Include vec.h.
7961         (ipa_node_params_t): New typedef with vector types for it.
7962         (ipa_edge_args_t):  New typedef with vector types for it.
7963         (IPA_NODE_REF): Changed to access an on-the-side vector.
7964         (IPA_EDGE_REF): Changed to access an on-the-side vector.
7965         (ipa_check_create_node_params): New function.
7966         (ipa_check_create_edge_args): New function.
7967
7968         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
7969         all users.
7970
7971 2008-07-07  Tom Tromey  <tromey@redhat.com>
7972
7973         * configure, config.in: Rebuilt.
7974         * configure.ac: Don't check for scandir or alphasort.
7975
7976 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
7977
7978         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
7979         types immediately after creating them.
7980
7981 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
7982
7983         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
7984
7985 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
7986
7987         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
7988         dump_constraint_graph.
7989         (dump_constraint_edge): New function.
7990         (dump_constraint_graph): New function.
7991         (debug_constraint_graph): New function.
7992         (dump_constraint): Removed useless comparison.
7993         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
7994         (dump_constraint_graph): Declare.
7995         (debug_constraint_graph): Declare.
7996         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
7997
7998 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
7999
8000         * config/i386/i386.c (is_va_list_char_pointer): New.
8001         (ix86_va_start): Replace compare with ms_va_list_type_node
8002         by is_va_list_char_pointer.
8003         (ix86_gimplify_va_arg): Likewise.
8004
8005 2008-07-07  Martin Jambor  <mjambor@suse.cz>
8006
8007         * cgraph.c (cgraph_edge_max_uid): New variable.
8008         (struct cgraph_edge_hook_list): New type.
8009         (struct cgraph_node_hook_list): New type.
8010         (struct cgraph_2edge_hook_list): New type.
8011         (struct cgraph_2node_hook_list): New type.
8012         (first_cgraph_edge_removal_hook): New variable.
8013         (first_cgraph_node_removal_hook): New variable.
8014         (first_cgraph_edge_duplicated_hook): New variable.
8015         (first_cgraph_node_duplicated_hook): New variable.
8016         (cgraph_add_edge_removal_hook): New function.
8017         (cgraph_remove_edge_removal_hook): New function.
8018         (cgraph_call_edge_removal_hooks):  New function.
8019         (cgraph_add_node_removal_hook):  New function.
8020         (cgraph_remove_node_removal_hook):  New function.
8021         (cgraph_call_node_removal_hooks):  New function.
8022         (cgraph_add_edge_duplication_hook):  New function.
8023         (cgraph_remove_edge_duplication_hook):  New function.
8024         (cgraph_call_edge_duplication_hooks):  New function.
8025         (cgraph_add_node_duplication_hook):  New function.
8026         (cgraph_remove_node_duplication_hook):  New function.
8027         (cgraph_call_node_duplication_hooks):  New function.
8028         (cgraph_create_edge): Assign to edge uid.
8029         (cgraph_remove_edge): Call edge removal hooks.
8030         (cgraph_node_remove_callees): Call edge removal hooks.
8031         (cgraph_node_remove_callers): Call edge removal hooks.
8032         (cgraph_remove_node): Call node removal hooks.
8033         (cgraph_clone_edge): Call edge duplication hooks.
8034         (cgraph_clone_node): Call node duplication hooks.
8035
8036         * cgraph.h (cgraph_edge): New field uid.
8037         (cgraph_edge_hook): New type.
8038         (cgraph_node_hook): New type.
8039         (cgraph_2edge_hook): New type.
8040         (cgraph_2node_hook): New type.
8041
8042 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
8043
8044         * config.in: Regenerate.
8045
8046 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
8047
8048         * gcc.c (print_sysroot): New.
8049         (option_map, display_help, process_command): Handle the
8050         -print-sysroot option.
8051         (main): Print the sysroot if requested.
8052         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
8053
8054 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8055
8056         PR target/34780
8057         * unwind-pe.h (size_of_encoded_value): add attribute unused.
8058
8059 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
8060
8061         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
8062         (assign_parm_setup_block_p): Also check mode of entry_parm.
8063
8064 2008-07-07  Richard Guenther  <rguenther@suse.de>
8065
8066         * tree-ssa-structalias.h (set_used_smts): Remove.
8067         * tree-ssa-structalias.c (used_smts): Likewise.
8068         (set_used_smts): Likewise.
8069         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
8070         call to set_used_smts.
8071
8072 2008-07-07  Richard Guenther  <rguenther@suse.de>
8073
8074         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
8075         (new_var_info): Set it to false.
8076         (solution_set_add): Correctly handle pointers outside a var and
8077         inside a field.
8078         (type_safe): Treat variables with is_full_var properly.
8079         (do_sd_constraint): Likewise.
8080         (do_ds_constraint): Likewise.
8081         (process_constraint): Remove zeroing offset for !use_field_sensitive.
8082         (get_constraint_for_ptr_offset): New function.
8083         (get_constraint_for_component_ref): For addresses at least include
8084         the last field of the variable.  Handle is_full_vars properly.
8085         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
8086         (handle_ptr_arith): Remove.
8087         (find_func_aliases): Simplify assignment handling.
8088         (create_function_info_for): For parameter and result varinfos set
8089         is_full_var flag.
8090         (create_variable_info_for): Set is_full_var flag whenever we
8091         just created a single varinfo for a decl.
8092         (init_alias_vars): Initialize use_field_sensitive from
8093         max-fields-for-field-sensitive parameter.
8094
8095 2008-07-07  Richard Guenther  <rguenther@suse.de>
8096
8097         PR tree-optimization/36713
8098         * tree-flow-inline.h (is_call_used): New function.
8099         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
8100         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
8101         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
8102
8103 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
8104
8105         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
8106
8107 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
8108
8109         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
8110
8111 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
8112             Nathan Sidwell  <nathan@codesourcery.com>
8113
8114         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
8115         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
8116         tmake_file.
8117         * config/m68k/t-linux: New.
8118         * doc/install.texi: Document m68k-*-linux is now multilibbed by
8119         default.
8120
8121 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
8122
8123         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
8124         * config/m68k/m68k-devices.def: Remove multilibs that only differ
8125         by MAC/EMAC.
8126
8127 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8128
8129         * gcc.c (execute): Fix -Wc++-compat warning.
8130
8131 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8132
8133         PR target/36720
8134         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
8135         constant for little endian.
8136
8137 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
8138
8139         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
8140         mips_base_mips16 instead of TARGET_MIPS16.
8141         (mips_base_mips16): Declare.
8142         * config/mips/mips.c (mips_base_mips16): Make global.
8143         (was_mips16_p): Remove GTY marker.
8144         (was_mips16_pch_p): New variable.
8145         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
8146         (mips_override_options): Force to non-MIPS16 mode initially.
8147         Do not complain about MIPS16 PIC incompatibilities here.
8148         Only allow -mgpopt if -mexplicit-relocs is in force for
8149         non-MIPS16 code.
8150
8151 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
8152
8153         * configure.ac: Check for caddr_t, define to char * if not defined.
8154         * configure: Regenerate.
8155         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
8156         (mmap_gt_pch_use_address): Likewise.
8157         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
8158
8159 2008-07-06  Richard Guenther  <rguenther@suse.de>
8160
8161         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
8162         (new_var_info): Deal with it.
8163         (solution_set_add): Likewise.
8164         (bitpos_of_field): Make signed, fix.
8165         (struct fieldoff): Remove type and decl fields.  Make size field
8166         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
8167         flags.
8168         (fieldoff_compare): Deal with it.
8169         (push_fields_onto_fieldstack): Remove has_union argument, glob
8170         adjacent non-pointer fields together.
8171         (create_function_info_for): Do not set has_union.
8172         (create_variable_info_for): Simplify.
8173
8174 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
8175
8176         * config.gcc (extra_headers): Add cross-stdarg.h for target
8177         x86_64-*-* and i?86-*-*.
8178         * config/i386/cross-stdarg.h: New.
8179         * builtins.c (std_fn_abi_va_list): New.
8180         (std_canonical_va_list_type): New.
8181         (stabilize_va_list): Replace va_list_type_node use by
8182         mtarget.canonical_va_list_type.
8183         (gimplify_va_arg_expr): Likewise.
8184         (expand_builtin_va_copy): Replace va_list_type_node use by
8185         mtarget.fn_abi_va_list.
8186         * tree-sra.c (is_va_list_type): New helper.
8187         (decl_can_be_decomposed_p): Replace
8188         va_list_type_node use by is_va_list_type.
8189         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
8190         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8191         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
8192         * config/i386/i386-protos.h (ix86_get_valist_type): New.
8193         (ix86_enum_va_list): New.
8194         * config/i386/i386.c (sysv_va_list_type_node): New.
8195         (ms_va_list_type_node): New.
8196         (ix86_function_type_abi): Remove sorry.
8197         (ix86_build_builtin_va_list_abi): New.
8198         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
8199         for 64-bit targets.
8200         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
8201         (ix86_init_builtins_va_builtins_abi): New.
8202         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
8203         for 64-bit targets.
8204         (ix86_handle_abi_attribute): New.
8205         (attribute_spec): Add sysv_abi and ms_abi.
8206         (ix86_fn_abi_va_list): New.
8207         (ix86_canonical_va_list_type): New.
8208         (ix86_enum_va_list): New.
8209         (TARGET_FN_ABI_VA_LIST): New.
8210         (TARGET_CANONICAL_VA_LIST_TYPE): New.
8211         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
8212         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
8213         (TARGET_CANONICAL_VA_LIST_TYPE): New.
8214         (TARGET_ENUM_VA_LIST): New.
8215         * expr.h (std_fn_abi_va_list): New.
8216         (std_canonical_va_list_type): New.
8217         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
8218         (TARGET_CANONICAL_VA_LIST_TYPE): New.
8219         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
8220         TARGET_CANONICAL_VA_LIST_TYPE.
8221         * target.h (struct gcc_target): Add fn_abi_va_list hook
8222         and canonical_va_list_type hook.
8223
8224 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8225
8226         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
8227         integral and pointer types.
8228
8229 2008-07-04  Roger Sayle  <roger@eyesopen.com>
8230
8231         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
8232         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
8233
8234 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8235
8236         PR target/36684
8237         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
8238
8239 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
8240
8241         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
8242         build_gimple_modify_stmt.
8243         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
8244         gimple operand.  Use fold_build* instead of build*.
8245
8246 2008-07-04  Richard Guenther  <rguenther@suse.de>
8247
8248         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
8249         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
8250         properly to compute the reachability set if we do field-sensitive PTA.
8251         * invoke.texi (max-fields-for-field-sensitive): Document default.
8252         * opts.c (decode_options): Set max-fields-for-field-sensitive to
8253         100 for optimize >= 2.
8254
8255 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8256
8257         * ggc-zone.c (lookup_page_table_if_allocated,
8258         set_page_table_entry, zone_find_object_size, alloc_small_page,
8259         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
8260         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
8261         -Wc++-compat and/or -Wcast-qual warnings.
8262
8263 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
8264
8265         PR target/36634
8266         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
8267         pic_offset_table_rtx to be marked as used here.
8268         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
8269         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
8270         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
8271         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
8272         !TARGET_SECURE_PLT.
8273
8274 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8275
8276         * alloc-pool.c (hash_descriptor, eq_descriptor,
8277         alloc_pool_descriptor): Fix -Wc++-compat warnings.
8278         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
8279         Likewise.
8280         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
8281         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
8282         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
8283         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
8284         Likewise.
8285
8286 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
8287
8288         * tree-flow.h (loop_only_exit_p): Declare.
8289         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
8290         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
8291         the number of iterations if it is constant.  Otherwise, if this is the
8292         only possible exit of the loop, use the conservative estimate on the
8293         number of iterations of the entire loop if available.
8294
8295 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
8296
8297         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
8298         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
8299         Add synchronization functions.
8300         * config/sync.c: New file.
8301         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
8302         (LIBGCC_SYNC_CFLAGS): Likewise.
8303
8304 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
8305
8306         PR target/36710
8307         * config/i386/i386.md (mode): Add TF to "mode" attribute.
8308         (*pushtf_sse): New insn pattern.
8309         (pushtf splitters): New splitters.
8310
8311 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
8312
8313         PR middle-end/35736
8314         * predict.c (build_predict_expr): Use void_type_node for the tree
8315         type, instead of NULL_TREE.
8316
8317 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
8318
8319         * config/i386/i386.c (contains_aligned_value_p): Return true
8320         for TCmode.
8321         (ix86_data_alignment): Align TCmode to 128bits.
8322         (ix86_local_alignment): Likewise.
8323
8324 2008-07-03  Andrew Haley  <aph@redhat.com>
8325
8326         PR bootstrap/33304
8327         * vec.h (VEC_TA): New.
8328         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
8329         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
8330         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
8331         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
8332         (C_COMMON_FIXED_TYPES): Remove first arg.
8333         (C_COMMON_FIXED_MODE_TYPES): Likewise.
8334         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
8335         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
8336         not to use empty macro arguments.
8337
8338 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
8339
8340         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
8341         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
8342         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
8343         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
8344         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
8345         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
8346         config/ia64/crtn.asm, config/m68hc11/larith.asm,
8347         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
8348         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
8349         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
8350         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
8351         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
8352         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
8353         config/rs6000/e500crtres64gpr.asm,
8354         config/rs6000/e500crtres64gprctr.asm,
8355         config/rs6000/e500crtrest32gpr.asm,
8356         config/rs6000/e500crtrest64gpr.asm,
8357         config/rs6000/e500crtresx32gpr.asm,
8358         config/rs6000/e500crtresx64gpr.asm,
8359         config/rs6000/e500crtsav32gpr.asm,
8360         config/rs6000/e500crtsav64gpr.asm,
8361         config/rs6000/e500crtsav64gprctr.asm,
8362         config/rs6000/e500crtsavg32gpr.asm,
8363         config/rs6000/e500crtsavg64gpr.asm,
8364         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
8365         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
8366         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
8367         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
8368         config/sparc/sol2-cn.asm: Remove .file directives.
8369
8370 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
8371
8372         * resource.c (mark_referenced_resources): Look inside
8373         UNSPEC_VOLATILEs and ASM_INPUTs.
8374
8375 2008-07-02  Ian Lance Taylor  <iant@google.com>
8376
8377         * rtlanal.c (add_reg_note): New function.
8378         * rtl.h (add_reg_note): Declare.
8379         * auto-inc-dec.c (attempt_change): Use add_reg_note.
8380         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
8381         * builtins.c (expand_builtin_longjmp): Likewise.
8382         (expand_builtin_nonlocal_goto): Likewise.
8383         * calls.c (emit_call_1, expand_call): Likewise.
8384         * cfgexpand.c (add_reg_br_prob_note): Likewise.
8385         * cfglayout.c (fixup_reorder_chain): Likewise.
8386         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
8387         (commit_one_edge_insertion): Likewise.
8388         * combine.c (move_deaths, distribute_notes): Likewise.
8389         * df-problems.c (df_set_note): Likewise.
8390         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
8391         (set_unique_reg_note): Likewise.
8392         (emit_copy_of_insn_after): Likewise.
8393         * expr.c (expand_expr_real): Likewise.
8394         * gcse.c (add_label_notes): Likewise.
8395         * haifa-sched.c (create_check_block_twin): Likewise.
8396         * jump.c (mark_jump_label_1): Likewise.
8397         * loop-doloop.c (add_test, doloop_modify): Likewise.
8398         * loop-unswitch.c (compare_and_jump_seq): Likewise.
8399         * lower-subreg.c (move_eh_region_note): Likewise.
8400         * optabs.c (emit_libcall_block): Likewise.
8401         * predict.c (predict_insn): Likewise.
8402         (combine_predictions_for_insn): Likewise.
8403         * recog.c (peephole2_optimize): Likewise.
8404         * regmove.c (try_auto_increment): Likewise.
8405         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
8406         * reload.c (find_reloads): Likewise.
8407         * reload1.c (fixup_eh_region_note): Likewise.
8408         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
8409         * reorg.c (delete_prior_computation): Likewise.
8410         (delete_computation, dbr_schedule): Likewise.
8411         * config/pa/pa.c (legitimize_pic_address): Likewise.
8412         * config/sh/sh.c (sh_reorg): Likewise.
8413
8414 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
8415
8416         PR target/36669
8417         * config/libgcc-glibc.ver: Add %exclude.
8418         * config/m32r/libgcc-glibc.ver: Likwise.
8419         * config/s390/libgcc-glibc.ver: Likwise.
8420         * config/sh/libgcc-glibc.ver: Likwise.
8421         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
8422
8423         * config/i386/libgcc-glibc.ver: New.
8424
8425         * config/i386/libgcc-x86_64-glibc.ver: Removed.
8426
8427 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
8428
8429         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
8430         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
8431         i[34567]86-*-linux*, x86_64-*-linux*.  Add
8432         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
8433         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
8434         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
8435         i[34567]86-*-linux*, x86_64-*-linux*.
8436
8437         * libgcc-std.ver: Add empty GCC_4.4.0.
8438
8439         * mkmap-symver.awk: Support multiple versions per symbol.
8440
8441         * config/i386/i386.c (ix86_init_builtins): Always define
8442         __builtin_fabsq and __builtin_copysignq with fallbacks.
8443         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
8444         and __builtin_copysignq if SSE2 isn't available.
8445
8446         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
8447         (LIBGCC2_TF_CEXT): Likwise.
8448         (TF_SIZE): Likwise.
8449
8450         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
8451
8452         * config/i386/sfp-machine.h: Moved to libgcc.
8453
8454         * config/i386/sfp-machine.h: New.
8455         * config/i386/t-linux: Likwise.
8456
8457         * config/i386/t-darwin: Remove softfp_wrap_start and
8458         softfp_wrap_end.
8459         * config/i386/t-darwin64: Likewise.
8460
8461         * config/i386/t-fprules-softfp64: Renamed to ...
8462         * config/i386/t-fprules-softfp: This.
8463
8464         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
8465         and softfp_wrap_end.
8466
8467 2008-07-02  Jason Merrill  <jason@redhat.com>
8468
8469         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
8470
8471         * tree.c (ctor_to_list): New fn.
8472         * tree.h: Declare it.
8473         (CONSTRUCTOR_ELT): New macro.
8474         (CONSTRUCTOR_NELTS): New macro.
8475
8476 2008-07-02  Richard Guenther  <rguenther@suse.de>
8477
8478         * tree-ssa-structalias.c (struct variable_info): Reorder
8479         to fill padding on 64bit hosts.  Make collapsed_to an int.
8480         (get_varinfo_fc): Deal with that.
8481         (new_var_info): Likewise.
8482         (collapse_rest_of_var): Likewise.
8483
8484 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
8485
8486         * doc/install.texi (--enable-java-home): Document.
8487         (--enable-aot-compile-rpm): Likewise.
8488         (--with-arch-directory): Likewise.
8489         (--with-os-directory): Likewise.
8490         (--with-origin-name): Likewise.
8491         (--with-arch-suffix): Likewise.
8492         (--with-jvm-root-dir): Likewise.
8493         (--with-jvm-jar-dir): Likewise.
8494         (--with-python-dir): Likewise.
8495
8496 2008-07-02  Richard Guenther  <rguenther@suse.de>
8497
8498         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
8499         from decls explicitly.  Merge operand checking from tuples.
8500
8501 2008-07-02  Martin Jambor  <mjambor@suse.cz>
8502
8503         * tree-switch-conversion.c: Included timevar.h which I forgot before.
8504
8505 2008-07-02  Martin Jambor  <mjambor@suse.cz>
8506
8507         * tree-switch-conversion.c: Included timevar.h
8508         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
8509
8510         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
8511
8512 2008-07-02  Martin Jambor  <mjambor@suse.cz>
8513
8514         * tree-switch-conversion.c: Corrected various comments and
8515         whitespace issues
8516         (build_constructors): Fixed minor formatting mistakes.
8517
8518         * invoke.texi (Optimize Options): Corrected the
8519         switch-conversion-max-branch-ratio parameter.
8520
8521 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
8522
8523         * final.c (asm_insn_count): Return zero for an empty asm body.
8524
8525 2008-07-02  Richard Guenther  <rguenther@suse.de>
8526
8527         * bitmap.h (bitmap_set_bit): Return bool.
8528         (bitmap_clear_bit): Likewise.
8529         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
8530         write to the bitmap if it would.
8531         (bitmap_clear_bit): Likewise.
8532         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
8533         bitmap_set_bit return value.
8534         (add_pred_graph_edge): Likewise.
8535         (add_graph_edge): Likewise.
8536         (do_sd_constraint): Likewise.
8537         (do_ds_constraint): Likewise.
8538
8539 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8540
8541         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
8542         Fix -Wc++-compat and/or -Wcast-qual warnings.
8543         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
8544         gen_regparm_prefix): Likewise.
8545         * vmsdbgout.c (write_modbeg, lookup_filename,
8546         vmsdbgout_source_line, vmsdbgout_init): Likewise.
8547
8548 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
8549
8550         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
8551         defaults.h definition apply.
8552
8553 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
8554
8555         * function.c (assign_parm_remove_parallels): New.
8556         (assign_parm_setup_block_p): Do not return true for non-BLKmode
8557         PARALLELs.
8558         (assign_parm_setup_block): Do not handle them.
8559         (assign_parm_setup_reg, assign_parm_setup_stack): Call
8560         assign_parm_remove_parallels.
8561
8562 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
8563
8564         * c-typeck.c (convert_for_assignment): Use
8565         vector_targets_convertible_p.
8566         * c-common.c (vector_targets_convertible_p): New.
8567         * c-common.h (vector_targets_convertible_p): New prototype.
8568         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
8569         opaque_p_V2SI_type_node.
8570
8571 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
8572
8573         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
8574         RFmode constants.
8575
8576 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
8577
8578         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
8579         TFmode constants via two element DImode vector for hosts with
8580         HOST_BITS_PER_WIDE_INT < 64.
8581         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
8582         also for HOST_BITS_PER_WIDE_INT < 64.
8583
8584 2008-07-01  Richard Guenther  <rguenther@suse.de>
8585
8586         PR tree-optimization/36666
8587         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
8588         (get_constraint_exp_from_ssa_var): Split into ...
8589         (get_constraint_exp_for_temp): ... this ...
8590         (get_constraint_for_ssa_var): ... and that.
8591         Return constraint expressions for all touched sub-fields
8592         if the results address is not taken.
8593         (process_constraint): Remove assertion that aggregate
8594         assignments do not happen at this place.
8595         (get_constraint_for_component_ref): Add address_p argument.
8596         Return constraint expressions for all touched sub-fields
8597         if the results address is not taken.
8598         (do_deref): Use get_constraint_exp_for_temp.
8599         (get_constraint_for_1): Rename from ...
8600         (get_constraint_for): ... this.  Add the old function as wrapper.
8601         (do_structure_copy): Use get_constraint_for_1.
8602
8603 2008-07-01  Martin Jambor  <mjambor@suse.cz>
8604
8605         * Makefile.in (tree-switch-conversion.o): Add.
8606         (OBJS-common): Add tree-swtch-conversion.o.
8607         * passes.c (init_optimization_passes): Add pass_convert_switch.
8608         * tree-pass.h: (pass_convert_switch): Add.
8609         * tree-switch-conversion.c: New file.
8610         * gcc.dg/tree-ssa/cswtch.c: New testcase.
8611         * common.opt (ftree-cswtch): New option.
8612         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
8613         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
8614         * opts.c (decode_options): Set flag_tree_switch_conversion when
8615         optimization level is >= 2.
8616         * doc/invoke.texi (Optimize Options): Added description of
8617         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
8618
8619 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8620
8621         * config/darwin-driver.c (darwin_default_min_version): Fix
8622         -Wc++-compat warnings.
8623
8624 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
8625
8626         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
8627         of operand 0.
8628
8629 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
8630
8631         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
8632
8633 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
8634
8635         PR rtl-optimization/34744
8636         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
8637         (df_scan_free_internal): Free data structures not
8638         allocated in storage pools.
8639         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
8640         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
8641         df_scan_free_mws_vec.
8642         * dse.c (dse_step6): Free offset_map_p and offset_map_n
8643         unconditionally.
8644
8645 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
8646
8647         * config/i386/i386.c (contains_aligned_value_p): Return true
8648         for __float128.
8649         (ix86_function_arg_boundary): Return its natural boundary
8650         for __float128.
8651         (return_in_memory_32): Don't check TDmode.
8652         (ix86_split_to_parts): Support splitting into 4 parts and
8653         support TFmode for 32bit target.
8654         (ix86_split_long_move): Support splitting into 4 parts.
8655         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
8656         for SSE2.
8657         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
8658         (ix86_init_builtins): Here.
8659         (ix86_scalar_mode_supported_p): Always return true for TFmode.
8660         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
8661         'q' and 'w', respectively.
8662
8663         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
8664         TARGET_64BIT.
8665         (movtf_internal): Likewise.
8666         (<code>tf2): Likewise.
8667         (*absnegtf2_sse): Likewise.
8668         (copysign<mode>3): Likewise.
8669         (copysign<mode>3_const): Likewise.
8670         (copysign<mode>3_var): Likewise.
8671         (define_split UNSPEC_COPYSIGN): Likewise.
8672         * config/i386/sse.md (*nandtf3): Likewise.
8673         (<code>tf3): Likewise.
8674         (*<code>tf3): Likewise.
8675
8676 2008-06-30  Joey Ye  <joey.ye@intel.com>
8677             H.J. Lu  <hongjiu.lu@intel.com>
8678
8679         * global.c (compute_regsets): Set frame_pointer_needed here.
8680         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
8681
8682 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8683
8684         * doc/install.texi (specific): Expand Windows build notes.
8685
8686 2008-06-30  Ira Rosen  <irar@il.ibm.com>
8687
8688         PR tree-optimization/36648
8689         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
8690         number of prolog iterations by step. Fix the comment.
8691
8692 2008-06-30  Richard Guenther  <rguenther@suse.de>
8693
8694         PR middle-end/36671
8695         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
8696         handle calls from ECF_MALLOC functions.
8697         (handle_pure_call): ECF_MALLOC functions do not return
8698         call-used memory.
8699         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
8700
8701 2008-06-29  Andreas Schwab  <schwab@suse.de>
8702
8703         * config/m68k/m68k.c (print_operand): Always print a float
8704         constant in hex.
8705         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
8706         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
8707         Remove macros.
8708
8709         * config/rs6000/x-linux64: Remove never used file.
8710
8711 2008-06-29  Richard Guenther  <rguenther@suse.de>
8712
8713         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
8714         prototype.
8715         (struct alias_info): Move ...
8716         * tree-ssa-alias.c: ... here.
8717         (update_alias_info): Declare.
8718         (compute_may_aliases): Call it.
8719         (update_alias_info): New function.
8720         * tree-ssa-structalias.c (update_alias_info): Move ...
8721         * tree-ssa-alias.c (update_alias_info_1): ... here.
8722         * tree-ssa-structalias.c (process_constraint_1): Remove
8723         unused from_call argument.  Rename to ...
8724         (process_constraint): ... this.  Delete old wrapper.
8725         (make_constraint_to): Adjust callers.
8726         (handle_const_call): Likewise.
8727         (handle_pure_call): Likewise.
8728         (init_base_vars): Likewise.
8729         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
8730         (find_func_aliases): We don't need structure copies for
8731         complex types.
8732         (make_constraint_from_anything): Remove.
8733         (create_variable_info_for): For globals make constraints
8734         from escaped, not from anything.
8735         (compute_points_to_sets): Do not call update_alias_info.
8736         (ipa_pta_execute): Use make_constraint_from.
8737
8738 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8739
8740         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
8741         (bitmap.o-warn, dominance.o-warn): New.
8742         * configure.ac (cxx_compat_warn): Delete.
8743         (loose_warn): Add -Wcast-qual and -Wc++-compat.
8744         * system.h: Remove #pragma diagnostic for -Wcast-qual and
8745         -Wc++-compat.
8746         * configure: Regenerate.
8747
8748         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
8749         warnings.
8750
8751 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8752
8753         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
8754         * df-scan.c (df_notes_rescan): Likewise.
8755         * ggc-page.c (set_page_table_entry): Likewise.
8756         * intl.c (gcc_gettext_width): Likewise.
8757         * varasm.c (get_unnamed_section, get_noswitch_section,
8758         get_section): Likewise.
8759
8760 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
8761
8762         * regrename.c (build_def_use): Don't copy RTX.
8763
8764 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
8765
8766         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
8767         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
8768         punctuation.  Use @ref instead of @xref.
8769         (Function Names): Remove stray @display/@end display.
8770         (C++ Attributes): Use @ref instead of @xref.
8771         (Deprecated Features): Fix punctuation around @xref.
8772         (Backwards Compatibility): Likewise.
8773         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
8774
8775 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
8776
8777         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
8778         constants for E500 double.
8779
8780 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8781
8782         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
8783         element type of const_vector.
8784
8785 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
8786
8787         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
8788         Remove FLAGS_REG clobber from expander pattern.
8789         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
8790         (anddi3, andsi3, andhi3, andqi3): Ditto.
8791         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
8792         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
8793         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
8794         (ashlsi3, ashlhi3, ashlqi3): Ditto.
8795         (ashrsi3, ashrhi3, ashrqi3): Ditto.
8796         (lshrsi3, lshrhi3, lshrqi3): Ditto.
8797         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
8798         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
8799
8800 2008-06-28  Richard Guenther  <rguenther@suse.de>
8801
8802         * tree-ssa-structalias.c (callused_id, var_callused,
8803         callused_tree): Add.
8804         (handle_pure_call): New function.
8805         (find_func_aliases): Call it.
8806         (find_what_p_points_to): Handle the call-used set.
8807         (clobber_what_escaped): Likewise.
8808         (compute_call_used_vars): New function.
8809         (init_base_vars): Init the call-used variable.
8810         (do_sd_constraint): Do not propagate the solution from CALLUSED
8811         but use CALLUSED as a placeholder.
8812         (solve_graph): Likewise.
8813         * tree-flow-inline.h (gimple_call_used_vars): New function.
8814         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
8815         (compute_call_used_vars): Declare.
8816         * tree-ssa-alias.c (set_initial_properties): Call
8817         compute_call_used_vars.
8818         (reset_alias_info): Clear call-used variables.
8819         (add_call_clobber_ops): Assert we are not called for const/pure
8820         functions.  Remove handling of them.
8821         (add_call_read_ops): Handle pure functions by adding the
8822         call-used set of variables as VUSEs.
8823         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
8824         (delete_tree_ssa): Free it.
8825         * tree-dfa.c (remove_referenced_var): Clear the var from the
8826         call-used bitmap.
8827
8828 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
8829
8830         * tree.c (build_varargs_function_type_list): New.
8831         (build_function_type_list_1): New.
8832         (build_function_type_list): Use build_function_type_list_1.
8833         * tree.h (build_varargs_function_type_list): New.
8834
8835 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8836
8837         PR target/34856
8838         * config/spu/spu.c (spu_builtin_splats): Do not generate
8839         invalid CONST_VECTOR expressions.
8840         (spu_expand_vector_init): Likewise.
8841
8842 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
8843
8844         * optabs.c (libfunc_decls): New variable.
8845         (libfunc_decl_hash, libfunc_decl_eq): New functions.
8846         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
8847         for the same function twice.
8848
8849 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
8850
8851         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
8852         ix86_expand_binary_operator directly.
8853         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
8854         for operand 2.
8855         (*ashrti3_1): Ditto.
8856         (*lshrti3_1): Ditto.
8857         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
8858         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
8859         using only one splitter.  Conditionaly execute splitter before or
8860         after peephole2 pass.
8861         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
8862         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
8863         Use only one alternative in asm template.
8864         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
8865         in asm template.
8866         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
8867         "J" operand constraint for operand 2.
8868         (*ashldi3_cconly_rex64): Ditto.
8869         (*ashrdi3_cmp_rex64): Ditto.
8870         (*ashrdi3_cconly_rex64): Ditto.
8871         (*lshrdi3_cmp_rex64): Ditto.
8872         (*lshrdi3_cconly_rex64): Ditto.
8873         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
8874         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
8875         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
8876         gen_x86_shrd_1.
8877
8878 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
8879
8880         * gimplify.c (omp_is_private): Don't return true if decl is not
8881         already private on #pragma omp for or #pragma omp parallel for.
8882
8883         PR debug/36617
8884         * tree-cfg.c (struct move_stmt_d): Replace block field with
8885         orig_block and new_block fields.
8886         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
8887         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
8888         (move_block_to_fn): Replace vars_map and new_label_map arguments
8889         with struct move_stmt_d pointer.
8890         (replace_block_vars_by_duplicates): New function.
8891         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
8892         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
8893         all subblocks of ORIG_BLOCK to the new function.  Call
8894         replace_block_vars_by_duplicates.
8895         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
8896         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
8897         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
8898         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
8899         (expand_omp): Temporarily set input_location to the location of
8900         region's controlling stmt.
8901         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
8902         BIND_EXPR, push ctx->block_vars and gimplification vars into
8903         the BIND_EXPR and its block's BLOCK_VARS instead of directly
8904         into dest function.
8905         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
8906         there are any BLOCK_VARS.
8907         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
8908         OMP_PARALLEL or OMP_TASK stmt.
8909         (lower_omp): Save and restore input_location around the lower_omp_1
8910         call.
8911
8912 2008-06-27  Richard Guenther  <rguenther@suse.de>
8913
8914         PR tree-optimization/36400
8915         PR tree-optimization/36373
8916         PR tree-optimization/36344
8917         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
8918         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
8919         (update_alias_info): Remove call clobbering code.
8920         (make_constraint_to): New helper function.
8921         (make_escape_constraint): Likewise.
8922         (handle_rhs_call): Use it on all pointer containing arguments.
8923         Also mark the static chain escaped.
8924         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
8925         instead of ANYTHING.
8926         (make_constraint_from): New helper split out from ...
8927         (make_constraint_from_anything): ... here.
8928         (find_func_aliases): Add constraints for escape sites.
8929         (intra_create_variable_infos): Make constraints from NONLOCAL
8930         for parameters.
8931         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
8932         as ANYTHING.
8933         (clobber_what_p_points_to): Remove.
8934         (clobber_what_escaped): New function.
8935         (init_base_vars): Init NONLOCAL and ESCAPED.
8936         (do_sd_constraint): Do not propagate the solution from ESCAPED
8937         but use ESCAPED as a placeholder.
8938         (solve_graph): Likewise.
8939         * tree-flow.h (clobber_what_p_points_to): Remove.
8940         (clobber_what_escaped): Declare.
8941         * tree-ssa-alias.c (set_initial_properties): Call it.
8942         Remove code clobbering escaped pointers.
8943
8944 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
8945
8946         * function.c (allocate_struct_function): Only allocate a unique
8947         funcdef_no if the decl is nonzero.
8948
8949 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
8950
8951         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
8952         * config/mips/mips.c (mips_split_const_insns): New function.
8953         * config/mips/mips.md (move_type): New attribute.
8954         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
8955         (dword_mode): New attribute.
8956         (type): Avoid long line.  Map "move_type"s to "type"s,
8957         choosing "multi" for doubleword moves if appropriate.
8958         Swap MTC/MFC comments to match their declaration order.
8959         (extended_mips16): Default to "yes" if "move_type" is "sll0",
8960         "type" is "branch" or "jal" is "direct".
8961         (length): Handle "extended_mips16" first.  Make the default
8962         "0" for "ghost" instructions.  Set the length from "move_type".
8963         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
8964         of "type", with "sll0" for the register alternative.  Remove the
8965         "extended_mips16" attribute.
8966         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
8967         of "type", with "shift_shift" for the register alternative.
8968         Remove the "length" attribute.
8969         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
8970         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
8971         of "type", with "andi" for the register alternative.
8972         (*zero_extendqihi2): Likewise.
8973         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
8974         of "andi" instead of a "type" of "arith".
8975         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
8976         instead of "type".
8977         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
8978         (mov_<store>r, *mov<mode>_ra): Likewise.
8979         (extendsidi2): Use "move_type" instead of "type", with "move"
8980         for the register alternative.
8981         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
8982         of "type", with "signext" for the register alternative.
8983         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
8984         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
8985         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
8986         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
8987         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
8988         (unnamed branch insn): Likewise.
8989         (*movdi_gp32_fp64): Fold into...
8990         (*movdi_32bit): ...here.
8991         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
8992         (*movdf_hardfloat): ...this new pattern.
8993         (*movdf_softfloat): Remove redundant FPR alternatives.
8994         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
8995         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
8996         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
8997         the "move" attribute.
8998         (*movdi_32bit): Use "move_type" instead of "type" and remove the
8999         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
9000         and "store" for COP loads and stores.
9001         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
9002         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
9003         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
9004         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
9005         (*movtf_mips16, *movv2sf): Likewise.
9006         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
9007         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
9008         (mfhc1<mode>): Use "move_type" instead of "move".
9009         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
9010         (loadgp_blockage): Remove the "length" attribute.
9011         (blockage, set_got_version, update_got_version): Likewise.
9012         (call_internal): Remove the "extended_mips16" attribute.
9013         (call_value_internal, call_value_multiple_internal): Likewise.
9014         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
9015         instead of "move".
9016         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
9017         the "length" attribute.
9018
9019 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9020
9021         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
9022         -Wcast-qual warnings.
9023         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
9024         handle_pragma_pop_macro): Likewise.
9025         * collect2.c (resolve_lib_name): Likewise.
9026         * config/arc/arc.c (arc_init): Likewise.
9027         * config/arm/arm.c (neon_builtin_compare,
9028         locate_neon_builtin_icode): Likewise.
9029         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
9030         * config/bfin/bfin.c (bfin_init_machine_status,
9031         bfin_optimize_loop): Likewise.
9032         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
9033         * config/cris/cris.c (cris_init_expanders): Likewise.
9034         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
9035         * config/darwin.c (machopic_indirection_eq,
9036         machopic_indirection_name, machopic_output_indirection): Likewise.
9037         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
9038         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
9039         frv_optimize_membar): Likewise.
9040         * config/i386/cygwin.h (mingw_scan,
9041         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
9042         * config/i386/cygwin1.c (mingw_scan): Likewise.
9043         * config/i386/i386.c (machopic_output_stub): Likewise.
9044         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
9045         i386_pe_unique_section): Likewise.
9046         * config/ia64/ia64.c (ia64_init_machine_status,
9047         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
9048         Likewise.
9049         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
9050         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
9051         * config/m68k/m68k.c (m68k_handle_option,
9052         m68k_sched_md_init_global): Likewise.
9053         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
9054         mcore_unique_section): Likewise.
9055         * config/mips/mips.c (mips_block_move_straight,
9056         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
9057         Likewise.
9058         * config/mmix/mmix.c (mmix_init_machine_status,
9059         mmix_encode_section_info): Likewise.
9060         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
9061         * config/rs6000/rs6000.c (rs6000_init_machine_status,
9062         print_operand_address, output_toc, redefine_groups,
9063         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
9064         * config/s390/s390.c (s390_init_machine_status): Likewise.
9065         * config/score/score.c (score_block_move_straight,
9066         score_block_move_loop_body): Likewise.
9067         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
9068         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
9069         * emit-rtl.c (find_auto_inc): Likewise.
9070         * gcc.c (translate_options, process_command): Likewise.
9071         * reorg.c (dbr_schedule): Likewise.
9072         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
9073         * xcoffout.c (xcoffout_declare_function): Likewise.
9074
9075 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
9076
9077         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
9078         ipa-pta working again.
9079
9080 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
9081
9082         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
9083         genautomata.
9084
9085 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
9086
9087         * config.gcc (powerpc*-*-*): Add new core e500mc.
9088         * config/rs6000/e500mc.md: New file.
9089         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9090         e500mc.
9091         (rs6000_override_options): Add e500mc case to
9092         processor_target_table. Altivec and Spe options not allowed
9093         with e500mc. Add isel instruction to e500mc by
9094         default. Initialize rs6000_cost for e500mc.
9095         (rs6000_issue_rate): Set issue rate for e500mc.
9096         * config/rs6000/rs6000.h (processor_type): Add
9097         PROCESSOR_PPCE500MC.
9098         (ASM_CPU_SPEC): Add e500mc.
9099         Set TARGET_ISEL to rs6000_isel.
9100         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
9101         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
9102         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
9103         Include e500mc.md.
9104         * doc/invoke.texi: Add e500mc to list of cpus.
9105
9106 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9107
9108         PR c/34867
9109         * c-lex.c (lex_charconst): Initialize unsignedp.
9110
9111 2008-06-27  Olivier Hainque  <hainque@adacore.com>
9112
9113         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
9114         documented assumptions.
9115
9116 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
9117
9118         * dwarf2out.c: Remove trailing white spaces.  Break long line
9119         in comments.
9120
9121 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
9122
9123         * libfuncs.h (LTI_synchronize): New libfunc_index.
9124         (synchronize_libfunc): Declare.
9125         * builtins.c (expand_builtin_synchronize): Consider using
9126         synchronize_libfunc before falling back on an asm blockage.
9127         * config/mips/mips.c: Include libfuncs.h
9128         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
9129
9130 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
9131
9132         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
9133         parameter.  Copy stack_reg to r11 where appropriate.
9134         (no_global_regs_above): Add gpr parameter.
9135         (rs6000_stack_info): Only add padding for SPE save area if we
9136         are saving SPE GPRs and CR.
9137         (saveres_routine_syms): New variable.
9138         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
9139         Define.
9140         (rs6000_savres_routine_sym): New function.
9141         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
9142         split out of...
9143         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
9144         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
9145         Tweak FPR out-of-line saving.
9146         (rs6000_make_savres_rtx): New function.
9147         (rs6000_use_multiple_p): New function.
9148         (rs6000_savres_strategy): New function.
9149         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
9150         out-of-line if appropriate.
9151         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
9152         if we are optimizing for size.
9153         (GP_SAVE_INLINE): Define.
9154         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
9155         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
9156         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
9157         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
9158         (*save_fpregs_<mode>): Add use of r11.
9159         (*restore_gpregs_<mode>): New insn.
9160         (*return_and_restore_gpregs_<mode>): New insn.
9161         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
9162         use r11.
9163         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
9164         (*restore_gpregs_spe): New insn.
9165         (*return_and_restore_gpregs_spe): New insn.
9166         * config/rs6000/predicates.md (save_world_operation): Fix check.
9167
9168 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
9169
9170         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
9171         this point, so assert that.
9172
9173 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
9174
9175         * cfganal.c: Include vec.h and vecprim.h.
9176         (compute_idf): Import from...
9177         * tree-into-ssa (compute_idf): ...here.
9178         * basic-block.h (compute_idf): Export.
9179
9180 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
9181
9182         * c-decl.c (merge_decls): Use !current_function_decl to check for
9183         extern declaration of C99 inline function being at file scope.
9184
9185 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
9186
9187         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
9188
9189 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9190
9191         * alias.c (record_alias_subset, init_alias_analysis): Fix
9192         -Wc++-compat and/or -Wcast-qual warnings.
9193         * attribs.c (lookup_attribute_spec): Likewise.
9194         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
9195         copy_bb, connect_traces,
9196         find_rarely_executed_basic_blocks_and_cr): Likewise.
9197         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
9198         note_btr_set, migrate_btr_defs): Likewise.
9199         * builtins.c (result_vector, expand_builtin_memcpy,
9200         expand_builtin_mempcpy_args, expand_builtin_strncpy,
9201         builtin_memset_read_str, expand_builtin_printf,
9202         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
9203         Likewise.
9204         * caller-save.c (mark_set_regs): Likewise.
9205         * calls.c (expand_call, emit_library_call_value_1): Likewise.
9206         * cgraph.c (cgraph_edge): Likewise.
9207         * combine.c (likely_spilled_retval_1): Likewise.
9208         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
9209         htab_counts_entry_del, get_coverage_counts): Likewise.
9210         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
9211         new_cselib_val): Likewise.
9212         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
9213         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
9214         Likewise.
9215         * df-core.c (df_compact_blocks): Likewise.
9216         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
9217         * df-scan.c (df_grow_reg_info, df_ref_create,
9218         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
9219         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
9220         df_record_entry_block_defs, df_record_exit_block_uses,
9221         df_bb_verify): Likewise.
9222         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
9223         DF_REF_EXTRACT_MODE_CONST): New.
9224         * dominance.c (get_immediate_dominator, get_dominated_by,
9225         nearest_common_dominator, root_of_dom_tree,
9226         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
9227         -Wc++-compat and/or -Wcast-qual warnings.
9228         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
9229         record_store, replace_read, check_mem_read_rtx, scan_insn,
9230         dse_step1, dse_record_singleton_alias_set): Likewise.
9231         * dwarf2asm.c (dw2_force_const_mem): Likewise.
9232
9233 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9234
9235         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
9236         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
9237         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
9238         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
9239         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
9240         add_ranges_num, add_ranges_by_labels, file_info_cmp,
9241         file_name_acquire, output_file_names, add_const_value_attribute,
9242         premark_used_types_helper, file_table_eq, file_table_hash,
9243         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
9244         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
9245         -Wcast-qual warnings.
9246         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
9247         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
9248         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
9249         gen_reg_rtx, start_sequence, init_emit): Likewise.
9250         * et-forest.c (et_new_occ, et_new_tree): Likewise.
9251         * except.c (init_eh_for_function, gen_eh_region,
9252         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
9253         arh_to_landing_pad, arh_to_label, add_action_record,
9254         add_call_site, switch_to_exception_section): Likewise.
9255         * expmed.c (synth_mult): Likewise.
9256         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
9257         store_expr): Likewise.
9258         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
9259         Likewise.
9260         * function.c (assign_stack_temp_for_type,
9261         allocate_struct_function, match_asm_constraints_1): Likewise.
9262         * gcov-io.c (gcov_allocate): Likewise.
9263         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
9264         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
9265         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
9266         record_one_set, insert_expr_in_table, insert_set_in_table,
9267         dump_hash_table, compute_hash_table_work, alloc_hash_table,
9268         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
9269         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
9270         -Wcast-qual warnings.
9271
9272 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9273
9274         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
9275         -Wcast-qual warnings.
9276         * gcc.c (process_command): Likewise.
9277         * genattrtab.c (oballoc): Use XOBNEW.
9278         (oballocvec): Define.
9279         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
9280         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
9281         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
9282         -Wc++-compat and/or -Wcast-qual warnings.
9283         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
9284         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
9285         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
9286         gen_presence_absence_set, gen_automaton, gen_regexp_el,
9287         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
9288         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
9289         add_excls, process_presence_absence_names,
9290         process_presence_absence_patterns, add_presence_absence,
9291         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
9292         get_free_state, add_arc, get_free_automata_list_el,
9293         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
9294         transform_3, cache_presence, create_ainsns, create_automata,
9295         create_state_ainsn_table, dfa_insn_code_enlarge,
9296         output_trans_func, output_min_issue_delay_func,
9297         output_dead_lock_func, output_reset_func,
9298         output_get_cpu_unit_code_func, output_dfa_start_func,
9299         expand_automata): Likewise.
9300         * genextract.c (gen_insn): Likewise.
9301         * gengtype-lex.l: Likewise.
9302         * gengtype.c (read_input_list, adjust_field_type,
9303         process_gc_options): Likewise.
9304         * genoutput.c (note_constraint): Likewise.
9305         * genpreds.c (mangle, add_constraint): Likewise.
9306         * genrecog.c (process_define_predicate, new_decision,
9307         add_to_sequence): Likewise.
9308         * gensupport.c (record_insn_name): Likewise.
9309
9310 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9311
9312         * config/i386/driver-i386.c (detect_caches_amd,
9313         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
9314         and/or -Wcast-qual warnings.
9315         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
9316         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
9317         gt_pch_save): Likewise.
9318         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
9319         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
9320         * global.c (compute_regsets): Likewise.
9321         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
9322         finish_graph_dump_file): Likewise.
9323         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
9324         unlink_bb_notes): Likewise.
9325         * integrate.c (get_hard_reg_initial_val): Likewise.
9326         * ipa-prop.c (ipa_push_func_to_list): Likewise.
9327         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
9328         * local-alloc.c (update_equiv_regs): Likewise.
9329         * loop-invariant.c (check_invariant_table_size,
9330         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
9331         Likewise.
9332         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
9333         altered_reg_used, mark_altered): Likewise.
9334         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
9335         insert_var_expansion_initialization,
9336         combine_var_copies_in_loop_exit, apply_opt_in_copies,
9337         release_var_copies): Likewise.
9338         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
9339         analyze_matrix_decl, add_allocation_site, analyze_transpose,
9340         analyze_accesses_for_phi_node, check_var_notmodified_p,
9341         check_allocation_function, find_sites_in_func,
9342         record_all_accesses_in_func, transform_access_sites,
9343         transform_allocation_sites): Likewise.
9344         * omp-low.c (new_omp_region, create_omp_child_function_name,
9345         check_omp_nesting_restrictions, check_combined_parallel,
9346         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
9347         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
9348         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
9349         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
9350         Likewise.
9351         * opts-common.c (prune_options): Likewise.
9352         * opts.c (add_input_filename, print_filtered_help,
9353         get_option_state): Likewise.
9354         * params.c (add_params): Likewise.
9355         * passes.c (set_pass_for_id, next_pass_1,
9356         do_per_function_toporder, pass_fini_dump_file): Likewise.
9357         * postreload.c (reload_cse_simplify_operands): Likewise.
9358         * predict.c (tree_predicted_by_p, tree_predict_edge,
9359         clear_bb_predictions, combine_predictions_for_bb): Likewise.
9360
9361 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9362
9363         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
9364         warnings.
9365         * recog.c (check_asm_operands, validate_change_1): Likewise.
9366         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
9367         subst_asm_stack_regs): Likewise.
9368         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
9369         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
9370         * regmove.c (reg_is_remote_constant_p): Likewise.
9371         * regrename.c (regrename_optimize, scan_rtx_reg,
9372         kill_clobbered_value, kill_set_value, kill_autoinc_value):
9373         Likewise.
9374         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
9375         regstat_compute_calls_crossed): Likewise.
9376         * reload1.c (init_reload, new_insn_chain,
9377         has_nonexceptional_receiver, reload, copy_reloads,
9378         calculate_needs_all_insns, init_elim_table): Likewise.
9379         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
9380         * rtl.c (shallow_copy_rtx_stat): Likewise.
9381         * rtlanal.c (parms_set): Likewise.
9382         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
9383         sbitmap_resize, sbitmap_vector_alloc): Likewise.
9384         * sched-ebb.c (earliest_block_with_similiar_load,
9385         add_deps_for_risky_insns): Likewise.
9386         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
9387         schedule_region): Likewise.
9388         * see.c (eq_descriptor_pre_extension,
9389         hash_descriptor_pre_extension, hash_del_pre_extension,
9390         eq_descriptor_properties, hash_descriptor_properties,
9391         hash_del_properties, see_seek_pre_extension_expr,
9392         see_initialize_data_structures, see_print_register_properties,
9393         see_print_pre_extension_expr, see_delete_merged_def_extension,
9394         see_delete_unmerged_def_extension, see_emit_use_extension,
9395         see_pre_delete_extension, see_map_extension, see_commit_changes,
9396         see_analyze_merged_def_local_prop,
9397         see_analyze_merged_def_local_prop,
9398         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
9399         see_set_prop_merged_def, see_set_prop_unmerged_def,
9400         see_set_prop_unmerged_use, see_print_one_extension,
9401         see_merge_one_use_extension, see_merge_one_def_extension,
9402         see_store_reference_and_extension, see_update_uses_relevancy,
9403         see_update_defs_relevancy): Likewise.
9404         * statistics.c (hash_statistics_hash, hash_statistics_eq,
9405         hash_statistics_free, curr_statistics_hash): Likewise.
9406         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
9407         expand_asm_operands, expand_return, case_bit_test_cmp,
9408         expand_case): Likewise.
9409         * stor-layout.c (start_record_layout): Likewise.
9410         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
9411         gt_pch_save_stringpool): Likewise.
9412         * tree-data-ref.c (hash_stmt_vertex_info,
9413         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
9414         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
9415
9416 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
9417
9418         PR target/36627
9419         * config/i386/i386.md : Change constraints of HImode and QImode
9420         immediate operands from "i" to "n".  Change SImode "ni" constraint to
9421         "i" and SImode "rmi" constraint to "g".  Remove all constraints
9422         from const0_operand and const1_operand predicated operands.
9423         (i): Change QImode and HImode attribute from "i" to "n".
9424         (*subqi_2): Change HImode operands to QImode.
9425         (*subqi_3): Ditto.
9426
9427 2008-06-25  Olivier Hainque  <hainque@adacore.com>
9428
9429         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
9430         sed substitutions.
9431
9432 2008-06-25  Richard Guenther  <rguenther@suse.de>
9433
9434         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
9435         not overflow the result type.
9436
9437 2008-06-25  Richard Guenther  <rguenther@suse.de>
9438
9439         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
9440         (vn_lookup): Likewise.
9441
9442 2008-06-25  Richard Guenther  <rguenther@suse.de>
9443
9444         PR tree-optimization/35518
9445         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
9446         * tree-sra.c (instantiate_element): Use fold_build3 to build
9447         BIT_FIELD_REFs.
9448         (try_instantiate_multiple_fields): Likewise.
9449
9450 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9451
9452         * config/rs6000/rs6000.md: Change all string instruction's clobber to
9453         be early clobbers.
9454
9455 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9456
9457         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
9458         use_backchain_to_restore_sp to true
9459         if the offset of the link register save area would go over the 32k - 1
9460         offset limit of the load
9461         instructions.
9462
9463 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
9464
9465         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
9466         anchor for the type-punning blurb.  Cross-reference "Structures
9467         unions enumerations and bit-fields implementation".  Provide a
9468         cast-through-pointer example.  Make final sentence self-contained.
9469         * doc/implement-c.texi (Structures unions enumerations and
9470         bit-fields implementation): Cross-reference the type-punning blurb
9471         in the -fstrict-aliasing documentation.
9472
9473 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9474
9475         PR middle-end/36594
9476         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
9477         the memory instead of the memory itself for the save area.
9478
9479 2008-06-24  Olivier Hainque  <hainque@adacore.com>
9480             Nicolas Roche  <roche@adacore.com>
9481
9482         * gengtype.c (srcdir_len): size_t instead of int.
9483         (get_file_realbasename): New function.  For F a filename, the real
9484         basename of F, with all the path components stripped.
9485         (get_file_srcdir_relative_path): New function.  For F a filename, the
9486         relative path to F from $(srcdir).
9487         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
9488         get_file_realbasename.  Adjust the head comment.
9489         (get_prefix_langdir_index): New function. For F a filename, return the
9490         lang_dir_names[] relative index of the language directory that is
9491         a prefix in F.
9492         (get_file_langdir): For F a filename, return the name of the language
9493         directory where F is located.
9494         (get_file_gtfilename): New function. The gt- output file name for an
9495         input filename F.
9496         (get_output_file_with_visibility): Replace in-line computations with
9497         uses of get_file_gtfilename and get_prefix_langdir_index.
9498         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
9499
9500 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
9501
9502         PR tree-optimization/36504
9503         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
9504         references without base address.
9505
9506 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
9507
9508         PR middle-end/36584
9509         * calls.c (expand_call): Increase alignment for recursive functions.
9510
9511 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
9512
9513         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
9514         (TARGET_FUNCTION_VALUE): New define.
9515         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
9516         * config/avr/avr.h (FUNCTION_VALUE): Remove.
9517
9518 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
9519
9520         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
9521         (fmod<mode>3): Ditto.
9522         (remainderxf3): Ditto.
9523         (remainder<mode>3): Ditto.
9524
9525 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
9526
9527         PR target/36533
9528         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
9529         REG is a hard register.
9530
9531         PR tree-optimization/36508
9532         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
9533         499, don't check it at all in release compilers.
9534
9535 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
9536
9537         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
9538         together with SSE_TARGET_MATH to disable insn pattern.
9539         (*fop_<MODEF:mode>_2_i387): Ditto.
9540         (*fop_<MODEF:mode>_3_i387): Ditto.
9541
9542 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
9543
9544         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
9545
9546 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9547
9548         PR middle-end/34906
9549         * gimplify.c (gimplify_asm_expr): Check the return code of
9550         parse_output_constraint call, set function return and is_inout
9551         value if it failed.
9552
9553 2008-06-22  Ian Lance Taylor  <iant@google.com>
9554
9555         * c-lex.c (narrowest_unsigned_type): Change itk to int.
9556         (narrowest_signed_type): Likewise.
9557         * c-typeck.c (c_common_type): Change local variable mclass to enum
9558         mode_class, twice.
9559         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
9560         tcc_comparison, not the tree code itself.
9561         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
9562         (c_expand_expr): Cast modifier to enum expand_modifier.
9563         * c-common.h (C_RID_CODE): Add casts.
9564         (C_SET_RID_CODE): Define.
9565         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
9566         (c_lex_one_token): Add cast to avoid warning.
9567         (c_parser_objc_type_name): Rename local typename to type_name.
9568         (check_no_duplicate_clause): Change code parameter to enum
9569         omp_clause_code.
9570         (c_parser_omp_var_list_parens): Change kind parameter to enum
9571         omp_clause_code.
9572         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
9573         c_parser_omp_list_var_parens.
9574         (c_parser_omp_threadprivate): Likewise.
9575         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
9576         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
9577         * c-format.c (NO_FMT): Define.
9578         (printf_length_specs): Use NO_FMT.
9579         (asm_fprintf_length_specs): Likewise.
9580         (gcc_diag_length_specs): Likewise.
9581         (scanf_length_specs): Likewise.
9582         (strfmon_length_specs): Likewise.
9583         (gcc_gfc_length_specs): Likewise.
9584         (printf_flag_specs): Change 0 to STD_C89.
9585         (asm_fprintf_flag_specs): Likewise.
9586         (gcc_diag_flag_specs): Likewise.
9587         (gcc_cxxdiag_flag_specs): Likewise.
9588         (scanf_flag_specs): Likewise.
9589         (strftime_flag_specs): Likewise.
9590         (strfmon_flag_specs): Likewise.
9591         (print_char_table): Likewise.
9592         (asm_fprintf_char_table): Likewise.
9593         (gcc_diag_char_table): Likewise.
9594         (gcc_tdiag_char_table): Likewise.
9595         (gcc_cdiag_char_table): Likewise.
9596         (gcc_cxxdiag_char_table): Likewise.
9597         (gcc_gfc_char_table): Likewise.
9598         (scan_char_table): Likewise.
9599         (time_char_table): Likewis.
9600         (monetary_char_table): Likewise.
9601         * c-format.h (BADLEN): Likewise.
9602
9603 2008-06-21  Ian Lance Taylor  <iant@google.com>
9604
9605         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
9606         Define END_OF_BASE_TREE_CODES around inclusion.
9607         * tree.c (tree_code_type): New global array.
9608         (tree_code_length, tree_code_name): Likewise.
9609         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
9610         $(lang_tree_files).
9611         (all-tree.def, s-alltree): New targets.
9612         (gencheck.h, s-gencheck): Remove.
9613         (tree.o): Depend upon all-tree.def.
9614         (build/gencheck.o): Remove gencheck.h dependency.
9615         (mostlyclean): Don't remove gencheck.h.
9616         * c-common.h (enum c_tree_code): Remove.
9617         * c-lang.c (tree_code_type): Remove.
9618         (tree_code_length, tree_code_name): Remove.
9619         * gencheck.c (tree_codes): Include all-tree.def, rather than
9620         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
9621         after it is used.
9622         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
9623         than tree.def.
9624         * cp/cp-tree.h (enum cplus_tree_code): Remove.
9625         (operator_name_info): Size to MAX_TREE_CODES.
9626         (assignment_operator_name_info): Likewise.
9627         * cp/cp-lang.c (tree_code_type): Remove.
9628         (tree_code_length, tree_code_name): Remove.
9629         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
9630         (assignment_operator_name_info): Likewise.
9631         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
9632         MAX_TREE_CODES.
9633         * cp/mangle.c (write_expression): Likewise.
9634         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
9635         * fortran/f95-lang.c (tree_code_type): Remove.
9636         (tree_code_length, tree_code_name): Remove.
9637         * java/java-tree.h (enum java_tree_code): Remove.
9638         * java/lang.c (tree_code_type): Remove.
9639         (tree_code_length, tree_code_name): Remove.
9640         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
9641         * objc/objc-act.h (enum objc_tree_code): Remove.
9642         * objc/objc-lang.c (tree_code_type): Remove.
9643         (tree_code_length, tree_code_name): Remove.
9644         * objcp/objcp-lang.c (tree_code_type): Remove.
9645         (tree_code_length, tree_code_name): Remove.
9646         * ada/ada-tree.h (enum gnat_tree_code): Remove.
9647         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
9648         * ada/misc.c (tree_code_type): Remove.
9649         (tree_code_length, tree_code_name): Remove.
9650
9651 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
9652
9653         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
9654         the grand_bitmap_obstack.
9655
9656 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9657
9658         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
9659         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
9660         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
9661         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
9662         move_stmt_r, new_label_mapper): Likewise.
9663         * tree-complex.c (cvc_lookup): Likewise.
9664         * tree-dfa.c (create_function_ann): Likewise.
9665         * tree-dump.c (dump_register): Likewise.
9666         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
9667         find_phi_replacement_condition): Likewise.
9668         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
9669         tree_function_versioning): Likewise.
9670         * tree-into-ssa.c (cmp_dfsnum): Likewise.
9671         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
9672         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
9673         get_nonlocal_debug_decl, convert_nonlocal_reference,
9674         convert_nonlocal_omp_clauses, get_local_debug_decl,
9675         convert_local_reference, convert_local_omp_clauses,
9676         convert_nl_goto_reference, convert_nl_goto_receiver,
9677         convert_tramp_reference, convert_call_expr): Likewise.
9678         * tree-outof-ssa.c (contains_tree_r): Likewise.
9679         * tree-parloops.c (reduction_phi, initialize_reductions,
9680         eliminate_local_variables_1, add_field_for_reduction,
9681         add_field_for_name, create_phi_for_local_result,
9682         create_call_for_reduction_1, create_loads_for_reductions,
9683         create_stores_for_reduction, create_loads_and_stores_for_name):
9684         Likewise.
9685         * tree-phinodes.c (allocate_phi_node): Likewise.
9686         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
9687         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
9688         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
9689         * tree-ssa-coalesce.c (compare_pairs): Likewise.
9690         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
9691         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
9692         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
9693         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
9694         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
9695         vn_nary_op_insert): Likewise.
9696         * tree-ssa.c (redirect_edge_var_map_add,
9697         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
9698         * tree-vectorizer.c (vectorize_loops): Likewise.
9699         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
9700         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
9701         tree_cons_stat, build1_stat, build_variant_type_copy,
9702         decl_init_priority_lookup, decl_fini_priority_lookup,
9703         decl_priority_info, decl_restrict_base_lookup,
9704         decl_restrict_base_insert, decl_debug_expr_lookup,
9705         decl_debug_expr_insert, decl_value_expr_lookup,
9706         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
9707         type_hash_add, get_file_function_name, tree_check_failed,
9708         tree_not_check_failed, tree_range_check_failed,
9709         omp_clause_range_check_failed, build_omp_clause,
9710         build_vl_exp_stat): Likewise.
9711         * value-prof.c (gimple_histogram_value,
9712         gimple_duplicate_stmt_histograms): Likewise.
9713         * var-tracking.c (attrs_list_insert, attrs_list_copy,
9714         unshare_variable, variable_union_info_cmp_pos, variable_union,
9715         dataflow_set_different_1, dataflow_set_different_2,
9716         vt_find_locations, variable_was_changed, set_variable_part,
9717         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
9718         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
9719         section_entry_hash, object_block_entry_eq,
9720         object_block_entry_hash, create_block_symbol,
9721         initialize_cold_section_name, default_function_rodata_section,
9722         strip_reg_name, set_user_assembler_name, const_desc_eq,
9723         build_constant_desc, output_constant_def, lookup_constant_def,
9724         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
9725         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
9726         default_internal_label): Likewise.
9727         * varray.c (varray_init, varray_grow): Likewise.
9728         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
9729
9730 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
9731
9732         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
9733         operators for "test" insn.  Macroize insn using SWI mode macro.
9734         (*jcc_fused_2): Ditto.
9735         (*jcc_fused_3): Macroize insn using SWI mode macro.
9736         (*jcc_fused_4): Ditto.
9737
9738 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
9739
9740         * tree-ssa-pre.c: Fix typo in comment.
9741         (init_antic, fini_antic): Add explicit funtions for
9742         initializing and deinitializing ANTIC and AVAIL sets.
9743         (create_expression_by_pieces): Fix typo in comment.
9744         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
9745         (execute_pre): Eventually dump details about ANTIC_IN.
9746
9747 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9748
9749         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
9750         * gcc.c (translate_options, init_spec, store_arg, read_specs,
9751         add_to_obstack, file_at_path, find_a_file, execute,
9752         add_preprocessor_option, add_assembler_option, add_linker_option,
9753         process_command, insert_wrapper, do_option_spec, do_self_spec,
9754         spec_path, do_spec_1, is_directory, main, used_arg,
9755         getenv_spec_function): Likewise.
9756         * tlink.c (symbol_hash_lookup, file_hash_lookup,
9757         demangled_hash_lookup, symbol_push, file_push, frob_extension):
9758         Likewise.
9759
9760 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
9761
9762         * doc/rtl.texi: Updated subreg section.
9763
9764 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
9765
9766         PR c++/36523
9767         * cgraphunit.c (cgraph_process_new_functions): Don't clear
9768         node->needed and node->reachable.
9769         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
9770         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
9771         (expand_task_call): Don't call expand_task_copyfn.
9772         (expand_task_copyfn): Renamed to...
9773         (finalize_task_copyfn): ... this.
9774
9775 2008-06-19  Jan Hubicka  <jh@suse.cz>
9776
9777         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
9778         clobbering framepointer.
9779
9780 2008-06-19  Jan Hubicka  <jh@suse.cz>
9781
9782         * tree-optimize.c (execute_early_local_optimizations): Set
9783         cgraph_state only at first invocation.
9784
9785 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9786
9787         * system.h (-Wc++-compat): Activate as a warning, no an error.
9788
9789 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
9790
9791         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
9792         instead of "#" in insn asm template.
9793         (*jcc_fused_2): Ditto.
9794
9795 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
9796
9797         * config/i386/i386.h (ix86_tune_indices)
9798         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
9799         (TARGET_FUSE_CMP_AND_BRANCH): New define.
9800         * config/i386/i386.md (*jcc_fused_1): New insn pattern
9801         (*jcc_fused_2): Ditto.
9802         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
9803         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
9804         (print operand): Handle 'E' and 'e' code.
9805
9806 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
9807
9808         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
9809         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9810         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9811
9812 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
9813
9814         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
9815         node->decl.
9816         (cgraph_expand_function): Use local copy of decl.
9817         (cgraph_expand_all_functions): Remove redundant initialization of
9818         order_pos.
9819         (cgraph_optimize): Reword internal_error message.
9820
9821 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
9822
9823         * arm-protos.h (arm_return_in_memory): Remove public
9824         arm_return_in_memory() prototype.
9825         * arm.c (arm_return_in_memory): Add static prototype, add target
9826         hook macro, change definition and comments.
9827         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
9828
9829 2008-06-19  Ben Elliston  <bje@au.ibm.com>
9830
9831         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
9832         real.c: Remove references to IEEE 754R.
9833         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
9834         * doc/libgcc.texi (Decimal float library routines): Likewise.
9835
9836 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9837
9838         * targhooks.h (struct gcc_target): New member unwind_word_mode.
9839         (default_unwind_word_mode): Add prototype.
9840         * targhooks.c (default_unwind_word_mode): New function.
9841         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
9842         instead of word_mode.
9843         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
9844         (TARGET_INITIALIZER): Use it.
9845
9846         * c-common.c (handle_mode_attribute): Support "unwind_word"
9847         mode attribute.
9848         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
9849
9850         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
9851         word_mode to access SjLj_Function_Context member "data".
9852         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
9853         conversion from targetm.eh_return_filter_mode () to
9854         targetm.unwind_word_mode () if they differ.
9855
9856         * builtin-types.def (BT_UNWINDWORD): New primitive type.
9857         (BT_FN_UNWINDWORD_PTR): New function type.
9858         (BT_FN_WORD_PTR): Remove.
9859         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
9860         * except.c (expand_builtin_extend_pointer): Convert pointer to
9861         targetm.unwind_word_mode () instead of word_mode.
9862
9863         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
9864         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
9865         (spu_unwind_word_mode): New function.
9866         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
9867         (TARGET_UNWIND_WORD_MODE): Define.
9868         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
9869
9870 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9871
9872         * config/spu/spu.c (reg_align): Remove.
9873         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
9874         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
9875         (spu_split_store): Likewise.
9876
9877 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
9878
9879         * gcc/tree-vn.c: Fix typo in comment.
9880
9881 2008-06-18  Jan Hubicka  <jh@suse.cz>
9882
9883         * cgraphunit.c (cgraph_optimize): Output debug info when doing
9884         toplevel reorder too.
9885
9886 2008-06-18  Jan Hubicka  <jh@suse.cz>
9887
9888         * c-opts.c (c_common_post_options): PCH is not compatible with
9889         no-unit-at-a-time.
9890         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
9891         -fno-toplevel-reorder by default now.
9892
9893 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9894
9895         PR documentation/30739
9896         * doc/install.texi (Prerequisites): Document dependency on awk.
9897
9898 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
9899             Ian Lance Taylor  <iant@google.com>
9900
9901         PR rtl-optimization/35604
9902         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
9903         only want to change jump destinations, not eventual label comparisons.
9904
9905 2008-06-16  Jan Hubicka  <jh@suse.cz>
9906
9907         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
9908         syntax errors.
9909         (cgraph_analyze_function): Likewise.
9910
9911 2008-06-16  Jan Hubicka  <jh@suse.cz>
9912
9913         * cgraph.h (cgraph_mark_if_needed): New function.
9914         * cgraphunit.c (cgraph_mark_if_needed): New function.
9915         * c-decl.c (duplicate_decl): Use it.
9916
9917 2008-06-16  Jan Hubicka  <jh@suse.cz>
9918
9919         * cgraph.c (cgraph_add_new_function): When in expansion state, do
9920         lowering.
9921
9922 2008-06-16  Jan Hubicka  <jh@suse.cz>
9923
9924         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
9925
9926 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
9927             Kazu Hirata  <kazu@codesourcery.com>
9928             Maxim Kuvyrkov  <maxim@codesourcery.com
9929
9930         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
9931         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
9932         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
9933         EXTRA_SPEC_FUNCTIONS.
9934         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
9935         (DRIVER_SELF_SPECS): Adjust.
9936         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
9937         * config/mips/st.h, config/mips/t-st: New.
9938         * config/mips/driver-native.c, config/mips/x-native: New.
9939         * doc/invoke.texi (MIPS): Document 'native' value for -march and
9940         -mtune options.
9941
9942 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9943
9944         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
9945         from it.
9946         (ISA_HAS_FP_CONDMOVE): New macro.
9947         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
9948         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
9949         (ISA_HAS_NMADD3_NMSUB3): New macro.
9950         * config/mips/mips.c (mips_rtx_costs): Update.
9951         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
9952         compiling for ST Loongson 2E/2F.
9953         (madd<mode>): Rename to madd4<mode>.  Update.
9954         (madd3<mode>): New pattern.
9955         (msub<mode>): Rename to msub4<mode>.  Update.
9956         (msub3<mode>): New pattern.
9957         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
9958         (nmadd3<mode>): New pattern.
9959         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
9960         (nmadd3<mode>_fastmath): New pattern.
9961         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
9962         (nmsub3<mode>): New pattern.
9963         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
9964         (nmsub3<mode>_fastmath): New pattern.
9965         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
9966
9967 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
9968
9969         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
9970         (DF_REF_INSN_INFO): New.
9971         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
9972         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
9973         with a NULL DF_REF_INSN_INFO.
9974         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
9975         DF_INSN_SET.
9976         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
9977         DF_INSN_INFO_EQ_USES): New.
9978         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
9979         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
9980         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
9981         * df-core.c: Update comment for above changes.
9982         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
9983         DF_INSN_UID_* macros.
9984         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
9985         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
9986         insn rtx.  Update all callers.
9987         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
9988         df_ref_create_structure, df_insn_refs_collect): Likewise.
9989         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
9990         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
9991         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
9992         macros to access the insn refs.
9993         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
9994         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
9995         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
9996         for accessing the refs.
9997         (try_fwprop_subst): Likewise.
9998         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
9999         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
10000         for accessing the refs.
10001         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
10002         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
10003         to look at the insn refs.
10004         (record_uses): Likewise.
10005         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
10006         function anymore.
10007         (mark_artificial_uses): Don't mark_insn for artificial refs.
10008         (mark_reg_rependencies): Likewise.
10009
10010         * doc/rtl.texi: Remove documentation of ADDRESSOF.
10011
10012 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10013
10014         * configure: Regenerate.
10015
10016 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
10017
10018         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
10019         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10020         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10021
10022 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
10023
10024         * config/avr/avr.c (avr_mcu_t): Add attiny167.
10025         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10026         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10027
10028 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
10029
10030         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
10031         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10032         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10033
10034 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
10035
10036         * tree-ssa-sccvn.c: Fix format of comments.
10037
10038 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
10039
10040         * cgraph.c: Remove unneeded forward declarations of eq_node()
10041         and hash_node().
10042
10043 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
10044
10045         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
10046         REG_RETVAL notes.
10047         (see_update_relevancy): Likewise.
10048         * fwprop.c (try_fwprop_subst): Likewise.
10049         * rtlanal.c (noop_move_p): Likewise.
10050         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
10051         notes to non-existing libcall blocks.
10052         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
10053         Remove orig_set.
10054         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
10055         (dead_libcall_p): Remove.
10056         (delete_trivially_dead_insns): Don't use it.
10057         * web.c (union_defs): Remove comment about keeping nops.
10058         * gcse.c (hash_scan_insn): Don't take libcall pointers.
10059         (compute_hash_table_work): Don't track libcall notes.
10060         (do_local_cprop): Don't take libcall pointers.  Don't update
10061         libcall notes.
10062         (adjust_libcall_notes): Deleted.
10063         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
10064         ever have existed in the first place).
10065         (replace_store_insn): Don't try to remove libcall notes.
10066         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
10067         (resolve_reg_notes): Don't call them.
10068         (resolve_simple_move): Likewise.
10069         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
10070         Don't remove REG_RETVAL notes.
10071         * emit-rtl.c (try_split): Don't update libcall notes.
10072         (emit_copy_of_insn_after): Dito.
10073         * cselib.c (cselib_current_insn_in_libcall): Remove.
10074         (cselib_process_insn): Don't set/clear it.
10075         (new_elt_loc_list): Don't record it.
10076         (cselib_init): Don't initialize it.
10077         * cselib.c (struct elt_loc_list): Remove in_libcall field.
10078         * loop-invariant.c (find_invariant_insn): Don't look for libcall
10079         notes.
10080         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
10081         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
10082         (init_deps): Don't initialize it.
10083         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
10084         * combine.c (delete_noop_moves): Don't update libcall notes.
10085         (can_combine_p): Remove now pointless #if 0 block.
10086         (try_combine): Remove another obsolete #if 0 block.
10087         (distribute_notes): Don't distribute libcall notes.
10088         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
10089         * dce.c (libcall_dead_p): Remove.
10090         (delete_unmarked_insns): Don't handle libcall blocks.
10091         (preserve_libcall_for_dce): Remove.
10092         (prescan_insns_for_dce): Don't special-case libcall block insns.
10093         * reload1 (reload): Don't handle libcall notes.
10094         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
10095         documentation.
10096
10097 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
10098
10099         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
10100         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10101         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10102
10103 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
10104
10105         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
10106         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10107         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10108
10109 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10110
10111         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
10112
10113 2008-06-16  Ira Rosen  <irar@il.ibm.com>
10114
10115         PR tree-optimization/36493
10116         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
10117         the arguments list. Use VECTYPE to create vector pointer.
10118         (vectorizable_store): Fail if accesses through a pointer to vectype
10119         do not alias the original memory reference operands.
10120         Call vect_create_data_ref_ptr without the removed argument.
10121         (vectorizable_load): Likewise.
10122         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
10123         removed argument.
10124
10125 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
10126
10127         PR target/36336
10128         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
10129         reg_equiv_constant.
10130
10131 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
10132
10133         * config/mips/loongson2ef.md: New file.
10134         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
10135         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
10136         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
10137         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
10138         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
10139         and loongson_2f.
10140         (loongson2ef.md): New include.
10141         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
10142         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
10143         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
10144         (loongson_gt_<mode>, loongson_extract_halfword)
10145         (loongson_insert_halfword_0, loongson_insert_halfword_2)
10146         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
10147         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
10148         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
10149         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
10150         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
10151         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
10152         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
10153         (vec_interleave_low<mode>): Define type attribute.
10154         * config/mips/mips.c (mips_ls2): New static variable.
10155         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
10156         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
10157         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
10158         Implement target scheduling hooks.
10159         (mips_multipass_dfa_lookahead): Update to handle tuning for
10160         Loongson 2E/2F.
10161         (mips_sched_init): Initialize data for Loongson scheduling.
10162         (mips_ls2_variable_issue): New static function.
10163         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
10164         Add sanity check.
10165         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
10166         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
10167         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
10168         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
10169         Handle ST Loongson 2E/2F cores.
10170         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
10171
10172 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10173
10174         * omp-low.c (extract_omp_for_data): Fix comment typo.
10175         * c.opt: Fix typo.
10176
10177 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10178
10179         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
10180         FIXME note about gcc/config.guess.
10181         * doc/options.texi (Option file format): Remove non-ASCII bytes.
10182         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
10183         * doc/cppopts.texi: Likewise.
10184         * doc/extend.texi: Likewise.
10185         * doc/gcc.texi: Likewise.
10186         * doc/gccint.texi: Likewise.
10187         * doc/gcov.texi: Likewise.
10188         * doc/gty.texi: Likewise.
10189         * doc/hostconfig.texi: Likewise.
10190         * doc/install.texi: Likewise.
10191         * doc/invoke.texi: Likewise.
10192         * doc/loop.texi: Likewise.
10193         * doc/makefile.texi: Likewise.
10194         * doc/md.texi: Likewise.
10195         * doc/passes.texi: Likewise.
10196         * doc/tm.texi: Likewise.
10197         * doc/tree-ssa.texi: Likewise.
10198         * doc/trouble.texi: Likewise.
10199
10200 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
10201             Nathan Sidwell  <nathan@codesourcery.com>
10202             Maxim Kuvyrkov  <maxim@codesourcery.com>
10203             Richard Sandiford  <rdsandiford@googlemail.com>
10204
10205         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
10206         * config/mips/mips-protos.h (mips_expand_vector_init): New.
10207         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
10208         builtins.
10209         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
10210         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
10211         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
10212         V8QImode cases.
10213         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
10214         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
10215         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
10216         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
10217         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
10218         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
10219         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
10220         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
10221         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
10222         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
10223         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
10224         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
10225         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
10226         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
10227         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
10228         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
10229         (mips_builtins): Add Loongson builtins.
10230         (mips_loongson_2ef_bdesc): New.
10231         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
10232         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
10233         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
10234         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
10235         New.
10236         (mips_expand_vector_init): New.
10237         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
10238         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
10239         if appropriate.
10240         * config/mips/mips.md: Add unspec numbers for Loongson
10241         builtins.  Include loongson.md.
10242         (MOVE64): Include Loongson vector modes.
10243         (SPLITF): Include Loongson vector modes.
10244         (HALFMODE): Handle Loongson vector modes.
10245         * config/mips/loongson.md: New.
10246         * config/mips/loongson.h: New.
10247         * config.gcc: Add loongson.h header for mips*-*-* targets.
10248         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
10249
10250 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
10251
10252         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
10253         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
10254         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
10255         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
10256         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
10257         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
10258         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
10259         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
10260         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
10261         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
10262         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
10263         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
10264         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
10265         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
10266         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
10267         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
10268         Remove use_fixproto=yes.
10269         (ia64*-*-hpux*): Remove comment about using fixproto.
10270         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
10271
10272 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10273
10274         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
10275         library rebuilds.
10276         * configure: Regenerate.
10277
10278 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
10279
10280         PR middle-end/36520
10281         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
10282         before evaluating it.
10283
10284 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
10285
10286         PR c/36507
10287         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
10288         nested inline functions.
10289         (start_decl, start_function): Don't invert DECL_EXTERNAL
10290         for nested inline functions.
10291
10292 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
10293
10294         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
10295         splits that must be made for correctness.
10296
10297 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
10298
10299         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
10300         (AVAIL_NON_MIPS16): Likewise.
10301         (mips_builtin_description): Replace target_flags with a predicate.
10302         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
10303         (dspr2_32): New availability predicates.
10304         (MIPS_BUILTIN): New macro.
10305         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
10306         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
10307         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
10308         Replace the TARGET_FLAGS parameters with AVAIL parameters.
10309         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
10310         (mips_dsp_32only_bdesc): Merge into...
10311         (mips_builtins): ...this new array.
10312         (mips_bdesc_map, mips_bdesc_arrays): Delete.
10313         (mips_init_builtins): Update after above changes.
10314         (mips_expand_builtin_1): Merge into...
10315         (mips_expand_builtin): ...here and update after above changes.
10316
10317 2008-06-12  Paul Brook  <paul@codesourcery.com>
10318
10319         * longlong.h (__arm__): Define count_leading_zeros.
10320         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
10321         (clzsi2, clzdi2): New functions.
10322         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
10323         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
10324         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
10325         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
10326         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
10327         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
10328         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
10329         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
10330         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
10331         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
10332
10333 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
10334
10335         * config/m68k/m68k.c (m68k_tune_flags): New.
10336         (override_options): Compute m68k_tune_flags.
10337         (MULL_COST, MULW_COST): Update for various variants of CFV2.
10338         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
10339
10340 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
10341
10342         PR middle-end/36506
10343         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
10344
10345 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
10346
10347         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
10348         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
10349
10350 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
10351
10352         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
10353         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
10354
10355 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
10356
10357         PR middle-end/36506
10358         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
10359         reductions.
10360
10361 2008-06-12  Richard Guenther  <rguenther@suse.de>
10362
10363         PR tree-optimization/36345
10364         * tree-flow.h (struct ptr_info_def): Align escape_mask,
10365         add memory_tag_needed flag.
10366         (may_alias_p): Declare.
10367         * tree-ssa-alias.c (may_alias_p): Export.
10368         (set_initial_properties): Use memory_tag_needed flag.
10369         (update_reference_counts): Likewise.
10370         (reset_alias_info): Reset memory_tag_needed flag.
10371         (create_name_tags): Check memory_tag_needed flag.
10372         (dump_points_to_info_for): Dump it.
10373         * tree-ssa-structalias.c (struct variable_info): Remove
10374         directly_dereferenced flag.
10375         (new_var_info): Do not initialize it.
10376         (process_constraint_1): Do not set it.
10377         (update_alias_info): Set is_dereferenced flag.
10378         (set_uids_in_ptset): Use may_alias_p.
10379         (set_used_smts): Check memory_tag_needed flag.
10380         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
10381         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
10382         memory_tag_needed flag.
10383         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
10384         from broken design.
10385
10386 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
10387
10388         * config/i386/i386.c (ix86_compute_frame_layout): Disable
10389         red zone for w64 abi.
10390         (ix86_expand_prologue): Likewise.
10391         (ix86_force_to_memory): Likewise.
10392         (ix86_free_from_memory): Likewise.
10393
10394 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
10395
10396         PR target/36425
10397         * config/rs6000/rs6000.c (rs6000_override_options): Set
10398         rs6000_isel conditionally to the absence of comand line override.
10399         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10400         Remove duplicate rs6000_isel setting.
10401         * config/rs6000/eabispe.h: Ditto.
10402
10403 2008-06-11  Richard Guenther  <rguenther@suse.de>
10404
10405         * alias.c (get_alias_set): Use the element alias-set for arrays.
10406         (record_component_aliases): For arrays and vectors do nothing.
10407         * c-common.c (strict_aliasing_warning): Handle the cases
10408         of alias set zero explicitly.
10409         * Makefile.in (dfp.o-warn): Add -Wno-error.
10410
10411 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
10412
10413         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
10414         tune_32 tune_64.
10415         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
10416         tune_32 tune_64 to supported_defaults.  Allow values not
10417         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
10418         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
10419         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
10420         with_cpu_64 to generic for 64-bit-supporting configurations, not
10421         with_cpu.  Remove FIXMEs.
10422         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
10423         --with-arch-64, --with-tune-32, --with-tune-64): Document.
10424         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
10425         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
10426         arch_32 and arch_64.
10427
10428 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
10429             Olivier Hainque  <hainque@adacore.com>
10430
10431         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
10432         Use DECL_SIZE_UNIT to retrieve the size of the field.
10433
10434 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
10435
10436         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
10437         with function calls after declarations.  Lay out
10438         neon_float_type_node before further use.
10439
10440 2008-06-11  Richard Guenther  <rguenther@suse.de>
10441
10442         * tree-flow.h (may_point_to_global_var): Declare.
10443         * tree-ssa-alias.c (may_point_to_global_var): New function.
10444         * tree-ssa-sink.c (is_hidden_global_store): Use it.
10445
10446 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
10447
10448         * configure.ac: Teach that fido supports .debug_line.
10449         * configure: Regenerate.
10450
10451 2008-06-10  Tom Tromey  <tromey@redhat.com>
10452
10453         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
10454         debug hook.
10455
10456 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
10457
10458         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
10459         (encode_decimal64, decode_decimal64, encode_decimal128,
10460         decode_decimal128): Reverse order of 32-bit parts of value if host
10461         and target endianness differ.
10462
10463 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
10464
10465         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
10466         Avoid division by 0.
10467         (tree_mod_pow2_value_transform): Likewise.
10468         (tree_ic_transform): Likewise.
10469         (tree_stringops_transform): Likewise.
10470         (tree_mod_subtract_transform): Likewise.
10471         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
10472         (copy_edges_for_bb): Likewise.
10473         (initialize_cfun): Likewise.
10474
10475 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
10476
10477         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
10478         nonmemory_operand. Add "N" operand constraint.
10479         (*btsi): Ditto.
10480         (*jcc_btdi_mask_rex64): New instruction and split pattern.
10481         (*jcc_btsi_mask): Ditto.
10482         (*jcc_btsi_mask_1): Ditto.
10483
10484 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
10485
10486         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
10487         TYPE_CANONICAL for copied element type.
10488
10489 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
10490
10491         PR target/36473
10492         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
10493         Add m_CORE2 and m_GENERIC.
10494         * config/i386/predicates.md (bt_comparison_operator): New predicate.
10495         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
10496         (*btsi): Ditto.
10497         (*jcc_btdi_rex64): New instruction and split pattern.
10498         (*jcc_btsi): Ditto.
10499         (*jcc_btsi_1): Ditto.
10500         (*btsq): Fix Intel asm dialect operand order.
10501         (*btrq): Ditto.
10502         (*btcq): Ditto.
10503
10504 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
10505
10506         PR middle-end/36447
10507         * simplify-rtx.c (simplify_subreg): Add check for shift count
10508         greater than size.
10509
10510 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
10511
10512         * doc/md.texi: Synchronize with later constraints.md change.
10513         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
10514         with a C implementation.
10515         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
10516         MFLO handling.
10517         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
10518         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
10519         when moving to and from MD_REGNUM.
10520         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
10521         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
10522         Handle byte and halfword moves.
10523         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
10524         separately.
10525         * config/mips/constraints.md (h): Turn into NO_REGS.
10526         (l, x): Update documentation.
10527         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
10528         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
10529         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
10530         (HILO): New mode iterator.
10531         (MOVE128): Add TI.
10532         (any_div): New code iterator.
10533         (u): Extend code attribute to div and udiv.
10534         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
10535         d_operand in the splitters.  Remove redundant CONST_INT checks.
10536         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
10537         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
10538         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
10539         accordingly, using normal moves instead of unspecs to move LO into
10540         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
10541         (<u>mulsidi3): Handle expansion in C code.
10542         (<u>mulsidi3_32bit_internal): Rename to...
10543         (<u>mulsidi3_32bit): ...this.
10544         (<u>mulsidi3_32bit_r4000): Fix insn separator.
10545         (*<u>mulsidi3_64bit): Rename to...
10546         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
10547         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
10548         to set LO and HI to the multiplication result.  Use a normal move
10549         for MFLO and an unspec for MFHI.
10550         (*<u>mulsidi3_64bit_parts): Replace with...
10551         (<u>mulsidi3_64bit_hilo): ...this new instruction.
10552         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
10553         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
10554         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
10555         instead of HI.  Split the instruction into a separate multiplication
10556         and MFHI if !TARGET_FIX_R4000.
10557         (<su>muldi3_highpart): Likewise.
10558         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
10559         and the "=h" clobber.
10560         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
10561         (<u>mulditi3): New expander.
10562         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
10563         (madsi): Remove "=h" clobber.
10564         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
10565         Force the modulus result to be a GPR and split the instruction into
10566         a division followed by an MFHI after reload.
10567         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
10568         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
10569         the MIPS16 HIGH define_split.
10570         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
10571         of acc<->gpr moves to "multi".
10572         (*movdi_64bit): Replace the single "x" alternative with
10573         alternatives for moving into and out of "a".
10574         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
10575         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
10576         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
10577         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
10578         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
10579         (movti): New expander.
10580         (*movti, *movti_mips16): New insns.
10581         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
10582         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
10583         (mthi<GPR:mode>_<HILO:mode>): Likewise.
10584         * config/mips/predicates.md (fpr_operand): Delete.
10585         (d_operand): New predicate.
10586
10587 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
10588
10589         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
10590         failure on some Bourne shells.
10591         (x86_64-*-*): Ditto.
10592
10593 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
10594
10595         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
10596
10597 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10598
10599         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
10600         (sparc-sun-solaris2*): Likewise.
10601
10602 2008-06-09  Arnaud Charlet  <charlet@adacore.com
10603
10604         * doc/install.texi: Update requirements to build the Ada compiler.
10605
10606 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10607
10608         * df-scan.c (struct df_scan_problem_data): Remove the
10609         mw_link_pool alloc pool.
10610         (df_scan_free_internal): Don't free it.
10611         (df_scan_alloc): Don't allocate it.
10612         * df.h (struct df_link): Update comment.
10613
10614 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
10615
10616         * except.h: Correct checks for when SJLJ exceptions must be used.
10617
10618 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10619
10620         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
10621         default.
10622
10623 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
10624
10625         PR tree-optimization/36218
10626         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
10627         configure for the build system.
10628         (BUILD_LDFLAGS): Define.
10629         * configure: Regenerate.
10630         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
10631
10632 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
10633
10634         PR target/36424
10635         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
10636         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
10637         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
10638
10639 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
10640
10641         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
10642
10643 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
10644
10645         * config.gcc (Obsolete configurations): Remove list of
10646         configurations.
10647         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
10648         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
10649         targets matched by those patterns.
10650         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
10651         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
10652         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
10653         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
10654         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10655         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
10656         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
10657         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
10658         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
10659         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
10660         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
10661         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
10662         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
10663         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
10664         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
10665         Make code for Solaris 7 and greater unconditional for Solaris.
10666         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
10667         Remove --with-* handling.
10668         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
10669         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
10670         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
10671         LINK_OS_WINDISS_SPEC): Remove.
10672         * config/rs6000/sysv4.opt (mwindiss): Remove.
10673         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
10674         * configure: Regenerate.
10675         * doc/cpp.texi: Don't mention BeOS.
10676         * doc/extend.texi (interrupt): Don't mention MS1.
10677         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
10678         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
10679         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
10680         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
10681         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
10682         Remove.
10683         * doc/invoke.texi (MT Options): Remove.
10684         (-mwindiss): Remove.
10685         (CRIS Options): Remove cris-axis-aout references.
10686         (HPPA Options): Don't mention hppa1.1-*-pro.
10687         * doc/md.texi: (MorphoTech family): Remove.
10688         * libgcc2.c: Don't handle UWIN.
10689         * config/alpha/t-unicosmk: Remove.
10690         * config/alpha/unicosmk.h: Remove.
10691         * config/arm/kaos-arm.h: Remove.
10692         * config/arm/kaos-strongarm.h: Remove.
10693         * config/arm/strongarm-coff.h: Remove.
10694         * config/arm/strongarm-elf.h: Remove.
10695         * config/arm/strongarm-pe.h: Remove.
10696         * config/arm/t-strongarm-pe: Remove.
10697         * config/arm/t-xscale-coff: Remove.
10698         * config/arm/t-xscale-elf: Remove.
10699         * config/arm/xscale-coff.h: Remove.
10700         * config/arm/xscale-elf.h: Remove.
10701         * config/chorus.h: Remove.
10702         * config/cris/aout.h: Remove.
10703         * config/cris/aout.opt: Remove.
10704         * config/cris/t-aout: Remove.
10705         * config/i386/beos-elf.h: Remove.
10706         * config/i386/kaos-i386.h: Remove.
10707         * config/i386/ptx4-i.h: Remove.
10708         * config/i386/sco5.h: Remove.
10709         * config/i386/sco5.opt: Remove.
10710         * config/i386/sysv4-cpp.h: Remove.
10711         * config/i386/sysv5.h: Remove.
10712         * config/i386/t-beos: Remove.
10713         * config/i386/t-sco5: Remove.
10714         * config/i386/t-uwin: Remove.
10715         * config/i386/uwin.asm: Remove.
10716         * config/i386/uwin.h: Remove.
10717         * config/kaos.h: Remove.
10718         * config/mips/windiss.h: Remove.
10719         * config/mt: Remove directory.
10720         * config/pa/pa-osf.h: Remove.
10721         * config/pa/pa-pro-end.h: Remove.
10722         * config/pa/t-pro: Remove.
10723         * config/ptx4.h: Remove.
10724         * config/rs6000/beos.h: Remove.
10725         * config/rs6000/kaos-ppc.h: Remove.
10726         * config/rs6000/t-beos: Remove.
10727         * config/rs6000/windiss.h: Remove.
10728         * config/sh/kaos-sh.h: Remove.
10729         * config/sol2-6.h: Remove.
10730         * config/sparc/sol26-sld.h: Remove.
10731         * config/sparc/sysv4-only.h: Remove.
10732         * config/vax/bsd.h: Remove.
10733         * config/vax/t-memfuncs: Remove.
10734         * config/vax/ultrix.h: Remove.
10735         * config/vax/vaxv.h: Remove.
10736         * config/windiss.h: Remove.
10737
10738 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
10739
10740         PR rtl-optimization/36438
10741         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
10742         for vector shifts with constant scalar shift operands.
10743
10744 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
10745
10746         * doc/invoke.texi: Document -march=xlr.
10747         * config/mips/xlr.md: New file.
10748         * config/mips/mips.md: Include it.
10749         (cpu): Add "xlr".
10750         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
10751         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
10752         (mips_rtx_cost_data): Likewise.
10753
10754 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
10755
10756         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
10757         PRE_INC and PRE_DEC cases.
10758
10759 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR rtl-optimization/36419
10762         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
10763         the emitting jump insn.
10764
10765         PR target/36362
10766         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
10767         is not bool, boolify the whole *expr_p and convert to the desired type.
10768
10769 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
10770
10771         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
10772         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
10773         Add omp_private_outer_ref hook, add another argument to
10774         omp_clause_default_ctor hook.
10775         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
10776         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
10777         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
10778         hook_tree_tree_tree_tree_null.
10779         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
10780         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
10781         * hooks.c (hook_tree_tree_tree_tree_null): New function.
10782         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
10783         * tree.def (OMP_TASK): New tree code.
10784         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
10785         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
10786         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
10787         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
10788         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
10789         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
10790         OMP_CLAUSE_COLLAPSE_EXPR): Define.
10791         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
10792         (OMP_DIRECTIVE_P): Add OMP_TASK.
10793         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
10794         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
10795         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
10796         and OMP_CLAUSE_UNTIED entries.
10797         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
10798         num_ops to 2.
10799         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
10800         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
10801         * tree-pretty-print.c (dump_omp_clause): Handle
10802         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
10803         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
10804         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
10805         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
10806         warning about unsigned iterators.  Change decl/init/cond/incr
10807         arguments to TREE_VECs, check arguments for all collapsed loops.
10808         (c_finish_omp_taskwait): New function.
10809         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
10810         ws_clauses.
10811         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
10812         default_function_array_conversion on init.  Add par_clauses argument.
10813         If decl is present in parallel's lastprivate clause, change it to
10814         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
10815         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
10816         collapse count in clauses.
10817         (c_parser_omp_for, c_parser_omp_parallel): Adjust
10818         c_parser_omp_for_loop callers.
10819         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
10820         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
10821         (c_parser_omp_clause_name): Handle collapse and untied clauses.
10822         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
10823         functions.
10824         (c_parser_omp_clause_schedule): Handle schedule(auto).
10825         Include correct location in the error message.
10826         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
10827         and PRAGMA_OMP_CLAUSE_UNTIED.
10828         (OMP_TASK_CLAUSE_MASK): Define.
10829         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
10830         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
10831         * tree-nested.c (convert_nonlocal_omp_clauses,
10832         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
10833         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
10834         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
10835         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
10836         OMP_CLAUSE_DECL.
10837         (conver_nonlocal_reference, convert_local_reference,
10838         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
10839         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
10840         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
10841         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
10842         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
10843         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
10844         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
10845         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
10846         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
10847         OMP_CLAUSE_UNTIED.
10848         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
10849         * c-common.h (c_finish_omp_taskwait): New prototype.
10850         * gimple-low.c (lower_stmt): Handle OMP_TASK.
10851         * tree-parloops.c (create_parallel_loop): Create 1 entry
10852         vectors for OMP_FOR_{INIT,COND,INCR}.
10853         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
10854         (make_edges): Handle OMP_TASK.
10855         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
10856         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
10857         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
10858         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
10859         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
10860         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
10861         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
10862         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
10863         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
10864         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
10865         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
10866         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
10867         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
10868         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
10869         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
10870         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
10871         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
10872         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
10873         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
10874         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
10875         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
10876         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
10877         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
10878         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
10879         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
10880         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
10881         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
10882         original iterator is present in lastprivate clause or if
10883         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
10884         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
10885         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
10886         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
10887         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
10888         if it is set, lookup var in outer contexts too.  Handle
10889         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
10890         to be implicitly determined firstprivate for task regions.
10891         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
10892         if it is set, lookup var in outer contexts too.  Set
10893         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
10894         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
10895         OMP_CLAUSE_UNTIED.  Take region_type as last argument
10896         instead of in_parallel and in_combined_parallel.
10897         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
10898         Adjust callers.
10899         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
10900         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
10901         (new_omp_context): Set default_kind to
10902         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
10903         (omp_region_type): New enum.
10904         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
10905         fields, add region_type.
10906         (new_omp_context): Take region_type as argument instead of is_parallel
10907         and is_combined_parallel.
10908         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
10909         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
10910         ctx->is_combined_parallel checks.
10911         (gimplify_omp_task): New function.
10912         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
10913         OMP_CLAUSE_UNTIED.
10914         * omp-low.c (extract_omp_for_data): Use schedule(static)
10915         for schedule(auto).  Handle pointer and unsigned iterators.
10916         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
10917         Add loops argument.  Extract data for collapsed OMP_FOR loops.
10918         (expand_parallel_call): Assert sched_kind isn't auto,
10919         map runtime schedule to index 3.
10920         (struct omp_for_data_loop): New type.
10921         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
10922         Add loop, loops, collapse and iter_type fields.
10923         (workshare_safe_to_combine_p): Disallow combined for if
10924         iter_type is unsigned long long.  Don't combine collapse > 1 loops
10925         unless all bounds and steps are constant.  Adjust extract_omp_for_data
10926         caller.
10927         (expand_omp_for_generic): Handle pointer, unsigned and long long
10928         iterators.  Handle collapsed OMP_FOR loops.  Adjust
10929         for struct omp_for_data changes.  If libgomp function doesn't return
10930         boolean_type_node, add comparison of the return value with 0.
10931         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
10932         pointer, unsigned and long long iterators.  Adjust for struct
10933         omp_for_data changes.
10934         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
10935         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
10936         unsigned long long.  Allocate loops array, pass it to
10937         extract_omp_for_data.  For collapse > 1 loops use always
10938         expand_omp_for_generic.
10939         (omp_context): Add sfield_map and srecord_type fields.
10940         (is_task_ctx, lookup_sfield): New functions.
10941         (use_pointer_for_field): Use is_task_ctx helper.  Change first
10942         argument's type from const_tree to tree.  Clarify comment.
10943         In OMP_TASK disallow copy-in/out sharing.
10944         (build_sender_ref): Call lookup_sfield instead of lookup_field.
10945         (install_var_field): Add mask argument.  Populate both record_type
10946         and srecord_type if needed.
10947         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
10948         in srecord_type.
10949         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
10950         and DECL_FIELD_OFFSET.
10951         (scan_sharing_clauses): Adjust install_var_field callers.  For
10952         firstprivate clauses on explicit tasks allocate the var by value in
10953         record_type unconditionally, rather than by reference.
10954         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
10955         Use is_taskreg_ctx instead of is_parallel_ctx.
10956         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
10957         (create_omp_child_function_name): Add task_copy argument, use
10958         *_omp_cpyfn* names if it is true.
10959         (create_omp_child_function): Add task_copy argument, if true create
10960         *_omp_cpyfn* helper function.
10961         (scan_omp_parallel): Adjust create_omp_child_function callers.
10962         Rename parallel_nesting_level to taskreg_nesting_level.
10963         (scan_omp_task): New function.
10964         (lower_rec_input_clauses): Don't run constructors for firstprivate
10965         explicit task vars which are initialized by *_omp_cpyfn*.
10966         Pass outer var ref to omp_clause_default_ctor hook if
10967         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
10968         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
10969         OMP_CLAUSE_REDUCTION_INIT.
10970         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
10971         avoid duplicate setting of fields.  Handle
10972         OMP_CLAUSE_PRIVATE_OUTER_REF.
10973         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
10974         copy-out if TREE_READONLY, only copy-in.
10975         (expand_task_copyfn): New function.
10976         (expand_task_call): New function.
10977         (struct omp_taskcopy_context): New type.
10978         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
10979         New functions.
10980         (lower_omp_parallel): Rename to...
10981         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
10982         Call create_task_copyfn if srecord_type is needed.  Adjust
10983         sender_decl type.
10984         (task_shared_vars): New variable.
10985         (check_omp_nesting_restrictions): Warn if work-sharing,
10986         barrier, master or ordered region is closely nested inside OMP_TASK.
10987         Add warnings for barrier if closely nested inside of work-sharing,
10988         ordered, or master region.
10989         (scan_omp_1): Call check_omp_nesting_restrictions even for
10990         GOMP_barrier calls.  Rename parallel_nesting_level to
10991         taskreg_nesting_level.  Handle OMP_TASK.
10992         (lower_lastprivate_clauses): Even if some lastprivate is found on a
10993         work-sharing construct, continue looking for them on parent parallel
10994         construct.
10995         (lower_omp_for_lastprivate): Add lastprivate clauses
10996         to the beginning of dlist rather than end.  Adjust for struct
10997         omp_for_data changes.
10998         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
10999         not after it.  Handle collapsed OMP_FOR loops, adjust for
11000         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
11001         (get_ws_args_for): Adjust extract_omp_for_data caller.
11002         (scan_omp_for): Handle collapsed OMP_FOR
11003         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
11004         (lower_omp_single_simple): If libgomp function doesn't return
11005         boolean_type_node, add comparison of the return value with 0.
11006         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
11007         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
11008         (parallel_nesting_level): Rename to...
11009         (taskreg_nesting_level): ... this.
11010         (is_taskreg_ctx): New function.
11011         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
11012         of is_parallel_ctx.
11013         (execute_lower_omp): Rename parallel_nesting_level to
11014         taskreg_nesting_level.
11015         (expand_omp_parallel): Rename to...
11016         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
11017         Call omp_task_call for OMP_TASK regions.
11018         (expand_omp): Adjust caller, handle OMP_TASK.
11019         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
11020
11021         * bitmap.c (bitmap_default_obstack_depth): New variable.
11022         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
11023         if argument is NULL and bitmap_default_obstack is already initialized.
11024         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
11025         at the end.
11026         * matrix-reorg.c (matrix_reorg): Likewise.
11027
11028 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
11029
11030         * config/i386/i386.md (*indirect_jump): Macroize using P
11031         mode iterator.  Remove !TARGET_64BIT from insn constraints.
11032         (*tablejump_1): Ditto.
11033         (*indirect_jump_rex64): Remove insn pattern.
11034         (*tablejump_1_rex64): Ditto.
11035         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
11036         and eh_return_si insn patterns.
11037
11038 2008-06-06  Richard Guenther  <rguenther@suse.de>
11039
11040         * tree-ssa-structalias.c (merge_smts_into): Remove.
11041         (find_what_p_points_to): Do not bother to compute the
11042         points-to set for pt_anything pointers.
11043         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
11044         for pt_anything pointers is ok.
11045
11046 2008-06-06  Jan Hubicka  <jh@suse.cz>
11047
11048         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
11049
11050 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11051
11052         * cgraph.c: Fix typos in comments.
11053         (cgraph_availability_names): Fix string typo.
11054         * fold-const.c: Fix typos in comments.
11055         (fold_binary): Fix typo in warning.
11056         * genautomata.c: Fix typos in comments.
11057         (check_presence_pattern_sets): Fix typo in local variable.
11058         (output_description): Fix typo in output.
11059         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
11060         * hwint.h: Likewise.
11061         * matrix-reorg.c (check_allocation_function): Likewise.
11062         * omega.c (smooth_weird_equations): Likewise.
11063         * auto-inc-dec.c: Fix typos in comments.
11064         * bb-reorder.c: Likewise.
11065         * builtins.c: Likewise.
11066         * c-common.c: Likewise.
11067         * c-cppbuiltin.c: Likewise.
11068         * c-parser.c: Likewise.
11069         * c-pretty-print.c: Likewise.
11070         * cfgcleanup.c: Likewise.
11071         * cfgexpand.c: Likewise.
11072         * cfghooks.c: Likewise.
11073         * cfglayout.c: Likewise.
11074         * cfgloopmanip.c: Likewise.
11075         * cgraphunit.c: Likewise.
11076         * coverage.c: Likewise.
11077         * dbxout.c: Likewise.
11078         * df-byte-scan.c: Likewise.
11079         * df-core.c: Likewise.
11080         * df-problems.c: Likewise.
11081         * df-scan.c: Likewise.
11082         * dfp.c: Likewise.
11083         * dominance.c: Likewise.
11084         * domwalk.c: Likewise.
11085         * dse.c: Likewise.
11086         * dwarf2out.c: Likewise.
11087         * emit-rtl.c: Likewise.
11088         * et-forest.c: Likewise.
11089         * function.c: Likewise.
11090         * function.h: Likewise.
11091         * gcc.c: Likewise.
11092         * gcov-io.c: Likewise.
11093         * gcov.c: Likewise.
11094         * gcse.c: Likewise.
11095         * genattrtab.c: Likewise.
11096         * ggc-page.c: Likewise.
11097         * gimplify.c: Likewise.
11098         * gthr-lynx.h: Likewise.
11099         * haifa-sched.c: Likewise.
11100         * ipa-cp.c: Likewise.
11101         * ipa-inline.c: Likewise.
11102         * ipa-prop.h: Likewise.
11103         * ipa-pure-const.c: Likewise.
11104         * ipa-struct-reorg.c: Likewise.
11105         * ipa-struct-reorg.h: Likewise.
11106         * ipa-type-escape.c: Likewise.
11107         * ipa.c: Likewise.
11108         * loop-doloop.c: Likewise.
11109         * mips-tfile.c: Likewise.
11110         * mkmap-flat.awk: Likewise.
11111         * mkmap-symver.awk: Likewise.
11112         * modulo-sched.c: Likewise.
11113         * omp-low.c: Likewise.
11114         * optabs.c: Likewise.
11115         * optabs.h: Likewise.
11116         * opts.c: Likewise.
11117         * passes.c: Likewise.
11118         * postreload-gcse.c: Likewise.
11119         * postreload.c: Likewise.
11120         * predict.c: Likewise.
11121         * pretty-print.h: Likewise.
11122         * profile.c: Likewise.
11123         * protoize.c: Likewise.
11124         * ra-conflict.c: Likewise.
11125         * real.c: Likewise.
11126         * recog.c: Likewise.
11127         * regclass.c: Likewise.
11128         * regs.h: Likewise.
11129         * reload.c: Likewise.
11130         * rtl-error.c: Likewise.
11131         * rtlanal.c: Likewise.
11132         * scan.h: Likewise.
11133         * sched-rgn.c: Likewise.
11134         * see.c: Likewise.
11135         * stmt.c: Likewise.
11136         * target.h: Likewise.
11137         * tree-dfa.c: Likewise.
11138         * tree-eh.c: Likewise.
11139         * tree-flow-inline.h: Likewise.
11140         * tree-inline.c: Likewise.
11141         * tree-into-ssa.c: Likewise.
11142         * tree-loop-distribution.c: Likewise.
11143         * tree-nested.c: Likewise.
11144         * tree-parloops.c: Likewise.
11145         * tree-pass.h: Likewise.
11146         * tree-pretty-print.c: Likewise.
11147         * tree-profile.c: Likewise.
11148         * tree-scalar-evolution.c: Likewise.
11149         * tree-sra.c: Likewise.
11150         * tree-ssa-alias-warnings.c: Likewise.
11151         * tree-ssa-ccp.c: Likewise.
11152         * tree-ssa-coalesce.c: Likewise.
11153         * tree-ssa-dom.c: Likewise.
11154         * tree-ssa-dse.c: Likewise.
11155         * tree-ssa-forwprop.c: Likewise.
11156         * tree-ssa-live.c: Likewise.
11157         * tree-ssa-live.h: Likewise.
11158         * tree-ssa-loop-im.c: Likewise.
11159         * tree-ssa-loop-ivopts.c: Likewise.
11160         * tree-ssa-loop-niter.c: Likewise.
11161         * tree-ssa-loop-prefetch.c: Likewise.
11162         * tree-ssa-phiopt.c: Likewise.
11163         * tree-ssa-phiprop.c: Likewise.
11164         * tree-ssa-sccvn.c: Likewise.
11165         * tree-ssa-ter.c: Likewise.
11166         * tree-ssa-threadupdate.c: Likewise.
11167         * tree-ssa.c: Likewise.
11168         * tree-vect-analyze.c: Likewise.
11169         * tree-vect-transform.c: Likewise.
11170         * tree-vectorizer.c: Likewise.
11171         * tree-vn.c: Likewise.
11172         * tree-vrp.c: Likewise.
11173         * tree.c: Likewise.
11174         * tree.def: Likewise.
11175         * tree.h: Likewise.
11176         * unwind-dw2-fde.c: Likewise.
11177         * unwind.inc: Likewise.
11178         * value-prof.c: Likewise.
11179         * vmsdbgout.c: Likewise.
11180
11181 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
11182
11183         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
11184         always place FP constants in the TOC for TARGET_POWERPC64.
11185         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
11186
11187 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
11188
11189         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
11190         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
11191         enable for TARGET_E500_DOUBLE.
11192         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
11193         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
11194         floating-point modes like integer modes for E500 double.
11195         (rs6000_legitimate_offset_address_p): Likewise.
11196         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
11197         addressing for DDmode for E500 double.
11198         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
11199         modes as using 64-bits of registers for E500 double.
11200         (spe_build_register_parallel): Do not handle DDmode or TDmode.
11201         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
11202         specially for E500 double.
11203         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
11204         TDmode for E500 double.
11205         (rs6000_gimplify_va_arg): Only handle SDmode in registers
11206         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
11207         (rs6000_split_multireg_move): Do not handle TDmode specially for
11208         E500 double.
11209         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
11210         using 64-bit registers for E500 double.
11211         (emit_frame_save): Do not handle DDmode specially for E500 double.
11212         (gen_frame_mem_offset): Likewise.
11213         (rs6000_function_value): Do not call spe_build_register_parallel
11214         for DDmode or TDmode.
11215         (rs6000_libcall_value): Likewise.
11216         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
11217         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
11218         for E500 double.
11219
11220 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
11221
11222         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
11223         in comments.
11224
11225 2008-06-04  Junjie Gu <jgu@tensilica.com>
11226
11227         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
11228         comparison for frame pointers.
11229
11230 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
11231
11232         PR target/27386
11233         * config/avr/avr.h (PUSH_ROUNDING): Remove.
11234
11235 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
11236
11237         PR target/30243
11238         * builtins.c (expand_builtin_signbit): Don't take lowpart when
11239         register is already smaller or equal to required mode.
11240
11241 2008-06-04  Xinliang David Li  <davidxl@google.com>
11242
11243         * tree-call-cdce.c: New file.
11244         (cond_dead_built_in_calls): New static variable.
11245         (input_domain): New struct.
11246         (check_pow): New function.
11247         (check_builtin_call): Ditto.
11248         (check_target_format): Ditto.
11249         (is_call_dce_candidate): Ditto.
11250         (gen_one_condition): Ditto.
11251         (gen_conditions_for_domain): Ditto.
11252         (get_domain): Ditto.
11253         (gen_conditions_for_pow_cst_base): Ditto.
11254         (gen_conditions_for_pow_int_base): Ditto.
11255         (gen_conditions_for_pow): Ditto.
11256         (get_no_error_domain): Ditto.
11257         (gen_shrink_wrap_conditions): Ditto.
11258         (shrink_wrap_one_built_in_call): Ditto.
11259         (shink_wrap_conditional_dead_built_in_calls): Ditto.
11260         (tree_call_cdce): Ditto.
11261         (gate_call_cdce): Ditto.
11262         (pass_call_cdce): New gimple pass.
11263         * passes.c: (init_optimization_passes): New pass.
11264         * tree-pass.h: New pass declaration.
11265         * opts.c (decode_options): New flag setting.
11266         * common.opt: Add -ftree-builtin-call-dce flag.
11267         * Makefile.in: Add new source file.
11268         * tempvar.def: New tv_id.
11269         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
11270
11271 2008-06-04  Richard Guenther  <rguenther@suse.de>
11272
11273         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
11274         (is_call_clobbered): Always check var_ann->call_clobbered.
11275         (mark_call_clobbered): Always set var_ann->call_clobbered.
11276         (clear_call_clobbered): Always clear var_ann->call_clobbered.
11277         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
11278         (reset_alias_info): Clear call clobbering info on MTAGs and
11279         globals as well.
11280         (set_pt_anything): Set pt_global_mem.
11281         (create_tag_raw): Adjust comment.
11282         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
11283
11284 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
11285             Maxim Kuvyrkov  <maxim@codesourcery.com>
11286
11287         * config/m68k/m68k.opt (mxgot): New option.
11288         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
11289         (m68k_output_addr_const_extra): New.
11290         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
11291         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
11292         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
11293         * doc/invoke.texi (M680x0 Options): Document -mxgot.
11294
11295 2008-06-04  Richard Guenther  <rguenther@suse.de>
11296
11297         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
11298         negative or non-representable offsets.
11299
11300 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
11301
11302         * config/i386/i386.c (ix86_gen_leave): New.
11303         (ix86_gen_pop1): Likewise.
11304         (ix86_gen_add3): Likewise.
11305         (ix86_gen_sub3): Likewise.
11306         (ix86_gen_sub3_carry): Likewise.
11307         (ix86_gen_one_cmpl2): Likewise.
11308         (ix86_gen_monitor): Likewise.
11309         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
11310         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
11311         ix86_gen_one_cmpl2 and ix86_gen_monitor.
11312         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
11313         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
11314         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
11315         (ix86_expand_epilogue): Updated.
11316         (print_operand): Handle integer register operand for 'z'.
11317         (ix86_expand_strlensi_unroll_1): Likewise.
11318         (ix86_expand_strlen): Likewise.
11319         (ix86_expand_builtin): Likewise.
11320         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
11321         mov{q}/mov{l} and add{q}/add{l}.
11322
11323 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
11324
11325         * config/i386/i386.md (P): New mode iterator.
11326         (SFmode push_operand splitter): Macroize DImode and SImode pushes
11327         using P mode iterator.
11328         (DFmode push_operand splitter): Ditto.
11329         (XFmode push_operand splitter): Ditto.
11330         (DFmode float_extend SFmode push_operand splitter): Ditto.
11331         (XFmode float_extend SFmode push_operand splitter): Do not generate
11332         SImode pushes for 64bit target.  Macroize Dimode and SImode
11333         pushes using P mode iterator.
11334         (XFmode float_extend DFmode push_operand splitter): Ditto.
11335
11336 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
11337
11338         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
11339         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
11340         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
11341         return type to int.
11342         (ix86_call_abi_override): Remove check for call_used_regs.
11343
11344 2008-06-03  Richard Guenther  <rguenther@suse.de>
11345
11346         * tree-ssa-structalias.c (find_func_aliases): Add constraints
11347         for the lhs of calls if the return type contains pointers.
11348
11349 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
11350
11351         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
11352         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
11353         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
11354         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
11355         of cfun and DEFAULT_ABI to deceide abi mode.
11356         (DEFAULT_ABI): New.
11357         (REG_PARM_STACK_SPACE): Removed.
11358         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
11359         (STACK_BOUNDARY): Use default target to deceide stack boundary.
11360         * config/i386/i386-protos.h (ix86_cfun_abi): New.
11361         (ix86_function_abi): Likewise.
11362         (ix86_function_type_abi): Likewise.
11363         (ix86_call_abi_override): Likewise.
11364         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
11365         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
11366         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
11367         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
11368         specific defines.
11369         (X86_64_REGPARM_MAX): New.
11370         (X86_64_SSE_REGPARM_MAX): New.
11371         (X64_REGPARM_MAX): New.
11372         (X64_SSE_REGPARM_MAX): New.
11373         (X86_32_REGPARM_MAX): New.
11374         (X86_32_SSE_REGPARM_MAX): New.
11375         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
11376         (ix86_function_regparm): Handle user calling abi.
11377         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
11378         by DEFAULT_ABI versus SYSV_ABI check.
11379         (ix86_reg_parm_stack_space): New.
11380         (ix86_function_type_abi): New.
11381         (ix86_call_abi_override): New.
11382         (ix86_function_abi): New.
11383         (ix86_cfun_abi): New.
11384         (init_cumulative_args): Call abi specific initialization.
11385         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
11386         (function_arg_64): Extend SSE_REGPARM_MAX check.
11387         (function_arg (): Remove TARGET_64BIT_MS_ABI.
11388         (ix86_pass_by_reference): Likewise.
11389         (ix86_function_value_regno_p): Likewise.
11390         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
11391         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
11392         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
11393         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
11394         (setup_incoming_varargs_64): Adjust regparm for call abi.
11395         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
11396         (ix86_va_start): Likewise.
11397         (ix86_gimplify_va_arg): Likewise.
11398         (ix86_expand_prologue): Likewise.
11399         (output_pic_addr_const): Likewise.
11400         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
11401         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
11402         (x86_output_mi_thunk): Likewise.
11403         (x86_function_profiler): Likewise.
11404         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
11405         (SYSV_ABI, MS_ABI): New constants.
11406         (DEFAULT_ABI): New.
11407         (init_regs): Add prototype of function in regclass.c file.
11408         (OVERRIDE_ABI_FORMAT): New.
11409         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
11410         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
11411         (OUTGOING_REG_PARM_STACK_SPACE): New.
11412         (ix86_reg_parm_stack_space): New prototype.
11413         (CUMULATIVE_ARGS): Add call_abi member.
11414         (machine_function): Add call_abi member.
11415         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
11416         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
11417
11418 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
11419
11420         PR target/34879
11421         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
11422         (avr_builtin_setjmp_frame_value): New function.
11423         * config/avr/avr.md (nonlocal_goto_receiver): Define.
11424         (nonlocal_goto): Define.
11425
11426 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
11427
11428         * config/mips/mips.c (mips_emit_loadgp): Return early if
11429         there is nothing do to, otherwise emit a blockage if
11430         !TARGET_EXPLICIT_RELOCS || crtl->profile.
11431         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
11432
11433 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11434
11435         * configure.ac: Drop unneeded backslash ending up in config.in.
11436         * acinclude.m4: Likewise.
11437         * config.in: Regenerate.
11438
11439 2008-05-26  Jan Hubicka  <jh@suse.cz>
11440
11441         * predict.c (maybe_hot_frequency_p): Break out of...
11442         (maybe_hot_bb_p): ... here.
11443         (maybe_hot_edge_p): New.
11444         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
11445         * basic-block.h (maybe_hot_edge_p): Declare.
11446
11447 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
11448
11449         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
11450         (*cmpfp_<mode>_cc): Ditto.
11451         (*fp_jcc_8<mode>_387): Ditto.
11452         (*fop_<MODEF:mode>_2_i387): Ditto.
11453         (*fop_<MODEF:mode>_3_i387): Ditto.
11454         (*fop_xf_2_i387): Ditto.
11455         (*fop_xf_3_i387): Ditto.
11456
11457 2008-06-02  Tomas Bily  <tbily@suse.cz>
11458
11459         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
11460
11461 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11462
11463         * config/mips/mips.c (mips_valid_offset_p): New function.
11464         (mips_valid_lo_sum_p): Likewise.
11465         (mips_classify_address): Use them.
11466         (mips_force_address): New function.
11467         (mips_legitimize_address): Use it.
11468         * config/mips/mips.md (MOVE128): New mode iterator.
11469         (movtf): Require TARGET_64BIT.  Remove empty strings.
11470         (*movtf_internal): Rename to...
11471         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
11472         of "R" and use {,fp}{load,store} attributes instead of "multi".
11473         Use a separate define_split.
11474         (*movtf_mips16): New pattern.
11475
11476 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11477
11478         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
11479         * config/mips/mips.c (mips_expand_before_return): New function.
11480         (mips_expand_epilogue): Call it.
11481         * config/mips/mips.md (return): Turn into a define_expand.
11482         (*return): New insn.
11483
11484 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11485
11486         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
11487         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
11488         functions.  Do not emit uses and clobbers of CONCATs; individually
11489         use and clobber their operands.
11490         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
11491         gen_clobber, emit_use and gen_use.
11492         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
11493         (expand_builtin_return): Likewise.
11494         * cfgbuild.c (count_basic_blocks): Likewise.
11495         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
11496         * explow.c (emit_stack_restore): Likewise.
11497         * expmed.c (extract_bit_field_1): Likewise.
11498         * expr.c (convert_move, emit_move_complex_parts): Likewise.
11499         (emit_move_multi_word, store_constructor): Likewise.
11500         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
11501         (thread_prologue_and_epilogue_insns): Likewise.
11502         * lower-subreg.c (resolve_simple_move): Likewise.
11503         * optabs.c (widen_operand, expand_binop): Likewise.
11504         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
11505         * reload.c (find_reloads): Likewise.
11506         * reload1.c (eliminate_regs_in_insn): Likewise.
11507         * stmt.c (expand_nl_goto_receiver): Likewise.
11508         * config/alpha/alpha.md (builtin_longjmp): Likewise.
11509         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
11510         * config/arm/arm.c (arm_load_pic_register): Likewise.
11511         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
11512         * config/arm/arm.md (untyped_return): Likewise.
11513         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
11514         * config/avr/avr.c (expand_prologue): Likewise.
11515         * config/bfin/bfin.c (do_unlink): Likewise.
11516         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
11517         * config/cris/cris.c (cris_expand_prologue): Likewise.
11518         * config/darwin.c (machopic_indirect_data_reference): Likewise.
11519         (machopic_legitimize_pic_address): Likewise.
11520         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
11521         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
11522         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
11523         (ix86_expand_convert_uns_didf_sse): Likewise.
11524         (ix86_expand_vector_init_general): Likewise.
11525         * config/ia64/ia64.md (eh_epilogue): Likewise.
11526         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
11527         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
11528         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
11529         (config/iq2000/iq2000.c): Likewise.
11530         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
11531         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
11532         (builtin_longjmp): Likewise.
11533         * config/mn10300/mn10300.md (call, call_value): Likewise.
11534         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
11535         * config/pdp11/pdp11.md (abshi2): Likewise.
11536         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11537         * config/s390/s390.c (s390_emit_prologue): Likewise.
11538         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
11539         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
11540         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
11541         * config/sh/sh.c (prepare_move_operands): Likewise.
11542         (output_stack_adjust, sh_expand_epilogue): Likewise.
11543         (sh_set_return_address, sh_expand_t_scc): Likewise.
11544         * config/sparc/sparc.c (load_pic_register): Likewise.
11545         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
11546         * config/spu/spu.c (spu_expand_epilogue): Likewise.
11547         * config/v850/v850.c (expand_epilogue): Likewise.
11548
11549 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
11550
11551         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
11552         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
11553         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
11554         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
11555         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
11556         stack pointer register.
11557         (output_movhi): Remove code for interrupt specific writing to the
11558         stack pointer register.
11559
11560 2008-05-31  Richard Guenther  <rguenther@suse.de>
11561
11562         PR tree-optimization/34244
11563         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
11564         (tree_expr_nonzero_warnv_p): Likewise.
11565         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
11566         ssa_name_nonnegative_p.
11567         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
11568         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
11569         not tree_expr_nonzero_warnv_p.
11570
11571         PR tree-optimization/36262
11572         Revert
11573         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
11574
11575         PR tree-optimization/34244
11576         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
11577         (record_numbers_of_iterations): New function.
11578         (execute_vrp): Cache the numbers of iterations of loops.
11579         * tree-scalar-evolution.c (scev_reset_except_niters):
11580         New function.
11581         (scev_reset): Use scev_reset_except_niters.
11582         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
11583
11584 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
11585
11586         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11587         __WORKAROUND_RETS when appropriate.
11588
11589 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
11590
11591         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
11592         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
11593         mode iterator.
11594         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
11595         *fop_df_comm_sse insn patterns using MODEF mode iterator.
11596         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
11597         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
11598         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
11599         *fop_df_1_mixed insn patterns using MODEF mode iterator.
11600         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
11601         *fop_df_1_sse insn patterns using MODEF mode iterator.
11602         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
11603         *fop_df_1_i387 insn patterns using MODEF mode iterator.
11604         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
11605         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
11606         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
11607         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
11608         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
11609         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
11610         (*fop_xf_4_i387): Use <MODE> for mode attribute.
11611         (*fop_xf_5_i387): Ditto.
11612         (*fop_xf_6_i387): Ditto.
11613
11614 2008-05-30  Richard Guenther  <rguenther@suse.de>
11615
11616         * builtins.c (build_string_literal): Avoid generating
11617         a non-gimple_val result.
11618
11619 2008-05-30  DJ Delorie  <dj@redhat.com>
11620
11621         * exec-tool.in: Use an environment variable (private) instead of a
11622         file (shared) as a semaphore, so as to not break parallel builds.
11623
11624 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
11625
11626         * optabs.c (maybe_encapsulate_block): Remove.
11627         (emit_libcall_block): Adjust accordingly.
11628         * optabs.h (maybe_encapsulate_block): Remove prototype.
11629
11630         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
11631         Don't use maybe_encapsulate_block.
11632
11633 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
11634
11635         * config/rs6000/rs6000.c (rs6000_legitimize_address,
11636         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
11637         rtx is a SYMBOL_REF before calling get_pool_constant.
11638
11639 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
11640
11641         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
11642
11643 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
11644
11645         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
11646         rather than OS names to choose INO_T_EQ definition.
11647         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
11648         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
11649
11650 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
11651
11652         PR target/36348
11653         * config/darwin-f.c: New.
11654         * config/t-darwin: Added rule to build darwin-f.o.
11655         * config.gcc: Defined new variable, fortran_target_objs.
11656         (*-*-darwin*): Set fortran_target_objs.
11657         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
11658         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
11659         * configure: Regenerated.
11660
11661 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
11662
11663         PR target/35771
11664         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
11665         canonical type if needed.
11666
11667 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
11668
11669         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
11670
11671 2008-05-29  Richard Guenther  <rguenther@suse.de>
11672
11673         PR tree-optimization/36343
11674         PR tree-optimization/36346
11675         PR tree-optimization/36347
11676         * tree-flow.h (clobber_what_p_points_to): Declare.
11677         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
11678         pointed-to variable is dereferenced is irrelevant to whether
11679         the pointer can access the pointed-to variable.
11680         (clobber_what_p_points_to): New function.
11681         * tree-ssa-alias.c (set_initial_properties): Use it.
11682         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
11683         call clobber check for NMTs.
11684
11685 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
11686
11687         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
11688         for printing gcov_type.
11689
11690 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
11691
11692         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
11693         and the eh region information.
11694         * value-prof.c (gimple_move_stmt_histograms): New function.
11695         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
11696
11697 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
11698
11699         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
11700
11701 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
11702
11703         * value-prof.c (tree_ic_transform): Print counts.
11704         * tree-profile.c (tree_gen_ic_func_profiler):
11705         Clear __gcov_indreict_call_callee variable to avoid misattribution
11706         of the profile.
11707
11708 2008-05-28  Rafael Espíndola  <espindola@google.com>
11709
11710         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
11711         invalid sharing.
11712
11713 2008-05-28  Richard Guenther  <rguenther@suse.de>
11714
11715         PR tree-optimization/36339
11716         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
11717         and clobbering code out of the loop.
11718
11719 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11720
11721         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
11722         letters defined.
11723
11724         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
11725         s390_contiguous_bitmask_p, s390_symref_operand_p,
11726         s390_check_symref_alignment, s390_reload_larl_operand,
11727         s390_reload_symref_address): New functions.
11728         (s390_branch_condition_mnemonic): Support compare and branch
11729         instructions.
11730         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
11731         and 'W' constraints.
11732         (s390_secondary_reload): Add secondary reloads for unaligned
11733         symbol refs or symbol refs to floating point or QI/TI mode
11734         integer values.
11735         (legitimate_address_p): Accept symbol references as addresses.
11736         (s390_expand_insv): Use rotate and insert selected bits
11737         instruction for insv when building for z10.
11738         (print_operand_address): Handle symbol ref addresses.
11739         (print_operand): Output modifier 'c' added for signed byte values.
11740         (s390_encode_section_info): Mark symbol refs with
11741         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
11742
11743         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
11744         (length attribute): RRF, RRR have 4 byte length.
11745         (FPALL, INTALL): New mode iterators added.
11746         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
11747         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
11748         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
11749         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
11750         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
11751         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
11752         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
11753         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
11754         instructions.
11755         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
11756         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
11757         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
11758         reload<INTALL:mode><P:mode>_toreg_z10,
11759         reload<FPALL:mode><P:mode>_tomem_z10,
11760         reload<FPALL:mode><P:mode>_toreg_z10,
11761         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
11762         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
11763         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
11764         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
11765         definition.
11766         (movmem, clrmem, cmpmem): New splitters added.
11767
11768         * config/s390/predicates.md (larl_operand): Use
11769         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
11770         SYMBOL_REF_ALIGN1_P.
11771         (s390_signed_integer_comparison,
11772         s390_unsigned_integer_comparison): New predicates.
11773
11774         * config/s390/s390-protos.h (s390_check_symref_alignment,
11775         s390_contiguous_bitmask_p, s390_reload_larl_operand,
11776         s390_reload_symref_address,
11777         s390_compare_and_branch_condition_mask): Prototypes added.
11778
11779         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
11780         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
11781         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
11782
11783 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11784
11785         * config/s390/s390.c (z10_cost): New cost function for z10.
11786         (s390_handle_arch_option, override_options): Support -march=z10 switch.
11787         (s390_issue_rate): Adjust issue rate for z10.
11788         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
11789         (processor_flags): Add PF_Z10.
11790         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
11791         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
11792         * gcc/config.gcc: Add z10.
11793
11794 2008-05-28  Richard Guenther  <rguenther@suse.de>
11795
11796         PR tree-optimization/36291
11797         * tree-flow. h (struct gimple_df): Remove var_anns member.
11798         * tree-flow-inline.h (gimple_var_anns): Remove.
11799         (var_ann): Simplify.
11800         * tree-dfa.c (create_var_ann): Simplify.
11801         (remove_referenced_var): Clear alias info from var_anns of globals.
11802         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
11803         (delete_tree_ssa): Clear alias info from var_anns of globals.
11804         Do not free var_anns.
11805         (var_ann_eq): Remove.
11806         (var_ann_hash): Likewise.
11807
11808 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
11809
11810         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
11811         and loongson2f entries.
11812         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
11813         * config/mips/mips.h (processor_type): Add Loongson-2E
11814         and Loongson-2F entries.
11815         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
11816         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
11817         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
11818         * doc/invoke.texi (MIPS Options): Document loongson2e
11819         and loongson2f processor names.
11820
11821 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
11822
11823         PR target/35767
11824         PR target/35771
11825         * config/i386/i386.c (ix86_function_arg_boundary): Use
11826         alignment of canonical type.
11827         (ix86_expand_vector_move): Check unaligned memory access for
11828         all SSE modes.
11829
11830 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
11831
11832         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
11833         Moved to the front of file.
11834
11835 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
11836             H.J. Lu  <hongjiu.lu@intel.com>
11837
11838         * dwarf2out.c (current_fde): New.
11839         (add_cfi): Use it.
11840         (lookup_cfa:): Likewise.
11841         (dwarf2out_end_epilogue): Likewise.
11842         (dwarf2out_note_section_used): Likewise.
11843
11844 2008-05-27  Michael Matz  <matz@suse.de>
11845
11846         PR c++/27975
11847         * c.opt (Wenum-compare): New warning option.
11848         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
11849
11850 2008-05-27  Michael Matz  <matz@suse.de>
11851
11852         PR middle-end/36326
11853         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
11854         non-BLKmode types.
11855         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
11856         into memory as tail calls.
11857
11858 2008-05-27  Richard Guenther  <rguenther@suse.de>
11859
11860         PR tree-optimization/36339
11861         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
11862         pointers cause all addressable variables to be call clobbered.
11863
11864 2008-05-27  Richard Guenther  <rguenther@suse.de>
11865
11866         PR tree-optimization/36245
11867         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
11868
11869 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
11870
11871         * config/s390/s390.md: Replace all occurences of the 'm'
11872         constraint with 'RT'.
11873
11874 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
11875
11876         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
11877         definitions added.
11878         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
11879         "*movdi_64".
11880         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
11881         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
11882         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
11883
11884 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
11885
11886         * reload.c: (find_reloads): Skip alternatives according to the
11887         "enabled" attribute. Constify the constraint variable.
11888         * recog.c (get_attr_enabled): Add default implementation.
11889         (extract_insn): Set the alternative_enabled_p array
11890         in the recog_data struct.
11891         (preprocess_constraints, constrain_operands): Skip
11892         alternatives according to the "enabled" attribute
11893         * recog.h (struct recog_data): New field alternative_enabled_p.
11894         (skip_alternative): New inline function.
11895         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
11896         (record_reg_classes): Skip alternative according to the
11897         "enabled" attribute.
11898
11899         * doc/md.texi: Add documention for the "enabled" attribute.
11900
11901 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
11902
11903         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
11904         * postreload.c (reload_cse_simplify_operands): Replace 'm'
11905         constraint with TARGET_MEM_CONSTRAINT.
11906         * recog.c (asm_operand_ok, preprocess_constraints,
11907         constrain_operands): Likewise.
11908         * regclass.c (record_reg_classes): Likewise.
11909         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
11910         * reload1.c (maybe_fix_stack_asms): Likewise.
11911         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
11912         * recog.h: Adjust comment.
11913         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
11914         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
11915         * doc/md.texi: Add a note to description of 'm' constraint.
11916         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
11917
11918 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11919
11920         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
11921         that the bitfield is of integral type before testing its precision.
11922
11923 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
11924             Sa Liu  <saliu@de.ibm.com>
11925
11926         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
11927         __modti3, __udivti3, __umodti3 and __udivmodti4.
11928         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
11929         that implement TImode mul and div functions.
11930         * config/spu/multi3.c: New. Implement __multi3.
11931         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
11932         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
11933         functions on SPU.
11934
11935 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
11936
11937         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
11938         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
11939         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
11940         tls_sysv_suffix): New mode and mode attribute iterators.
11941         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
11942         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
11943         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
11944         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
11945         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
11946         iterators.
11947
11948 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11949
11950         PR tree-optimization/36329
11951         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
11952         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
11953         * cgraphbuild.c (initialize_inline_failed): Use the latter
11954         macro in lieu of the former.
11955         * ipa-inline.c (cgraph_mark_inline): Likewise.
11956         (cgraph_decide_inlining_of_small_function): Likewise.
11957         (cgraph_decide_inlining): Likewise.
11958         (cgraph_decide_inlining_incrementally): Likewise.
11959
11960 2008-05-26  Tristan Gingold  <gingold@adacore.com>
11961             Anatoly Sokolov  <aesok@post.ru>
11962
11963         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
11964         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
11965         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
11966         optimization for 'avr6' architecture.
11967
11968 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
11969
11970         PR target/34932
11971         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
11972
11973 2008-05-26  Richard Guenther  <rguenther@suse.de>
11974
11975         * tree-ssa-sccvn.c (expr_has_constants): Declare.
11976         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
11977
11978 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
11979
11980         PR middle-end/36253
11981         * caller-save.c (insert_restore): Verify alignment of spill space.
11982         (insert_save): Likewise.
11983         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
11984         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
11985         (STACK_SLOT_ALIGNMENT): Likewise.
11986         * function.c (LOCAL_ALIGNMENT): Removed.
11987         (get_stack_local_alignment): New.
11988         (assign_stack_local): Use it.  Set alignment on stack slot.
11989         (assign_stack_temp_for_type): Use get_stack_local_alignment.
11990         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
11991         (STACK_SLOT_ALIGNMENT): New.
11992         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
11993         stack slot in XFmode.
11994
11995         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
11996
11997 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
11998
11999         PR/36321
12000         * config/i386/i386.md (allocate_stack_worker_64): Make sure
12001         argument operand in rax isn't removed.
12002
12003 2008-05-26  Richard Guenther  <rguenther@suse.de>
12004
12005         PR middle-end/36300
12006         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
12007         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
12008
12009 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
12010
12011         PR bootstrap/36331
12012         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
12013
12014 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
12015
12016         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
12017         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
12018
12019 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12020
12021         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
12022         build a trampoline if we don't want one.
12023         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
12024         return zero for nested functions if we don't want a trampoline.
12025
12026 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
12027
12028         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
12029
12030 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
12031
12032         PR fortran/18428
12033         * c.opt: Removed undocumented option '-lang-fortran'.
12034         * c-common.h: Removed global variable 'lang_fortran'.
12035         * c-opts.c (c_common_handle_option): Removed code to handle
12036         option '-lang-fortran'. Updated includes.
12037         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
12038         definition of '__GFORTRAN__'.
12039         (define__GNUC__): Reimplemented to use BASEVER and
12040         cpp_define_formatted.
12041         (builtin_define_with_value_n): Removed.
12042         * c-incpath.h: Renamed to ...
12043         * incpath.h: ... this.
12044         * c-incpath.c: Renamed to ...
12045         * incpath.c: ... this. Updated includes.
12046         * fix-header.c: Updated includes.
12047         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
12048         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
12049         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
12050
12051 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12052
12053         * tree.h: Update the table of flags used on tree nodes.
12054         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
12055         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
12056         (FORCED_LABEL): Add access check.
12057         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
12058         (ASM_INPUT_P): Likewise.
12059         (ASM_VOLATILE_P): Likewise.
12060         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
12061         (OMP_SECTION_LAST): Access private_flag directly.
12062         (OMP_RETURN_NOWAIT): Likewise.
12063         (OMP_PARALLEL_COMBINED): Likewise.
12064         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
12065         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
12066         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
12067         deprecated_flag directly.
12068
12069 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12070
12071         * final.c (frame_pointer_needed): Removed.
12072         * flags.h (frame_pointer_needed): Likewise.
12073
12074         * function.h (rtl_data): Add frame_pointer_needed.
12075         (frame_pointer_needed): New.
12076
12077 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
12078
12079         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
12080
12081 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
12082
12083         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
12084         SRC is a REG.
12085
12086 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
12087
12088         * c-common.c (strip_array_types): Move function to..
12089         * tree.c: ..here.
12090         (get_inner_array_type): Delete.
12091         * c-common.h (strip_array_types): Move declaration to..
12092         * tree.h: ..here.
12093         (get_inner_array_type): Delete.
12094         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
12095         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
12096         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12097         * config/pa/pa.c (emit_move_sequence): Likewise.
12098
12099 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12100
12101         * config/i386/i386.md (*sse_prologue_save_insn): Set length
12102         attribute to 34.
12103
12104 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
12105
12106         * function.c: Include target hook for nonlocal_goto frame value.
12107
12108 2008-05-24  Richard Guenther  <rguenther@suse.de>
12109
12110         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
12111         variable can be only accessed through a pointer or a union.
12112
12113 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12114
12115         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
12116         * doc/extend.texi: Likewise.
12117
12118 2008-05-23  DJ Delorie  <dj@redhat.com>
12119
12120         * config/m32c/jump.md (untyped_call): Add.
12121
12122         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
12123         for A24 to PSImode.
12124         (m32c_address_cost): Detail costs for indirect offsets.
12125
12126 2008-05-23  Rafael Espíndola  <espindola@google.com>
12127
12128         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
12129         if a node is a SUBREG.
12130         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
12131         is a SUBREG.
12132
12133 2008-05-23  Paul Brook  <paul@codesourcery.com>
12134             Carlos O'Donell  <carlos@codesourcery.com>
12135
12136         * doc/extend.texi: Clarify use of __attribute__((naked)).
12137         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
12138         * target.h (gcc_target): Add allocate_stack_slots_for_args.
12139         * function.c (use_register_for_decl): Use
12140         targetm.calls.allocate_stack_slots_for_args.
12141         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
12142         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
12143         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12144
12145 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
12146
12147         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
12148
12149 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
12150
12151         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
12152         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
12153         is only rounded once.
12154
12155 2008-05-23  Richard Guenther  <rguenther@suse.de>
12156
12157         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
12158
12159 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
12160             Jakub Jelinek  <jakub@redhat.com>
12161
12162         PR target/36079
12163         * configure.ac: Handle --enable-cld.
12164         * configure: Regenerated.
12165         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
12166         * config/i386/i386.h (struct machine_function): Add needs_cld field.
12167         (ix86_current_function_needs_cld): New define.
12168         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
12169         (cld): New isns pattern.
12170         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
12171         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
12172         * config/i386/i386.opt (mcld): New option.
12173         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
12174         TARGET_CLD and ix86_current_function_needs_cld.
12175         (override_options): Use -mcld by default for 32-bit code if
12176         USE_IX86_CLD.
12177
12178         * doc/install.texi (Options specification): Document --enable-cld.
12179         * doc/invoke.texi (Machine Dependent Options)
12180         [i386 and x86-64 Options]: Add -mcld option.
12181         (Intel 386 and AMD x86-64 Options): Document -mcld option.
12182
12183 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
12184         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
12185         (return_in_memory_64): Likewise.
12186         (return_in_memory_ms_64): Likewise.
12187
12188 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12189
12190         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
12191         * builtins.c (fold_builtin_fpclassify): New.
12192         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
12193         * builtins.def (BUILT_IN_FPCLASSIFY): New.
12194         * c-common.c (handle_type_generic_attribute): Adjust to accept
12195         fixed arguments before an elipsis.
12196         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
12197         * doc/extend.texi: Document __builtin_fpclassify.
12198
12199 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
12200
12201         * omp-low.c (gate_expand_omp_ssa): Remove.
12202         (pass_expand_omp_ssa): Remove.
12203         (gate_expand_omp): Do not check for flag_openmp_ssa.
12204         * common.opt (-fopenmp-ssa): Remove.
12205         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
12206
12207 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
12208
12209         * config/sh/sh.opt (mfixed-range): New option.
12210         * config/sh/sh-protos.h (sh_fix_range): Declare.
12211         * config/sh/sh.c (sh_fix_range): New function.
12212         * config/sh/sh.h (sh_fixed_range_str): Declare.
12213         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
12214         is not empty.
12215         * doc/invoke.texi (SH Options): Document -mfixed-range.
12216
12217 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
12218
12219         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
12220         it before the redeclaration.
12221
12222 2008-05-22  Anatoly Sokolov <aesok@post.ru>
12223
12224         * config/avr/avr.c (get_sequence_length): Add new function.
12225         (expand_prologue, expand_epilogue): Remove duplicate code.
12226
12227 2008-05-22  Rafael Espíndola  <espindola@google.com>
12228
12229         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
12230         sharing.
12231
12232 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
12233
12234         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
12235         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
12236
12237         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
12238         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
12239         (vect_update_misalignment_for_peel): Likewise.
12240         (vector_alignment_reachable_p): Likewise.
12241         * tree-vect-transform.c (vectorizable_load): Likewise.
12242         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
12243         (get_vectype_for_scalar_type): Pass mode of scalar_type
12244         to UNITS_PER_SIMD_WORD.
12245
12246         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
12247         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12248         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12249         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12250         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12251
12252 2008-05-22  Ira Rosen  <irar@il.ibm.com>
12253
12254         PR tree-optimization/36293
12255         * tree-vect-transform.c (vect_transform_strided_load): Don't check
12256         if the first load must be skipped because of a gap.
12257
12258 2008-05-22  Richard Guenther  <rguenther@suse.de>
12259
12260         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
12261         more cases of offset disambiguation that is possible if
12262         strict-aliasing rules apply.
12263         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
12264         for basic offset and type-based disambiguation.
12265
12266 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12267
12268         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
12269         ix86_expand_vector_set on V16QImode for SSE4.1.
12270
12271 2008-05-21  Tom Tromey  <tromey@redhat.com>
12272
12273         * c.opt (Wimport): Mark as undocumented.
12274         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
12275         -Wno-import.
12276         (Warning Options): Likewise.
12277         * doc/cppopts.texi: Don't mention -Wimport.
12278
12279 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
12280
12281         PR tree-optimization/36287
12282         PR tree-optimization/36286
12283         * lambda-code.c (build_access_matrix): Do not use the loop->num
12284         for computing the number of induction variables: use the loop depth
12285         instead.
12286
12287 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
12288
12289         PR/36280
12290         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
12291         option -f(no-)leading-underscore.
12292
12293 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12294
12295         * config/i386/i386.c (ix86_expand_vector_init_general): Use
12296         GET_MODE_NUNITS (mode).
12297
12298 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
12299
12300         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
12301         (-mmulhw): Add 464 to description.
12302         (-mdlmzb): Likewise.
12303         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
12304         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
12305         464fp entries.
12306         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
12307         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
12308         * config/rs6000/rs6000.md: Update comments for 464.
12309
12310 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
12311
12312         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
12313
12314 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12315
12316         * config/i386/sse.md (vec_extractv4sf): Removed.
12317         (vec_extractv2df): Likewise.
12318         (vec_extractv2di): Likewise.
12319         (vec_extractv4si): Likewise.
12320         (vec_extractv8hi): Likewise.
12321         (vec_extractv16qi): Likewise.
12322         (vec_extract<mode>): New.
12323
12324 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12325
12326         * config/i386/sse.md (vec_setv4sf): Removed.
12327         (vec_setv2df): Likewise.
12328         (vec_setv2di): Likewise.
12329         (vec_setv4si): Likewise.
12330         (vec_setv8hi): Likewise.
12331         (vec_setv16qi): Likewise.
12332         (vec_set<mode>): New.
12333
12334 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12335
12336         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
12337         goto for vec_concat and vec_interleave.
12338
12339 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12340
12341         * config/i386/sse.md (vec_initv4sf): Removed.
12342         (vec_initv2df): Likewise.
12343         (vec_initv2di): Likewise.
12344         (vec_initv4si): Likewise.
12345         (vec_initv8hi): Likewise.
12346         (vec_initv16qi): Likewise.
12347         (vec_init<mode>): New.
12348
12349 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
12350
12351         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
12352
12353 2008-05-21  Tom Tromey  <tromey@redhat.com>
12354
12355         * ggc-zone.c (lookup_page_table_if_allocated): New function.
12356         (zone_find_object_offset): Likewise.
12357         (gt_ggc_m_S): Likewise.
12358         (highest_bit): Likewise.
12359         * ggc-page.c (gt_ggc_m_S): New function.
12360         * stringpool.c (string_stack): Remove.
12361         (init_stringpool): Update.
12362         (ggc_alloc_string): Use ggc_alloc.
12363         (maybe_delete_ident): New function.
12364         (ggc_purge_stringpool): Likewise.
12365         (gt_ggc_m_S): Remove.
12366         * ggc-common.c (ggc_protect_identifiers): New global.
12367         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
12368         ggc_protect_identifiers.
12369         * ggc.h (ggc_protect_identifiers): Declare.
12370         (gt_ggc_m_S): Update.
12371         (ggc_purge_stringpool): Declare.
12372         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
12373         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
12374         special case.
12375         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
12376
12377 2008-05-21  David S. Miller  <davem@davemloft.net>
12378
12379         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
12380         tmake_file.
12381
12382 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12383
12384         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
12385         once finished.
12386
12387 2008-05-20  David Daney  <ddaney@avtrex.com>
12388
12389         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
12390         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
12391         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
12392         UNSPEC_UPDATE_GOT_VERSION): Renumber.
12393         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
12394         (atomic_hiqi_op): New define_code_iterator.
12395         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
12396         mips_expand_compare_and_swap_12.
12397         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
12398         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
12399         (sync_<optab><mode>, sync_old_<optab><mode>,
12400         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
12401         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
12402         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
12403         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
12404         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
12405         (test_and_set_12): New insn.
12406         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
12407         sync_new_<optab><mode>, sync_old_nand<mode>,
12408         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
12409         clobber to operand 0 for SI and DI mode insns.
12410         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
12411         mips_gen_fn_4): New typedefs.
12412         (mips_gen_fn_ptrs): Define new union type.
12413         (mips_expand_compare_and_swap_12): Remove declaration.
12414         (mips_expand_atomic_qihi): Declare function.
12415         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
12416         (mips_expand_atomic_qihi): ... this.  Use new generator function
12417         parameter.
12418         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
12419         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
12420         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
12421         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
12422         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
12423         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
12424         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
12425         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
12426         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
12427         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
12428         New macros.
12429
12430 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
12431
12432         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
12433         the missing break.
12434
12435 2008-05-20  Anatoly Sokolov <aesok@post.ru>
12436
12437         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
12438         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
12439         (avr_attribute_table): Add 'OS_main' function attribute.
12440         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
12441         functions with 'OS_main' attribute.
12442
12443 2008-05-20  Richard Guenther  <rguenther@suse.de>
12444
12445         PR tree-optimization/35204
12446         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
12447         helper, split out from ...
12448         (DFS): ... here.  Make the DFS walk non-recursive.
12449
12450 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
12451             Jan Sjodin  <jan.sjodin@amd.com>
12452
12453         PR tree-optimization/36181
12454         * tree-parloops.c (loop_has_vector_phi_nodes): New.
12455         (parallelize_loops): Don't parallelize when the loop has vector
12456         phi nodes.
12457
12458 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
12459             Sebastian Pop  <sebastian.pop@amd.com>
12460
12461         * tree-loop-linear.c (gather_interchange_stats): Look in the access
12462         matrix, and never look at the tree representation of the memory
12463         accesses.
12464         (linear_transform_loops): Computes parameters and access matrices.
12465         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
12466         when fails.
12467         (access_matrix_get_index_for_parameter): New.
12468         * tree-data-ref.h (struct access_matrix): New.
12469         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
12470         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
12471         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
12472         am_vector_index_for_loop): New.
12473         (struct data_reference): Add field access_matrix.
12474         (DR_ACCESS_MATRIX): New.
12475         (compute_data_dependences_for_loop): Update declaration.
12476         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
12477         * lambda.h (lambda_vector_vec_p): Declared.
12478         * lambda-code.c: Depend on pointer-set.h.
12479         (lambda_collect_parameters_from_af, lambda_collect_parameters,
12480         av_for_af_base, av_for_af, build_access_matrix,
12481         lambda_compute_access_matrices): New.
12482         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
12483
12484 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
12485
12486         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
12487         $SOURCEDIR/include.
12488
12489 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
12490             Sebastian Pop  <sebastian.pop@amd.com>
12491
12492         PR tree-optimization/36206
12493         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
12494         FOLD_CONVERSIONS.
12495         (instantiate_scev_1): Rename flags to fold_conversions.
12496         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
12497         outeside instantiation_loop.
12498         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
12499         (evolution_function_is_affine_or_constant_p): Removed.
12500         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
12501         instantiate_scev.
12502         (analyze_siv_subscript): Pass in the loop nest number.
12503         Call evolution_function_is_affine_in_loop instead of
12504         evolution_function_is_affine_p.
12505         (analyze_overlapping_iterations): Pass in the loop nest number.
12506
12507 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
12508             Sebastian Pop  <sebastian.pop@amd.com>
12509
12510         PR tree-optimization/36206
12511         * tree-chrec.h (chrec_fold_op): New.
12512         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
12513         and other trees.
12514
12515 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
12516
12517         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
12518         (DIRS_EQ): New.
12519         (remove_duplicates): Do not set inode on non-inode systems.
12520         Use DIRS_EQ.
12521
12522 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
12523
12524         * config.gcc (tm_file): Update comments about relative pathnames.
12525
12526 2008-05-20  Richard Guenther  <rguenther@suse.de>
12527
12528         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
12529         * tree-ssa-sccvn.c (process_scc): Likewise.
12530         * tree-ssa-sink.c (execute_sink_code): Likewise.
12531         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
12532         * tree-vrp.c (process_assert_insertions): Likewise.
12533         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
12534         (perform_tree_ssa_dce): Likewise.
12535         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
12536         (dump_dominator_optimization_stats): Likewise.
12537         * tree-vectorizer.c (vectorize_loops): Likewise.
12538
12539 2008-05-20  Richard Guenther  <rguenther@suse.de>
12540
12541         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
12542
12543 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
12544
12545         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
12546         (ix86_i386elf_return_in_memory): Likewise.
12547         (ix86_i386interix_return_in_memory): Likewise.
12548         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
12549         (SUBTARGET_RETURN_IN_MEMORY): New.
12550         * config/i386/i386elf.h: Likewise.
12551         * config/i386/ptx4-i.h: Likewise.
12552         * config/i386/sol2-10.h: Likewise.
12553         * config/i386/sysv4.h: Likewise.
12554         * config/i386/vx-common.h: Likewise.
12555         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
12556         * config/i386/i386.c (ix86_return_in_memory): Made static and
12557         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
12558         (ix86_i386elf_return_in_memory): Removed.
12559         (ix86_i386interix_return_in_memory): Removed.
12560         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
12561         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
12562
12563 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
12564
12565         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
12566
12567 2008-05-19  Xinliang David Li  <davidxl@google.com>
12568
12569         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
12570         * opts.c: Ditto.
12571         * common.opt: Ditto.
12572         * doc/invoke.texi: Ditto.
12573
12574 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
12575
12576         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
12577         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
12578
12579 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
12580
12581         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
12582         sizes of operand array from 8/4 to 4/2.
12583         (ix86_expand_vector_init_general): Change size of operand array
12584         from 32 to 16.  Remove op0, op1 and half_mode.
12585
12586 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
12587
12588         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
12589         (ix86_expand_vector_init_interleave): Likewise.
12590         (ix86_expand_vector_init_general): Use them.  Assert
12591         word_mode == SImode when n_words == 4.
12592
12593 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
12594
12595         * config/i386/i386.c (ix86_secondary_reload): New static function.
12596         (TARGET_SECONDARY_RELOAD): New define.
12597         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
12598         * config/i386/i386.md (reload_outqi): Remove.
12599
12600 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12601
12602         PR middle-end/35509
12603         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
12604         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
12605         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
12606         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
12607         (fold_builtin_1): Likewise.
12608         * builtins.def (BUILT_IN_ISINF_SIGN): New.
12609         c-common.c (check_builtin_function_arguments): Handle
12610         BUILT_IN_ISINF_SIGN.
12611         * doc/extend.texi: Document __builtin_isinf_sign.
12612         * fold-const.c (operand_equal_p): Handle COND_EXPR.
12613
12614 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
12615
12616         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
12617         EH cleanup at the end of the pass, search for those that have been
12618         turned into forwarder blocks and do the cleanup on their successor.
12619
12620 2008-05-18  Richard Guenther  <rguenther@suse.de>
12621
12622         * tree-cfg.c (verify_gimple_expr): Allow conversions from
12623         pointers to sizetype and vice versa.
12624
12625 2008-05-18 Xinliang David Li   <davidxl@google.com>
12626
12627         * gcc/tree-ssa-dce.c: Coding style fix.
12628         (check_pow): Documentation comment.
12629         (check_log): Documenation comment. Coding style fix.
12630         (is_unnecessary_except_errno_call): Ditto.
12631         (gen_conditions_for_pow): Ditto.
12632         (gen_conditions_for_log): Ditto.
12633         (gen_shrink_wrap_conditions): Ditto.
12634         (shrink_wrap_one_built_in_calls): Ditto.
12635         * gcc/doc/invoke.texi: Better documentation string.
12636         * ChangeLog: Fix wrong change log entries from
12637         May 17 checkin on function call DCE.
12638
12639 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
12640
12641         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
12642
12643 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
12644
12645         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
12646         * df-problems.c (simulation routines): Fixed block comment to
12647         properly say how to add forwards scanning functions.
12648
12649 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
12650
12651         * tree-inline.c (setup_one_parameter): Remove dead code.
12652
12653 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
12654
12655         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
12656         a BIT_AND_EXPR only for an INTEGER_TYPE.
12657
12658 2008-05-17 Xinliang David Li   <davidxl@google.com>
12659
12660         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
12661         (check_pow, check_log, is_unnecessary_except_errno_call): New
12662         functions to check for eliminating math functions that are pure
12663         except for setting errno.
12664         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
12665         general condition expressions for shrink-wrapping pow/log calls.
12666         (gen_shrink_wrap_conditions): Ditto.
12667         (shrink_wrap_one_built_in_call): Ditto.
12668         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
12669         (mark_operand_necessary): If debugging, output if OP is necessary.
12670         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
12671         unnecessary.
12672         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
12673         opt level >= 2.
12674         * gcc/common.opt: New user flag -ftree-builtin-dce.
12675         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
12676
12677 2008-05-16  David S. Miller  <davem@davemloft.net>
12678
12679         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
12680         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
12681
12682 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
12683
12684         PR target/36246
12685         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
12686
12687 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12688
12689         * ifcvt.c (dead_or_predicable): Rename
12690         df_simulate_one_insn_backwards to df_simulate_one_insn.
12691         * recog.c (peephole2_optimize): Ditto.
12692         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
12693         Ditto.
12694         * df.h: Rename df_simulate_one_insn_backwards to
12695         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
12696         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
12697         scanning of defs and uses.
12698         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
12699         (df_simulate_one_insn_forwards): Removed.
12700
12701 2008-05-16  Doug Kwan  <dougkwan@google.com>
12702
12703         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
12704         QNaN & SNaN.
12705         (real_from_string): Handle NaNs and Inf as approriate.
12706
12707 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
12708
12709         * doc/gty.texi (Source Files Containing Type Information): Note
12710         that headers should appear first in the gtfiles list.
12711
12712 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12713
12714         * tree.def (COND_EXEC): Properly documented this code.
12715
12716 2008-05-16  Diego Novillo  <dnovillo@google.com>
12717
12718         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
12719         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
12720         the new field.
12721
12722 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12723
12724         * tree-ssa-dse (max_stmt_uid): Removed.
12725         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
12726         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
12727         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
12728         * function.h (cfun.last_stmt_uid): New field.
12729         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
12730         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
12731         New functions.
12732         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
12733         (create_stmt_ann): Initialize the ann->uid field.
12734         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
12735         with new calls.
12736         * tree-flow.h (renumber_gimple_stmt_uids): New function.
12737
12738 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
12739
12740         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
12741         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
12742         (init_empty_tree_cfg): Call it.
12743
12744 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12745
12746         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
12747         Update all users.
12748
12749 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12750
12751         * doc/invoke.text (-fdump-tree-*-verbose): New option.
12752         * tree-dump.c (dump_options): New verbose option.
12753         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
12754         Add verbose dump.
12755         * tree-pass.h (TDF_VERBOSE): New dump flag.
12756         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
12757         (tree-flow.h): Added include.
12758         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
12759
12760 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
12761
12762         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
12763
12764         From Jie Zhang  <jie.zhang@analog.com>
12765         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12766         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
12767         mcpu=bf561-none and mcpu=bf561-0.2.
12768         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12769         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
12770         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12771         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
12772         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
12773         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
12774         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
12775         option.
12776         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
12777         (cputype_selected): Remove.
12778         (bfin_handle_option): Don't use cputype_selected.
12779         (override_options): When no mcpu option, enable all workarounds.
12780         Don't use bfin_workarounds.
12781         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
12782         processor type.
12783         (DEFAULT_CPU_TYPE): Don't define.
12784
12785 2008-05-16  Richard Guenther  <rguenther@suse.de>
12786
12787         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
12788         on deletion of the last stmt.
12789
12790 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12791
12792         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
12793         V8HImode for SSE2 and V16QImode for SSE4.1.
12794
12795 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
12796
12797         * cgraph.h (compute_inline_parameters): Made public.
12798         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
12799         variable_generate_summary, function_write_summary,
12800         variable_write_summary, variable_read_summary.  Added generate_summary,
12801         write_summary, read_summary.
12802         * cgraphunit.c (cgraph_process_new_functions): Changed call from
12803         pass_ipa_inline.function_generate_summary, to
12804         compute_inline_parameters.
12805         * ipa-inline.c (compute_inline_parameters): Made public and added
12806         node parameter.
12807         (compute_inline_parameters_for_current): New function.
12808         (pass_inline_param): Now calls compute_inline_parameters_for_current.
12809         (inline_generate_summary): Removed parameter and made to loop over
12810         all cgraph nodes.
12811         (pass_ipa_inline): Updated for new IPA_PASS structure.
12812         * passes.c (execute_ipa_summary_passes): Now is called once per
12813         pass rather than once per node*pass.
12814
12815 2008-05-15  Anatoly Sokolov <aesok@post.ru>
12816
12817         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
12818         avr_have_mul_p, avr_asm_only_p): Remove variables.
12819         (avr_override_options): Remove initialization of removed variables.
12820         (avr_file_start):  Convert removed variables to fields of
12821         'struct base_arch_s *avr_current_arch'.
12822         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
12823         (AVR_HAVE_MUL): (Ditto.).
12824         (AVR_HAVE_MOVW): (Ditto.).
12825         (AVR_HAVE_LPMX): (Ditto.).
12826         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
12827         avr_asm_only_p): Remove declaration.
12828
12829 2008-05-15  Diego Novillo  <dnovillo@google.com>
12830
12831         * config/arm/arm.c (arm_return_in_memory): Fix return type.
12832         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
12833
12834 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
12835
12836         PR middle-end/36194
12837         * combine.c (check_conversion): Rename back to check_promoted_subreg.
12838         Don't call record_truncated_value from here.
12839         (record_truncated_value): Turn it into a for_each_rtx callback.
12840         (record_truncated_values): New function.
12841         (combine_instructions): Call note_uses with record_truncated_values.
12842         Change name of check_conversion to check_promoted_subreg.
12843
12844 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
12845
12846         * doc/sourcebuild.texi: Document support for torture tests.
12847
12848 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
12849
12850         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
12851         to alternative 4 of operand 2.
12852
12853 2008-05-15  Richard Guenther  <rguenther@suse.de>
12854
12855         * tree-pass.h (current_pass): Declare.
12856         (get_pass_for_id): Likewise.
12857         * passes.c (passes_by_id, passes_by_id_size): New globals.
12858         (set_pass_for_id): New function.
12859         (get_pass_for_id): Likewise.
12860         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
12861         (execute_function_todo): Flush per function statistics.
12862         * toplev.c (compile_file): Init statistics.
12863         (general_init): Do early statistics initialization.
12864         (finalize): Finish statistics.
12865         * statistics.h (statistics_early_init): Declare.
12866         (statistics_init): Likewise.
12867         (statistics_fini): Likewise.
12868         (statistics_fini_pass): Likewise.
12869         (statistics_counter_event): Likewise.
12870         (statistics_histogram_event): Likewise.
12871         * statistics.c: New file.
12872         * Makefile.in (OBJS-common): Add statistics.o.
12873         (statistics.o): Add dependencies.
12874         * doc/invoke.texi (-fdump-statistics): Document.
12875
12876         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
12877         (insert): Likewise.
12878         (execute_pre): Use statistics_counter_event.
12879         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
12880         (substitute_and_fold): Increment it.  Use statistics_counter_event.
12881
12882 2008-05-15  Diego Novillo  <dnovillo@google.com>
12883
12884         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
12885
12886         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
12887         * tree-ssa-alias.c (new_type_alias): Remove references to
12888         sub-variables from comment.
12889         * tree-ssa-operands.c (swap_tree_operands): Likewise.
12890
12891 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12892
12893         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
12894         attribute to 1 only for insertps alternative.
12895
12896 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
12897
12898         * config/bfin/bfin.md (loadbytes): New pattern.
12899         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
12900         (bfin_init_builtins): Initialize it.
12901         (bdesc_1arg): Add it.
12902
12903 2008-05-15  Sa Liu  <saliu@de.ibm.com>
12904
12905         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
12906         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
12907         * testsuite/lib/target-supports.exp: Add
12908         check_effective_target_fortran_integer_16.
12909
12910 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
12911
12912         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
12913         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
12914         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
12915         (TARGET_RETURN_IN_MEMORY): Define.
12916
12917 2008-05-15  Richard Guenther  <rguenther@suse.de>
12918
12919         PR middle-end/36244
12920         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
12921         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
12922         represent unmodifiable vars.
12923
12924 2008-05-15  Richard Guenther  <rguenther@suse.de>
12925
12926         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
12927         INDIRECT_REF and TARGET_MEM_REF.
12928         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12929         TARGET_MEM_REF.
12930
12931 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
12932             H.J. Lu  <hongjiu.lu@intel.com>
12933
12934         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
12935         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
12936         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
12937         insn alternatives.  Add missing alternatives.
12938         (*vec_concatv2di_rex64_sse4_1): Likewise.
12939         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
12940         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
12941         Require TARGET_SSE.
12942
12943 2008-05-15  Richard Guenther  <rguenther@suse.de>
12944
12945         PR tree-optimization/36009
12946         PR tree-optimization/36204
12947         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
12948         (determine_invariantness_stmt): Record the loop a store is
12949         always executed in.
12950         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
12951         dependency.
12952
12953 2008-05-15  Richard Guenther  <rguenther@suse.de>
12954
12955         PR tree-optimization/34330
12956         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
12957         through the pointer will alias the SMT.
12958
12959 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
12960
12961         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
12962
12963 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
12964
12965         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
12966
12967 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
12968             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
12969
12970         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
12971         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
12972         (vashl_optab): New optab for vector/vector shifts.
12973         (vashr_optab): Ditto.
12974         (vlshr_optab): Ditto.
12975         (vrotl_optab): Ditto.
12976         (vrotr_optab): Ditto.
12977         (optab_subtype): New enum for optab_for_tree_code call.
12978         (optab_for_tree_code): Add enum optab_subtype argument.
12979
12980         * optabs.c (optab_for_tree_code): Take an additional argument to
12981         distinguish between a vector shift by a scalar and vector shift by
12982         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
12983         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
12984         vector shift by a vector.
12985         (expand_widen_pattern_expr): Pass additional argument to
12986         optab_for_tree_code.
12987
12988         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
12989         vrotl_optab, vrotr_optab.
12990
12991         * expr.c (expand_expr_real_1): Update calls to
12992         optab_for_tree_code to distinguish between vector shifted by a
12993         scalar and vector shifted by a vector.
12994         * tree-vectorizer.c (supportable_widening_operation): Ditto.
12995         (supportable_narrowing_operation): Ditto.
12996         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
12997         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
12998         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
12999         (vect_create_epilog_for_reduction): Ditto.
13000         (vectorizable_reduction): Ditto.
13001         (vectorizable_operation): Ditto.
13002         (vect_strided_store_supported): Ditto.
13003         (vect_strided_load_supported): Ditto.
13004         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
13005         * expmed.c (expand_shift): Ditto.
13006
13007         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
13008         scalar type.
13009         (ashr@var{m}3): Ditto.
13010         (vashl@var{m}3): Document new vector/vector shift standard name.
13011         (vashr@var{m}3): Ditto.
13012         (vlshr@var{m}3): Ditto.
13013         (vrotl@var{m}3): Ditto.
13014         (vrotr@var{m}3): Ditto.
13015
13016         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
13017         (PPERM_INVERT): Ditto.
13018         (PPERM_REVERSE): Ditto.
13019         (PPERM_REV_INV): Ditto.
13020         (PPERM_ZERO): Ditto.
13021         (PPERM_ONES): Ditto.
13022         (PPERM_SIGN): Ditto.
13023         (PPERM_INV_SIGN): Ditto.
13024         (PPERM_SRC1): Ditto.
13025         (PPERM_SRC2): Ditto.
13026
13027         * config/i386/sse.md (mulv2di3): Add SSE5 support.
13028         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
13029         allows a memory operand to be the value being added, and split it
13030         to improve vectorization.
13031         (sse5_pmacsdqh_mem): Ditto.
13032         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
13033         (sse5_mulv2div2di3_high): Ditto.
13034         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
13035         (vec_pack_trunc_v4si): Ditto.
13036         (vec_pack_trunc_v2di): Ditto.
13037         (sse5_pcmov_<mode>): Remove code that tried to use use
13038         andps/andnps instead of pcmov.
13039         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
13040         pmacsdqh instructions.
13041         (vec_widen_smult_lo_v4si): Ditto.
13042
13043         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
13044         (PPERM_INVERT): Ditto.
13045         (PPERM_REVERSE): Ditto.
13046         (PPERM_REV_INV): Ditto.
13047         (PPERM_ZERO): Ditto.
13048         (PPERM_ONES): Ditto.
13049         (PPERM_SIGN): Ditto.
13050         (PPERM_INV_SIGN): Ditto.
13051         (PPERM_SRC1): Ditto.
13052         (PPERM_SRC2): Ditto.
13053         (ix86_expand_sse_movcc): Move the SSE5 test after the if
13054         true/false tests.
13055         (ix86_expand_int_vcond): If SSE5 generate all possible integer
13056         comparisons.
13057         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
13058         says ignore whether the last reference is a memory operand.
13059
13060 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
13061             Paolo Bonzini <bonzini at gnu dot org>
13062
13063         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
13064         shift patterns.
13065
13066         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
13067         (vlshr<mode>3): Rename from vlshr<mode>3.
13068         (vashr<mode>3): Rename from vashr<mode>3.
13069         (mulv4sf3): Change the names of vector shift patterns.
13070         (mulv4si3): Ditto.
13071         (negv4sf2): Ditt.
13072
13073         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
13074         shift insns.
13075
13076         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
13077         (SI_SHLHI): Ditto.
13078         (SI_SHL): Ditto.
13079         (SI_SHLI): Ditto.
13080         (SI_ROTH): Ditto.
13081         (SI_ROTHI): Ditto.
13082         (SI_ROT): Ditto.
13083         (SI_ROTI): Ditto.
13084         (SPU_RL_0): Ditto.
13085         (SPU_RL_1): Ditto.
13086         (SPU_RL_2): Ditto.
13087         (SPU_RL_3): Ditto.
13088         (SPU_RL_4): Ditto.
13089         (SPU_RL_5): Ditto.
13090         (SPU_RL_6): Ditto.
13091         (SPU_RL_7): Ditto.
13092         (SPU_SL_0): Ditto.
13093         (SPU_SL_1): Ditto.
13094         (SPU_SL_2): Ditto.
13095         (SPU_SL_3): Ditto.
13096         (SPU_SL_4): Ditto.
13097         (SPU_SL_5): Ditto.
13098         (SPU_SL_6): Ditto.
13099         (SPU_SL_7): Ditto.
13100
13101         * config/spu/spu.md (v): New iterator macro to add v for vector types.
13102         (floatunssidf2_internal): Change vector/vector shift names.
13103         (floatunsdidf2_internal): Ditto.
13104         (mulv8hi3): Ditto.
13105         (ashrdi3): Ditto.
13106         (ashrti3): Ditto.
13107         (cgt_df): Ditto.
13108         (cgt_v2df): Ditto.
13109         (dftsv): Ditto.
13110         (vashl<mode>3): Rename from ashl<mode>3.
13111         (vashr<mode>3): Rename from ashr<mode>3.
13112         (vlshr<mode>3): Rename from lshr<mode>3.
13113         (vrotl<mode>3): Rename from rotl<mode>3.
13114
13115 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
13116
13117         PR target/36224
13118         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
13119         multiply gives the wrong value when doing widening multiplies.
13120         (vec_widen_smult_lo_v4si): Ditto.
13121
13122 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
13123
13124         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
13125         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
13126         emit_library_call_value.
13127         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
13128         * tree.h (ECF_LIBCALL_BLOCK): Removed.
13129         * calls.c (initialize_argument_information, precompute_arguments,
13130         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
13131         (precompute_arguments): Removed flags parameter.
13132         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
13133
13134 2008-05-14  Richard Guenther  <rguenther@suse.de>
13135
13136         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
13137         Make sure to register the store if the use is a PHI_NODE.
13138
13139 2008-05-14  Olivier Hainque  <hainque@adacore.com>
13140
13141         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
13142         memory if the component is to be referenced in BLKmode according
13143         to get_inner_reference.
13144
13145 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
13146
13147         * calls.c (emit_library_call_value_1): Restore code clearing
13148         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
13149
13150 2008-05-14  Olivier Hainque  <hainque@adacore.com>
13151             Nicolas Roche  <roche@adacore.com>
13152
13153         * configure.ac: Add support for a "gcc_subdir" variable in
13154         config-lang.in, to denote a subdirectory where the language/GCC
13155         integration files are to be found.
13156         * configure: Regenerate.
13157
13158 2008-05-14  Ira Rosen  <irar@il.ibm.com>
13159
13160         PR tree-optimization/36098
13161         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
13162         value for the first load in the group in case of a gap.
13163         (vect_build_slp_tree): Check that there are no gaps in loads.
13164
13165 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
13166
13167         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
13168         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
13169         expand_copysign_bit, ): Change call to emit_no_conflict_block to
13170         emit_insn and remove unneeded code to construct extra args.
13171         (emit_no_conflict_block): Removed.
13172         * optabls.h: (emit_no_conflict_block): Removed.
13173         * cse.c (cse_extended_basic_block): Remove search for
13174         REG_NO_CONFLICT note.
13175         * global.c: Removed incorrect comment added in revision 117.
13176         * expr.c (convert_move): Change call to emit_no_conflict_block to
13177         emit_insn.
13178         * recog.c: Change comments so that they do not mention
13179         REG_NO_CONFLICT.
13180         * local_alloc.c (combine_regs): Removed last parameter.
13181         (no_conflict_p): Removed.
13182         (block_alloc): Removed note, no_conflict_combined_regno and set
13183         local vars. Removed all code to process REG_NO_CONFLICT blocks.
13184         (combine_regs): Removed already_dead and code to look for
13185         REG_NO_CONFLICT notes.
13186         * lower_subreg (remove_retval_note): Removed code to look for
13187         REG_NO_CONFLICT block.
13188         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
13189         (resolve_clobber): Remove code to process libcalls that have
13190         REG_NO_CONFLICT notes.
13191         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
13192         case.
13193         * combine.c (can_combine_p, distribute_notes):  Removed
13194         REG_NO_CONFLICT case.
13195         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
13196         to emit_insns.
13197         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
13198         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
13199         Ditto.
13200         * reg-notes.def (NO_CONFLICT): Removed.
13201
13202 2008-05-14  David S. Miller  <davem@davemloft.net>
13203
13204         * config/sparc/sparc.c (sparc_profile_hook): If
13205         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
13206         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
13207         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
13208
13209 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13210
13211         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
13212
13213 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
13214
13215         PR target/36222
13216         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
13217         and op1 expansion before vector concat to have less live pseudos.
13218
13219 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13220
13221         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13222         ix86_expand_vector_set if supported.
13223
13224 2008-05-13  Diego Novillo  <dnovillo@google.com>
13225             Kenneth Zadeck  <zadeck@naturalbridge.com>
13226
13227         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
13228
13229         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
13230         phinodes_print_statistics, init_ssanames, fini_ssanames,
13231         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
13232         release_ssa_name, release_defs, replace_ssa_name_symbol,
13233         ssanames_print_statistics): Move ...
13234         * tree-flow.h: ... here.
13235         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
13236         Use FN instead of cfun.
13237         (make_ssa_name_fn): Rename from make_ssa_name.
13238         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
13239         * tree-flow-inline.h (make_ssa_name): Move from
13240         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
13241         * omp-low.c (expand_omp_parallel):
13242         * tree-flow-inline.h (redirect_edge_var_map_result):
13243         * tree-ssa.c (init_tree_ssa): Add argument FN.
13244         Use it instead of cfun.  Update all users.
13245
13246 2008-05-13  Tom Tromey  <tromey@redhat.com>
13247
13248         PR preprocessor/22168:
13249         * doc/cpp.texi (Top): Update menu.
13250         (Alternatives to Wrapper #ifndef): New node.
13251         (Other Directives): Document deprecation.
13252         (Obsolete Features): Remove menu.
13253         (Assertions): Merge node into Obsolete Features.
13254         (Obsolete once-only headers): Move earlier; rename to Alternatives
13255         to Wrapper #ifndef.
13256         * doc/cppopts.texi: Update.
13257         * c.opt (Wdeprecated): Enable for C and ObjC.
13258         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
13259         (C++ Dialect Options): Move -Wno-deprecated from here to...
13260         (Warning Options): ... here.
13261
13262 2008-05-13  Richard Guenther  <rguenther@suse.de>
13263
13264         PR middle-end/36227
13265         * fold-const.c (fold_sign_changed_comparison): Do not allow
13266         changes in pointer-ness.
13267
13268 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
13269
13270         PR target/24713
13271         * config/sh/sh.c (sh_expand_prologue): Don't clear
13272         RTX_FRAME_RELATED_P for push insns.
13273
13274 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
13275
13276         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
13277
13278 2008-05-12  Anatoly Sokolov <aesok@post.ru>
13279
13280         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
13281         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
13282         Use 'machine->is_leaf' instead of 'leaf_func_p'.
13283
13284 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13285
13286         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
13287         (*vec_concatv4sf_sse): This.
13288         (*sse2_concatv2si): Renamed to ...
13289         (*vec_concatv2si_sse2): This.
13290         (*sse1_concatv2si): Renamed to ...
13291         (*vec_concatv2si_sse): This.
13292         (*vec_concatv2di_rex): Renamed to ...
13293         (*vec_concatv2di_rex64): This.
13294         (*vec_concatv2si_sse4_1): New.
13295         (*vec_concatv2di_rex64_sse4_1): Likewise.
13296
13297 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
13298
13299         PR rtl-optimization/36111
13300         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
13301         that was created for swappable operands.
13302
13303 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
13304
13305         PR ada/36001
13306         * Makefile.in: Substitute GNATMAKE and GNATBIND.
13307         * configure.ac: Add call to ACX_PROG_GNAT.
13308
13309 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
13310
13311         * optc-gen.awk: Fix comment typo.
13312
13313 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13314
13315         * pretty-print.c (pp_integer_with_precision): Use
13316         HOST_LONG_LONG_FORMAT.
13317
13318 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
13319
13320         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
13321
13322 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
13323
13324         * config/i386/i386.c (bdesc_ptest): Removed.
13325         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
13326         (bdesc_args): Add __builtin_ia32_ptestz128,
13327         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
13328         (ix86_init_mmx_sse_builtins): Updated.
13329         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
13330         (ix86_expand_builtin): Updated.
13331
13332 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
13333
13334         * tree-cfg.c (valid_fixed_convert_types_p): New function.
13335         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
13336
13337 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
13338
13339         * value-prof.c (interesting_stringop_to_profile): Do not
13340         return early for BUILT_IN_MEMPCPY.
13341
13342 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
13343
13344         * calls.c (expand_call): Don't use callgraph to increase
13345         preferred_stack_boundary.
13346
13347         * cgraph.h (cgraph_rtl_info): Use unsigned on
13348         preferred_incoming_stack_boundary.
13349
13350         * final.c (rest_of_clean_state): Use unsigned on
13351         preferred_stack_boundary.
13352
13353 2008-05-09  Tom Tromey  <tromey@redhat.com>
13354
13355         PR preprocessor/22231:
13356         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
13357         proceeding.
13358
13359 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
13360
13361         PR tree-optimization/36129
13362         * tree-ssa-ccp.c: Include value-prof.h.
13363         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
13364         built-in function was folded to a constant.
13365         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
13366
13367 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
13368             Sebastian Pop  <sebastian.pop@amd.com>
13369
13370         * tree-scalar-evolution.c: Document instantiate_scev.
13371         (instantiate_parameters_1): Renamed instantiate_scev_1.
13372         Don't use the same loop for instantiation_loop and evolution_loop.
13373         (instantiate_scev): New.
13374         (instantiate_parameters): Moved...
13375         (resolve_mixers): Update call to instantiate_scev_1 to pass the
13376         same loop twice.  Maintains the semantics for this function.
13377         * tree-scalar-evolution.h (instantiate_scev): Declare.
13378         (instantiate_parameters): ...here.  Now static inline.
13379         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
13380         instead of resolve_mixers.
13381
13382 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
13383
13384         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
13385
13386 2008-05-09  Tomas Bily  <tbily@suse.cz>
13387
13388         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
13389         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
13390         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13391         * c-common.c (c_common_truthvalue_conversion): Likewise.
13392         * tree-object-size.c (compute_object_offset): Likewise.
13393         * tree-inline.c (estimate_num_insns_1): Likewise.
13394         * varasm.c (const_hash_1, compare_constant, copy_constant)
13395         (compute_reloc_for_constant, output_addressed_constants)
13396         (initializer_constant_valid_p): Likewise.
13397         * c-omp.c (check_omp_for_incr_expr): Likewise.
13398         * gimplify.c (gimplify_expr): Likewise.
13399         * c-typeck.c (c_finish_return): Likewise.
13400         * tree-vectorizer.c (supportable_widening_operation)
13401         (supportable_narrowing_operation): Likewise.
13402         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
13403         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
13404         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
13405         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
13406         (descr_info_loc): Likewise.
13407         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13408         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
13409         (fold_unary): Likewise.
13410         * builtins.c (get_pointer_alignment): Likewise.
13411         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
13412         (instantiate_parameters_1): Likewise.
13413         * tree.c (expr_align, stabilize_reference): Likewise.
13414         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
13415         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
13416         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
13417         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13418         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
13419         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
13420         Likewise.
13421         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
13422         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
13423         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
13424         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
13425         (forward_propagate_comparison)
13426         (tree_ssa_forward_propagate_single_use_vars): Likewise.
13427         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
13428         * emit-rtl.c (component_ref_for_mem_expr)
13429         (set_mem_attributes_minus_bitpos): Likewise.
13430         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
13431         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
13432         Likewise.
13433         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
13434         (build_function_call, pointer_diff, build_compound_expr)
13435         (c_finish_return): Likewise.
13436         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
13437         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
13438         Likewise.
13439         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
13440         * expr.c (is_aligning_offset): Likewise.
13441         * tree-ssa-alias.c (is_escape_site): Likewise.
13442         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
13443         (check_all_va_list_escapes): Likewise.
13444         * tree-ssa-loop-ivopts.c (determine_base_object)
13445         (determine_common_wider_type): Likewise.
13446         * dojump.c (do_jump): Likewise.
13447         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
13448         * tree-gimple.c (is_gimple_cast): Likewise.
13449         * fold-const.c (decode_field_reference, )
13450         (fold_sign_changed_comparison, fold_unary, fold_comparison)
13451         (fold_binary): Likewise.
13452         * tree-ssa-alias-warnings.c (find_alias_site_helper)
13453         (already_warned_in_frontend_p): Likewise.
13454         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
13455         * tree.c (really_constant_p, get_unwidened): Likewise.
13456         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
13457         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
13458         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
13459         Likewise.
13460         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
13461         CONVERT_EXPR_P.
13462         (CONVERT_EXPR_P): Define.
13463         (CASE_CONVERT): Define.
13464
13465 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
13466
13467         PR middle-end/36117
13468         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
13469         (delete_unmarked_insns): When deleting a call, call
13470         delete_unreachable_blocks.
13471         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
13472         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
13473
13474 2008-05-08  Richard Guenther  <rguenther@suse.de>
13475
13476         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
13477         (-ftree-salias): Likewise.
13478         (salias-max-implicit-fields): Remove param documentation.
13479         (salias-max-array-elements): Likewise.
13480         * tree-pass.h (pass_create_structure_vars): Remove.
13481         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
13482         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
13483         * tree-ssa-alias.c (create_structure_vars): Remove.
13484         (gate_structure_vars): Likewise.
13485         (pass_create_structure_vars): Likewise.
13486         (gate_build_alias): Likewise.
13487         (pass_build_alias): Adjust to run always and dump the function.
13488         * common.opt (ftree-salias): Hide.
13489         * passes.c (init_optimization_passes): Remove
13490         pass_create_structure_vars, adjust comment.
13491         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
13492         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
13493         * opts.c (decode_options): Do not set flag_tree_salias.
13494         (common_handle_option): Add OPT_ftree_salias to the backward
13495         compatibility section.
13496
13497 2008-05-08  Richard Guenther  <rguenther@suse.de>
13498
13499         * tree-flow-inline.h (var_can_have_subvars): Move ...
13500         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
13501         * tree-flow.h (var_can_have_subvars): Remove.
13502         (push_fields_onto_fieldstack): Remove.
13503         (sort_fieldstack): Likewise.
13504         (struct fieldoff): Move ...
13505         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
13506         alias_set and base_for_components fields.
13507         (sort_fieldstack): Make static.
13508         (push_fields_onto_fieldstack): Likewise.  Remove code that
13509         handles anything but RECORD_TYPEs.  Remove alias_set and
13510         base_for_components handling.
13511         (create_variable_info_for): Adjust.
13512
13513 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
13514
13515         * common.opt (Wframe-larger-than=): Shorten the help message
13516         to one line.
13517         * doc/invoke.texi (Wframe-larger-than=): Add more description.
13518
13519 2008-05-08  Rafael Espíndola  <espindola@google.com>
13520
13521         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
13522         trap.
13523         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
13524         trap and that both operands are gimple values.
13525         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
13526         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
13527         is a fp operation.
13528
13529 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
13530
13531         * read-rtl.c (join_c_conditions): Return the first string if the
13532         two strings are equal.
13533
13534 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
13535
13536         * gensupport.h (pred_data): Add a "num_codes" field.
13537         (add_predicate_code): Declare.
13538         * gensupport.c (add_predicate_code): New function.
13539         (std_pred_table): Add an "allows_const_p" field.
13540         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
13541         Remove the (incomplete) list of such codes from the codes field.
13542         (init_predicate_table): Use add_predicate_code.  Add all
13543         RTX_CONST_OBJs if allows_const_p is true.
13544         * genrecog.c (process_define_predicate): Use add_predicate_code.
13545
13546 2008-05-08  David Daney  <ddaney@avtrex.com>
13547             Richard Sandiford  <rsandifo@nildram.co.uk>
13548
13549         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
13550         special case of constant zero operands.
13551         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
13552         old and new values.  Special case constant zero values.
13553         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
13554         fails.
13555         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
13556         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
13557
13558 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
13559
13560         PR target/36090
13561         * simplify-rtx.c (simplify_plus_minus): Create CONST of
13562         similar RTX_CONST_OBJ before CONST_INT.
13563
13564 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
13565
13566         * stmt.c (expand_stack_restore): Change sa mode if needed.
13567
13568 2008-05-08  Richard Guenther  <rguenther@suse.de>
13569
13570         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
13571         return type to bool.
13572         (ix86_sol10_return_in_memory): Likewise.
13573         (ix86_i386elf_return_in_memory): Likewise.
13574         (ix86_i386interix_return_in_memory): Likewise.
13575         * config/i386/i386.c (ix86_return_in_memory): Likewise.
13576         (ix86_sol10_return_in_memory): Likewise.
13577         (ix86_i386elf_return_in_memory): Likewise.
13578         (ix86_i386interix_return_in_memory): Likewise.
13579
13580 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
13581
13582         PR bootstrap/36180
13583         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
13584         fndecl argument.
13585         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
13586         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
13587         declared in front.
13588
13589 2008-05-08  Richard Guenther  <rguenther@suse.de>
13590
13591         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
13592         * tree-data-ref.h (struct dr_alias): Remove subvars field.
13593         (DR_SUBVARS): Remove.
13594         * tree-dfa.c (dump_subvars_for): Remove.
13595         (debug_subvars_for): Likewise.
13596         (dump_variable): Do not dump subvars.
13597         (remove_referenced_var): Do not remove subvars.
13598         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
13599         (lookup_subvars_for_var): Remove.
13600         (get_subvars_for_var): Likewise.
13601         (get_subvars_at): Likewise.
13602         (get_first_overlapping_subvar): Likewise.
13603         (overlap_subvar): Likewise.
13604         * tree-flow.h (subvar_t): Remove.
13605         (struct var_ann_d): Remove subvars field.
13606         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
13607         argument.  Remove special handling of SFTs.
13608         (compute_tag_properties): Likewise.
13609         (set_initial_properties): Likewise.
13610         (compute_call_clobbered): Likewise.
13611         (count_mem_refs): Likewise.
13612         (compute_memory_partitions): Likewise.
13613         (compute_flow_insensitive_aliasing): Likewise.
13614         (setup_pointers_and_addressables): Likewise.
13615         (new_type_alias): Likewise.
13616         (struct used_part): Remove.
13617         (used_portions): Likewise.
13618         (struct used_part_map): Likewise.
13619         (used_part_map_eq): Likewise.
13620         (used_part_map_hash): Likewise.
13621         (free_used_part_map): Likewise.
13622         (up_lookup): Likewise.
13623         (up_insert): Likewise.
13624         (get_or_create_used_part_for): Likewise.
13625         (create_sft): Likewise.
13626         (create_overlap_variables_for): Likewise.
13627         (find_used_portions): Likewise.
13628         (create_structure_vars): Likewise.
13629         * tree.def (STRUCT_FIELD_TAG): Remove.
13630         * tree.h (MTAG_P): Adjust.
13631         (struct tree_memory_tag): Remove base_for_components and
13632         unpartitionable flags.
13633         (struct tree_struct_field_tag): Remove.
13634         (SFT_PARENT_VAR): Likewise.
13635         (SFT_OFFSET): Likewise.
13636         (SFT_SIZE): Likewise.
13637         (SFT_NONADDRESSABLE_P): Likewise.
13638         (SFT_ALIAS_SET): Likewise.
13639         (SFT_UNPARTITIONABLE_P): Likewise.
13640         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
13641         (union tree_node): Remove sft field.
13642         * alias.c (get_alias_set): Remove special handling of SFTs.
13643         * print-tree.c (print_node): Remove handling of SFTs.
13644         * tree-dump.c (dequeue_and_dump): Likewise.
13645         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
13646         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
13647         * tree-predcom.c (set_alias_info): Do not set subvars.
13648         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
13649         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
13650         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
13651         (add_vars_for_offset): Remove.
13652         (add_virtual_operand): Remove special handling of SFTs.
13653         (add_call_clobber_ops): Likewise.
13654         (add_call_read_ops): Likewise.
13655         (get_asm_expr_operands): Likewise.
13656         (get_modify_stmt_operands): Likewise.
13657         (get_expr_operands): Likewise.
13658         (add_to_addressable_set): Likewise.
13659         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
13660         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
13661         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
13662         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
13663         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
13664         (tree_node_structure): Likewise.
13665         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
13666         handling of SFTs.
13667         (find_what_p_points_to): Likewise.
13668
13669 2008-05-08  Sa Liu  <saliu@de.ibm.com>
13670
13671         * config/spu/spu.md: Fixed subti3 pattern.
13672
13673 2008-05-08  Richard Guenther  <rguenther@suse.de>
13674
13675         PR middle-end/36154
13676         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13677         sure to create a representative for trailing arrays for PTA.
13678
13679 2008-05-08  Richard Guenther  <rguenther@suse.de>
13680
13681         PR middle-end/36172
13682         * fold-const.c (operand_equal_p): Two objects which types
13683         differ in pointerness are not equal.
13684
13685 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
13686
13687         * calls.c (compute_argument_block_size): Add argument tree fndecl.
13688         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
13689         (emit_library_call_value_1): Add new variable fndecl initialized by
13690         NULL_TREE. It should be the decl type of orgfun, but this information
13691         seems not to be available here, so it uses the default calling abi.
13692         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
13693         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
13694         by TARGET_RETURN_IN_MEMORY.
13695         * config/i386/i386-interix.h: Likewise.
13696         * config/i386/i386.h: Likewise.
13697         * config/i386/i386elf.h: Likewise.
13698         * config/i386/ptx4-i.h: Likewise.
13699         * config/i386/sol2-10.h: Likewise.
13700         * config/i386/sysv4.h: Likewise.
13701         * config/i386/vx-common.h: Likewise.
13702         * config/cris/cris.h: Removed #if 0 clause.
13703         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
13704         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
13705         argument.
13706         (ix86_sol10_return_in_memory): Likewise.
13707         (ix86_i386elf_return_in_memory): New.
13708         (ix86_i386interix_return_in_memory): New.
13709         * config/mt/mt-protos.h (mt_return_in_memory): New.
13710         * config/mt/mt.c: Likewise.
13711         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
13712         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
13713         * config/bfin/bfin.h: Likewise.
13714         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
13715         argument.
13716         * config/bfin/bfin.c: Likewise.
13717         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
13718         * config/alpha/unicosmk.h: Likewise.
13719         * config/i386/cygming.h: Likewise.
13720         * config/iq2000/iq2000.h: Likewise.
13721         * config/mips/mips.h: Likewise.
13722         * config/mn10300/mn10300.h: Likewise.
13723         * config/rs6000/rs6000.h: Likewise.
13724         * config/score/score.h: Likewise.
13725         * config/spu/spu.h: Likewise.
13726         * config/v850/v850.h: Likewise.
13727         * defaults.h: Likewise.
13728         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
13729         * expr.c (emit_block_move): Adjust use of
13730         OUTGOING_REG_PARM_STACK_SPACE.
13731         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
13732         OUTGOING_REG_PARM_STACK_SPACE.
13733         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
13734
13735 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
13736
13737         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
13738         on OMP_RETURN for OMP_FOR.
13739
13740         PR debug/35896
13741         * dwarf2out.c (dw_expand_expr, common_check): Removed.
13742         (fortran_common): New function.
13743         (gen_variable_die): Call fortran_common instead of common_check,
13744         adjust for it returning tree instead of rtx.  Formatting.
13745
13746 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
13747
13748         PR rtl/7335
13749         PR rtl/33826
13750         * see.c (see_copy_insn): Copy new pure const attributes for new call.
13751         * c-decl.c (merge_decls): Ditto.
13752         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
13753         to RTL_CONST_OR_PURE_CALL_P.
13754         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
13755         Initialized DECL_LOOPING_CONST_PURE.
13756         (process_call_operands): Set tree_side_effects properly.
13757         * tree.h (TREE_READONLY_DECL_P): Removed.
13758         (DECL_IS_PURE): Renamed to DECL_PURE_P.
13759         (DECL_LOOPING_OR_CONST_P): New macro.
13760         (struct tree_function_decl): Added looping_const_or_pure_p.
13761         (ECF_*) Renumbered.
13762         (ECF_LOOPING_OR_CONST_P): New macro.
13763         * rtlanal.c (pure_const_p): Removed.
13764         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
13765         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
13766         to RTL_CONST_CALL_P.
13767         * ipa-pure-const.c (pure_const_state_e): Added looping field.
13768         (check_decl, check_tree, check_call, scan_function): Initialize
13769         looping.
13770         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
13771         (static_execute): Set looping true for recursive functions.
13772         Undo setting state to IPA_NEITHER for recursive functions.
13773         * cse.c (cse_insn):
13774         * ifcvt.c (noce_can_store_speculate_p): Changed
13775         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
13776         RTL_CONST_OR_PURE_CALL_P.
13777         * dse.c (scan_insn): Ditto.
13778         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
13779         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
13780         RTL_CONST_OR_PURE_CALL_P.
13781         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
13782         pure_call_p to RTL_CONST_CALL_P.
13783         * gimplify.c (gimplify_call_expr): Clear side effects for
13784         non-looping pure and constant calls.
13785         * calls.c (emit_call_1): Set rtl flags from ecf flags.
13786         (flags_from_decl_or_type): Set ecf flags from decl flags.
13787         (initialize_argument_information): Turn off
13788         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
13789         Change const to pure if callee_copies is true rather than just
13790         turning off const.
13791         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
13792         way of marking pure calls.
13793         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
13794         Remove hack that was supposed to fix pr7335 and remove old
13795         way of marking pure calls.
13796         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
13797         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
13798         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
13799         RTL_CONST_OR_PURE_CALL_P.
13800         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
13801         * loop-invariant.c (find_exits, find_invariant_bb): Changed
13802         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
13803         * sched-deps.c (schedule_analyze): Ditto.
13804         * rtl.h (struct rtx_def): Use call field, unchanging field, and
13805         return_val field of calls to represent pure and const function info.
13806         (CONST_OR_PURE_CALL_P): Deleted macro.
13807         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
13808         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
13809         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
13810         TREE_READONLY.
13811         * tree-optimize.c (execute_fixup_cfg): Added test for
13812         ECF_LOOPING_CONST_OR_PURE.
13813         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
13814         DECL_PURE_P.
13815         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
13816         effects for looping pure or const calls.
13817         (verify_gimple_expr): Added verification code.
13818         * config/alpha/alpha.c (alpha_legitimize_address,
13819         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
13820         RTL_CONST_CALL_P.
13821         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
13822         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
13823         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
13824         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
13825         RTL_CONST_OR_PURE_CALL_P.
13826         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
13827         and const calls to be deleted.
13828
13829 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
13830
13831         PR target/35714
13832         * config/i386/mmx.md (mmx_subv2sf3): New expander.
13833         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
13834         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
13835         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
13836         to handle nonimmediate operands.
13837         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
13838         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
13839         to handle nonimmediate operands.
13840         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
13841         (mmx_pmulhrwv4hi3): New expander.  Use
13842         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13843         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
13844         (sse2_umulv1siv1di3): New expander.  Use
13845         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13846         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
13847         (mmx_eq<mode>3): New expander.  Use
13848         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13849         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
13850         (mmx_uavgv8qi3): New expander.  Use
13851         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13852         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
13853         (mmx_uavgv4hi3): New expander.  Use
13854         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13855
13856         * config/i386/sse.md
13857         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
13858         to handle nonimmediate operands.
13859         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
13860         to handle nonimmediate operands.
13861         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
13862         to handle nonimmediate operands.
13863         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
13864         to handle nonimmediate operands.
13865         (sse2_unpckhpd_exp): New expander.  Use
13866         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13867         (sse2_unpcklpd_exp): New expander.  Use
13868         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13869         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
13870         to handle nonimmediate operands.
13871         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
13872         to handle nonimmediate operands.
13873         (*sse2_<plusminus_insn><mode>3): Rename from
13874         sse2_<plusminus_insn><mode>3 insn pattern.
13875         (sse2_<plusminus_insn><mode>3): New expander.  Use
13876         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13877         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
13878         (sse2_umulv2siv2di3): New expander.  Use
13879         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13880         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
13881         (sse4_1_mulv2siv2di3): New expander.  Use
13882         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13883         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
13884         (sse2_pmaddwd): New expander.  Use
13885         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13886         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
13887         (sse2_eq<mode>3): New expander.  Use
13888         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13889         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
13890         (sse4_1_eqv2di3): New expander.  Use
13891         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13892         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
13893         (sse2_uavgv16qi3): New expander.  Use
13894         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13895         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
13896         (sse2_uavgv16qi3): New expander.  Use
13897         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13898         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
13899         (sse2_uavgv8hi3): New expander.  Use
13900         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13901         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
13902         (ssse3_pmulhrswv8hi3): New expander.  Use
13903         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13904         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
13905         (ssse3_pmulhrswv4hi3): New expander.  Use
13906         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
13907
13908         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
13909         (<sse>_vmmul<mode>3): Ditto.
13910         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
13911         (divv2df3): Ditto.
13912         (ssse3_pmaddubsw128): Use register_operand for operand 1.
13913         (ssse3_pmaddubsw): Ditto.
13914
13915         * config/i386/i386.c (struct_builtin_description)
13916         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
13917         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
13918         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
13919         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
13920         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
13921         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
13922         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
13923         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
13924         (ix86_fixup_binary_operands): Assert that src1
13925         and src2 must have the same mode when swapped.
13926         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
13927         and ix86_binary_operator_ok.  Do not force operands in registers
13928         when optimizing.
13929
13930 2008-05-07  Jan Hubicka  <jh@suse.cz>
13931
13932         * cgraph.c (dump_cgraph_node): Update.
13933         * cgraph.h (cgraph_local_info): Break out inline summary.
13934         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
13935         hook.
13936         * ipa-inline (inline_summary): New accestor function.
13937         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
13938         cgraph_decide_inlining, compute_inline_parameters): Update.
13939         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
13940
13941 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
13942
13943         Cleanup ColdFire scheduling support and add V4 pipeline model.
13944
13945         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
13946         (define_attr cpu): Add cfv4 value.
13947         (define_attr type, define_attr type1): Merge into a single 'type'
13948         attribute.  Update all uses.
13949         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
13950         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
13951         Update all uses.
13952         (define_attr opx_mem, define_attr opy_mem): Remove.
13953         (define_attr op_mem): Clean up, update comment.
13954         (define_attr size): Use specific values instead of general int.
13955         (define_attr guess, define_attr split): Remove.  Update all uses.
13956         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
13957         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
13958         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
13959         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
13960         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
13961         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
13962         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
13963         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
13964         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
13965         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
13966         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
13967         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
13968         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
13969         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
13970         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
13971         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
13972         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
13973         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
13974         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
13975         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
13976         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
13977         Update or set attributes.
13978         (stack_tie): New fake instruction.
13979
13980         * config/m68k/m68k.h (TUNE_CFV4): New macro.
13981         (m68k_sched_attr_size): Update declaration.
13982         (m68k_sched_attr_type2): Remove.
13983         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
13984         Declare new bypass predicates.
13985
13986         * config/m68k/m68k.c (m68k_sched_issue_rate,
13987         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
13988         implementations.
13989         (TARGET_SCHED_ISSUE_RATE,
13990         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
13991         (override_options): Handle scheduling for ColdFire V4 core.
13992         (m68k_expand_prologue): Emit stack_tie.
13993         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
13994         'OP_TYPE_FPN'.  Update all uses.
13995         (sched_guess_p): Remove.
13996         (sched_address_type): Handle symbolic addresses.
13997         (sched_get_operand): New static function.
13998         (sched_operand_type): Merge into sched_attr_op_type.
13999         (sched_attr_op_type): Handle FP registers, handle quick constants,
14000         update.
14001         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
14002         (m68k_sched_attr_size): Update.  Move logic to ...
14003         (sched_get_attr_size_int): New static function.
14004         (sched_get_opxy_mem_type): New static function.
14005         (m68k_sched_attr_op_mem): Update.
14006         (m68k_sched_attr_type2): Remove.
14007         (sched_cfv4_bypass_data): New static variable.
14008         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
14009         (m68k_sched_issue_rate): Implement scheduler hook.
14010         (struct _sched_ib: enabled_p): New field.
14011         (m68k_sched_variable_issue): Update.  Handle V4.
14012         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
14013         sched_dump_class_func_t, sched_dump_split_class,
14014         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
14015         sched_dump_dfa_class, m68k_sched_dump): Remove.
14016         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
14017         hook.
14018         (m68k_sched_init_global): Remove statisctics dumping, introduce
14019         sanity check that all instructions have pipeline reservations.  Handle
14020         ColdFire V4 core.
14021         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
14022         Handle ColdFire V4 core.
14023         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
14024         New static functions.
14025         (m68k_sched_address_bypass_p): New bypass predicate.
14026         (sched_get_indexed_address_scale): New static function.
14027         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
14028
14029         * cf.md: Update comments.
14030         (define_attr type2): Remove.  Use 'type' attribute instead.
14031         Update all uses.
14032         (cf_ib): Rename to cfv123_ib.  Update all uses.
14033         (cf_oep): Rename to cfv123_oep.  Update all uses.
14034         (cf_chr): Rename to cfv123_chr.  Update all uses.
14035         (cf_mem): Rename to cfv123_mem.  Update all uses.
14036         (cf_mac): Move to more appropriate place.
14037         (cfv123_guess): New automaton and cpu_unit.
14038         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
14039         Update uses of 'size' attribute.  Handle before reload scheduling.
14040         (cfv123_guess): New dummy reservation for unhandled instructions.
14041         (cfv4_*): Pipeline description of ColdFire V4 core.
14042         (ignore): New reservation to handle 'ignore' type.
14043
14044 2008-05-07  Ian Lance Taylor  <iant@google.com>
14045
14046         PR middle-end/36013
14047         * gimplify.c (find_single_pointer_decl_1): Don't look through
14048         indirections.
14049         (find_single_pointer_decl): Adjust comments.
14050
14051 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
14052
14053         PR middle-end/36137
14054         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
14055         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
14056
14057         PR middle-end/36106
14058         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
14059         integral type rather than floating point, then VIEW_CONVERT_EXPR
14060         to the floating point type.
14061
14062 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
14063
14064         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
14065         TFmode op0 to register.
14066
14067 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
14068
14069         * c-decl.c (grokdeclarator): Comment typo.
14070
14071 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
14072
14073         * tree-flow.h: Remove prototype for computed_goto_p.
14074         * tree-cfg.c (computed_goto_p): Make static.
14075
14076 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
14077
14078         PR target/35657
14079         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
14080         (contains_aligned_value_p): This.  Handle _Decimal128.
14081         (ix86_function_arg_boundary): Only align _Decimal128 to its
14082         natural boundary and handle it properly.
14083
14084 2008-05-06  Martin Jambor  <mjambor@suse.cz>
14085
14086         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
14087         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
14088         (ipcp_method_set_orig_node): Removed.
14089         (ipcp_cval_get_cvalue_type): Removed.
14090         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
14091         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
14092         (ipcp_cval_set_cvalue_type): Removed.
14093         (ipcp_cval_get_cvalue): Removed.
14094         (ipcp_cval_set_cvalue): Removed.
14095         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
14096         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
14097         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
14098         (ipcp_cval_meet): Renamed to ipa_lattice_meet
14099         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
14100         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
14101         (ipcp_get_ith_lattice): Changed parameters.
14102         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
14103         (ipcp_lattice_from_jfunc): Changed parameters.
14104         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
14105         (ipcp_method_cval_print): Added temporary variable info.
14106         (ipcp_redirect): Removed already unused local variable caller.
14107         (ipcp_redirect): New temporary variable orig_callee_info
14108         (ipcp_redirect): Removed newly unused local variable callee.
14109         (ipcp_redirect): Removed (a bit confusing) local variable type.
14110         (ipcp_insert_stage): Added local variable info.
14111         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
14112         renamed too
14113         (ipcp_formal_create): Removed.
14114         (ipcp_method_cval_set): Removed.
14115         (ipcp_propagate_stage): Renamed lattice variables.
14116         (ipcp_method_cval_set_cvalue_type): Removed.
14117         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
14118         (ipcp_print_all_lattices): Changed printed strings to refer to
14119         lattices rather than cvals.
14120         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
14121         (ipcp_propagate_const): Changed formal parameters.
14122         (build_const_val): Changed formal parameters.
14123         (ipcp_insert_stage): Removed useless variable cvalue
14124         (build_const_val): Changed formal parameters.
14125         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
14126         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
14127         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
14128         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
14129         (ipcp_print_func_profile_counts): Changed string from "method" to
14130         "function"
14131         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
14132         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
14133         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
14134         (ipcp_structures_print): Renamed to ipcp_print_all_structures
14135         (ipcp_profile_print): Renamed to ipcp_print_profile_data
14136         (ipcp_lat_is_const): Changed parameters and made inline.
14137         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
14138         (ipcp_redirect): Renamed to ipcp_need_redirect_p
14139         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
14140         the predicate condition directly
14141         (ipcp_propagate_stage): Added local variable args. Removed local
14142         variable callee.  (Both are mere code simplifications.)
14143         (ipcp_method_dont_insert_const): Renamed to
14144         ipcp_node_not_modifiable_p.
14145         (ipcp_node_not_modifiable_p): Made inline.
14146         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
14147         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
14148         (ipcp_print_all_lattices): Removed variable cvalue
14149         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
14150         Updated comments.
14151
14152 2008-05-06  Olivier Hainque  <hainque@adacore.com>
14153
14154         * tree-sra.c (try_instantiate_multiple_fields): Early return
14155         if field has POINTER_TYPE.
14156
14157 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
14158
14159         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
14160         by using 'q' specifier for instruction.
14161         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
14162
14163 2008-05-06  Anatoly Sokolov <aesok@post.ru>
14164
14165         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
14166         Change mode of zero_extract from QImode to HImode.
14167         (sign bit tests peepholes): (Ditto.).
14168
14169 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
14170
14171         * config/i386/mmx.md: Remove double backslashes from asm templates.
14172         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
14173         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
14174         to handle nonimmediate operands.
14175         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
14176         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
14177         to handle nonimmediate operands.
14178         (*mmx_<code>v2sf3_finite): New insn pattern.
14179         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
14180         (mmx_<code>v2sf3): New expander.  Use
14181         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14182         (mmx_<plusminus_insn><mode>3): New expander.  Use
14183         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14184         (*mmx_<plusminus_insn><mode>3): New insn pattern.
14185         (mmx_add<mode>3): Removed.
14186         (mmx_ssadd<mode>3): Ditto.
14187         (mmx_usadd<mode>3): Ditto.
14188         (mmx_sub<mode>3): Ditto.
14189         (mmx_sssub<mode>3): Ditto.
14190         (mmx_ussub<mode>3): Ditto.
14191         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
14192         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
14193         to handle nonimmediate operands.
14194         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
14195         insn pattern.
14196         (mmx_smulv4hi3_highpart): New expander.  Use
14197         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14198         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
14199         insn pattern.
14200         (mmx_umulv4hi3_highpart): New expander.  Use
14201         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14202         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
14203         (mmx_<code>v4hi3): New expander.  Use
14204         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14205         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
14206         (mmx_<code>v8qi3): New expander.  Use
14207         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14208         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
14209         (mmx_<code><mode>3): New expander.  Use
14210         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14211
14212 2008-05-05  Jan Hubicka  <jh@suse.cz>
14213
14214         PR tree-optimization/36118
14215         * passes.c (pass_init_dump_file): Fix dump header.
14216
14217 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14218
14219         PR middle-end/36141
14220         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
14221         VCE for function decls.
14222
14223 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
14224
14225         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
14226
14227 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
14228
14229         * config/i386/i386.md (sat_plusminus): New.
14230         (plusminus_insn): Likewise.
14231         (plusminus_mnemonic): Likewise.
14232         (addsub): Removed.
14233         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
14234         (*<addsub><mode>3_cc_overflow): Renamed to ...
14235         (*<plusminus_insn><mode>3_cc_overflow): This.
14236         (*<addsub>si3_zext_cc_overflow): Renamed to ...
14237         (*<plusminus_insn>si3_zext_cc_overflow): This.
14238
14239         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
14240         (<plusminus_insn><mode>3): This.
14241         (*<addsub><mode>3): Renamed to ...
14242         (*<plusminus_insn><mode>3): This.
14243         (<sse>_vm<addsub><mode>3): Renamed to ...
14244         (<sse>_vm<plusminus_insn><mode>3): This.
14245         (sse3_h<addsub>v4sf3): Renamed to ...
14246         (sse3_h<plusminus_insn>v4sf3): This.
14247         (sse3_h<addsub>v2df3): Renamed to ...
14248         (sse3_h<plusminus_insn>v2df3): This.
14249         (<plusminus_insn><mode>3): New.
14250         (*<plusminus_insn><mode>3): Likewise.
14251         (sse2_<plusminus_insn><mode>3): Likewise.
14252         (add<mode>): Removed.
14253         (*add<mode>3): Likewise.
14254         (sse2_ssadd<mode>3): Likewise.
14255         (sse2_usadd<mode>3): Likewise.
14256         (sub<mode>3): Likewise.
14257         (*sub<mode>3): Likewise.
14258         (sse2_sssub<mode>3): Likewise.
14259         (sse2_ussub<mode>3): Likewise.
14260
14261 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
14262
14263         * gthr-single.h: Add in required interface elements as per gthr.h.
14264         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
14265         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
14266         Generalize UNUSED macro.
14267         (__gthread_once): Add.
14268         (__gthread_key_create): Add.
14269         (__gthread_key_delete): Add.
14270         (__gthread_getspecific): Add.
14271         (__gthread_setspecific): Add.
14272
14273 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
14274
14275         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
14276         the same size types for the indirect reference on the rhs, then
14277         create a VCE.
14278
14279 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
14280
14281         * config/i386/i386.md
14282         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
14283         one insn template instead of template series.
14284         (*xordi_1_rex64): Ditto.
14285         (*xordi_2_rex64): Ditto.
14286
14287 2008-05-05  Ira Rosen  <irar@il.ibm.com>
14288
14289         PR tree-optimization/36119
14290         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
14291         in case of SLP.
14292
14293 2008-06-04  Jan Hubicka  <jh@suse.cz>
14294
14295         tree-optimization/36100
14296         * tree-pass.h (pass_O0_always_inline): Declare.
14297         * ipa-inline.c (inline_transform): Remove dead code.
14298         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
14299         pass_O0_always_inline): New.
14300         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
14301
14302 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
14303
14304         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
14305         mnemonic in this_param move for TARGET_64BIT.
14306
14307 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
14308
14309         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
14310         (*strmovsi_rex_1): Ditto.
14311         (*strsetsi_1): Ditto.
14312         (*strsetsi_rex_1): Ditto.
14313
14314         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
14315         adddicc expanders using SWI mode iterator.
14316
14317 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
14318
14319         PR target/36121
14320         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
14321         argument handling.
14322
14323 2008-05-04  David S. Miller  <davem@davemloft.net>
14324
14325         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
14326         (sparc*-*-linux*): Use linux.h in tm_file.
14327         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
14328         compiler defaulting to 32-bit.
14329         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
14330         no longer needed.
14331         * config/sparc/linux.h: Remove definitions now obtained
14332         properly from linux.h
14333         * config/sparc/linux64.h: Likewise.
14334         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
14335         don't want this setting for 32-bit builds in a biarch compiler.
14336         * doc/install.texi: Add sparc-linux to list of targets
14337         supporting --enable-targets=all.
14338
14339 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
14340
14341         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
14342
14343 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
14344
14345         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
14346         after V4SI_FTYPE_V8HI.
14347         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
14348         case V4SI_FTYPE_V2DF.
14349
14350 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
14351
14352         * doc/invoke.texi (max-flow-memory-locations): Removed.
14353         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
14354
14355 2008-05-03  Richard Guenther  <rguenther@suse.de>
14356
14357         PR middle-end/34973
14358         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
14359
14360 2008-05-02  David S. Miller  <davem@davemloft.net>
14361
14362         * config.gcc (need_64bit_hwint): Document libcpp dependency.
14363
14364 2008-05-02  Simon Baldwin <simonb@google.com>
14365
14366         PR bootstrap/36108
14367         * c-common.h (warn_array_subscript_range): Removed.
14368         * c-common.c (warn_array_subscript_range): Ditto.
14369         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
14370         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
14371
14372 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
14373
14374         * config/i386/i386.c (ix86_special_builtin_type): New.
14375         (bdesc_special_args): Likewise.
14376         (ix86_expand_special_args_builtin): Likewise.
14377         (ix86_init_mmx_sse_builtins): Updated.
14378         (ix86_expand_builtin): Updated.
14379         (ix86_expand_store_builtin): Removed.
14380         (ix86_expand_unop_builtin): Likewise.
14381
14382         * config/i386/mm3dnow.h (__v2sf): Moved to ...
14383         * config/i386/mmintrin.h (__v2sf): Here.
14384
14385         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
14386         const __v2sf.
14387         (_mm_loadl_pi): Likewise.
14388         (_mm_storeh_pi): Replace __v2si with __v2sf.
14389         (_mm_storel_pi): Likewise.
14390
14391         * doc/extend.texi: Correct __builtin_ia32_loadhps,
14392         __builtin_ia32_loadlps, __builtin_ia32_storehps,
14393         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
14394         __builtin_ia32_loadlpd.
14395
14396 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
14397
14398         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
14399         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
14400         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
14401         (ix86_init_mmx_sse_builtins): Updated.
14402         (ix86_expand_args_builtin): Likewise.
14403         (ix86_expand_builtin): Likewise.
14404         (ix86_expand_unop1_builtin): Renamed to ...
14405         (ix86_expand_unop_vec_merge_builtin): This.
14406
14407 2008-05-01  Jan Hubicka  <jh@suse.cz>
14408
14409         PR bootstrap/36100
14410         * ipa-inline.c (inline_generate_summary): Make static.
14411         (inline_transform): Do not call inlining at -O0; make static.
14412         * passes.c (execute_todo): Add sanity check.
14413         (execute_one_ipa_transform_pass): Execute proper flags.
14414
14415 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
14416
14417         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
14418         (DECL_NONADDRESSABLE_P): Likewise.
14419         * alias.c (record_component_aliases): Fix comment.
14420
14421 2008-05-01  Simon Baldwin <simonb@google.com>
14422
14423         * c-common.h (warn_array_subscript_range): New function.
14424         * c-common.c (warn_array_subscript_range): Ditto.
14425         * tree-vrp.c (check_array_ref): Corrected code to agree with
14426         comment, ignoring only arrays of size 0 or size 1.
14427         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
14428
14429 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14430
14431         * config/i386/i386.c (ix86_builtin_type): Replace
14432         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
14433         (bdesc_args): Updated.
14434         (ix86_init_mmx_sse_builtins): Likewise.
14435         (ix86_expand_args_builtin): Likewise.
14436
14437         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
14438         with __v1di.
14439
14440         * doc/extend.texi: Correct __builtin_ia32_palignr.
14441
14442 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14443
14444         PR target/36095
14445         * config/i386/i386.c (bdesc_crc32): Removed.
14446         (ix86_expand_crc32): Likewise.
14447         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
14448         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
14449         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
14450         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
14451         UINT_FTYPE_UINT_UCHAR.
14452         (bdesc_args): Updated. Add crc32 builtins.
14453         (ix86_init_mmx_sse_builtins): Updated.
14454         (ix86_expand_args_builtin): Updated to support subreg.
14455
14456         * doc/extend.texi: Correct __builtin_ia32_crc32di.
14457
14458 2008-05-01  Jan Hubicka  <jh@suse.cz>
14459
14460         * tree-pass.h (opt_pass): Add IPA_PASS.
14461         (varpool_node, cgraph_node): Forward declare.
14462         (ipa_opt_pass): Define.
14463         (pass_ipa_inline): Turn into ipa_opt_pass.
14464         (pass_apply_inline): Remove.
14465         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
14466         (apply_inline): Turn into ....
14467         (inline_transform): ... this one.
14468         (inline_generate_summary): New function.
14469         (pass_apply_inline): Remove.
14470         * function.h (ipa_opt_pass): Forward declare structure; typedef;
14471         vector.
14472         (struct function): Add ipa_transforms_to_apply.
14473         * passes.c (register_one_dump_file): Work on IPA_PASS.
14474         (init_optimization_passes): Remove pass_inline_parameters and
14475         pass_apply_inline.
14476         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
14477         (execute_one_pass) ... here; apply transforms when possible.
14478         (add_ipa_transform_pass, execute_ipa_summary_asses,
14479         execute_one_ipa_transform_pass): New.
14480         (execute_ipa_pass_list): Update for IPA_PASS type.
14481
14482 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14483
14484         * config/i386/i386.c (ix86_builtin_type): Add
14485         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
14486         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
14487         (bdesc_args): Add SSE4a builtins.
14488         (ix86_init_mmx_sse_builtins): Updated.
14489         (ix86_expand_args_builtin): Likewise.
14490         (ix86_expand_builtin): Likewise.
14491
14492 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14493
14494         * config/i386/i386.c (ix86_builtin_type): Add
14495         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
14496         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
14497         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
14498         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
14499         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
14500         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
14501         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
14502         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
14503         and DI_FTYPE_DI_DI_INT.
14504         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
14505         (ix86_init_mmx_sse_builtins): Updated.
14506         (ix86_expand_args_builtin): Likewise.
14507         (ix86_expand_builtin): Likewise.
14508         (ix86_expand_binop_imm_builtin): Removed.
14509
14510         * doc/extend.texi: Correct __builtin_ia32_palignr128.
14511
14512 2008-04-30  Richard Guenther  <rguenther@suse.de>
14513
14514         PR tree-optimization/32921
14515         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
14516
14517 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
14518
14519         * config/arm/arm.c (arm_unwind_emit): Use
14520         crtl->all_throwers_are_sibcalls instead of
14521         cfun->all_throwers_are_sibcalls.
14522         (arm_output_fn_unwind): Likewise.
14523         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
14524         instead of cfun->uses_pic_offset_table.
14525         (frv_expand_prologue): Likewise.
14526         (frv_frame_pointer_required): Likewise.
14527         (frv_expand_fdpic_call): Likewise.
14528         (frv_emit_movsi): Likewise.
14529         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
14530         cfun->returns_pcc_struct instead of
14531         current_function_returns_pcc_struct.
14532         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
14533         instead of cfun->calls_eh_return.
14534         (m32c_pushm_popm): Likewise.
14535         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
14536         "extern" declaration.
14537
14538 2008-04-30  Richard Guenther  <rguenther@suse.de>
14539
14540         PR tree-optimization/21636
14541         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
14542         constant address.
14543         (evaluate_stmt): Print the likely value.
14544         (ccp_visit_stmt): Avoid excessive vertical spacing.
14545
14546 2008-04-30  Rafael Espíndola  <espindola@google.com>
14547
14548         * builtins.c (fold_call_expr): Return realret.
14549         * tree-ssa-threadedge.c
14550         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14551         __builtin_object_size.
14552
14553 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
14554
14555         * gcc.c (wrapper_string): New variable.
14556         (insert_wrapper): New function.
14557         (execute): New option -wrapper.
14558         * doc/invoke.texi (Overall Options): New driver option -wrapper.
14559
14560 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
14561
14562         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
14563         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
14564         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
14565         from...
14566         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
14567         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
14568         config/rs6000/e500crtres64gprctr.asm,
14569         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
14570         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
14571         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
14572         config/rs6000/e500crtsav64gprctr.asm,
14573         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
14574         config/rs6000/e500crtsavg64gprctr.asm: New files.
14575         * config/rs6000/t-ppccomm: Add build rules for new files.
14576         (LIB2FUNCS_STATIC_EXTRA): Add new files.
14577         * config/rs6000/t-netbsd: Add build rules for new files.
14578         (LIB2FUNCS_STATIC_EXTRA): New variable.
14579         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
14580         (CRTSAVRES_DEFAULT_SPEC): Likewise.
14581         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
14582
14583 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
14584
14585         * config/i386/i386.c (ix86_builtin_type): Add
14586         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
14587         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
14588         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
14589         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
14590         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
14591         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
14592         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
14593         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
14594         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
14595         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
14596         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
14597         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
14598         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
14599         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
14600         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
14601         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
14602         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
14603         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
14604         V1DI_FTYPE_V2SI_V2SI.
14605         (bdesc_2arg): Moved to ...
14606         (bdesc_args): Here.
14607         (ix86_init_mmx_sse_builtins): Updated.
14608         (ix86_expand_args_builtin): Updated.  Take a pointer
14609         to const struct builtin_description.  Handle comparison
14610         builtin functions.
14611         (ix86_expand_sse_compare): Take a new argument for swapping operands.
14612         (ix86_expand_builtin): Updated.
14613
14614         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
14615         (ssse3_pmaddubsw128): This.
14616         (ssse3_pmaddubswv4hi3): Renamed to ...
14617         (ssse3_pmaddubsw): This.
14618
14619         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
14620         (__builtin_ia32_packssdw128): Likewise.
14621         (__builtin_ia32_packuswb128): Likewise.
14622         (__builtin_ia32_pmaddubsw): Likewise.
14623         (__builtin_ia32_pmaddubsw128): Likewise.
14624
14625 2008-04-30  Richard Guenther  <rguenther@suse.de>
14626
14627         PR tree-optimization/14847
14628         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
14629         (recognize_bits_test): Use it.
14630         (recognize_single_bit_test): Likewise.
14631
14632 2008-04-30  Martin Jambor  <mjambor@suse.cz>
14633
14634         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
14635         instead of setting number of formal parameters to zero.
14636         (ipcp_init_stage): Do not set the number of actual parameters to zero
14637         either.
14638         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
14639         which are called with variable number of arguments.
14640         (ipcp_insert_stage): Explicitely skipping all nodes which are
14641         called with variable number of arguments.
14642         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
14643         number of parameters.
14644
14645         * ipa-prop.h (struct ipa_node_params): Added flag
14646         called_with_var_arguments
14647         (ipa_set_param_count): Added.  Changed sole setter to use it.
14648         (ipa_get_param_count): Added.  All readers of param_count
14649         converted to use it instead.
14650         (ipa_set_called_with_variable_arg): Added.
14651         (ipa_is_called_with_var_arguments): Added.
14652         (ipa_get_ith_param): Added.  All readers of param_decls converted
14653         to use it instead.
14654         (ipa_set_cs_argument_count): Added, sole writer to argument_count
14655         changed to use it.
14656         (ipa_get_cs_argument_count): Added, all readers of argument_count
14657         changed to cal it.
14658         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
14659         to use it.
14660
14661         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
14662         (struct ipcp_lattice): Renamed cval_type to type
14663         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
14664
14665         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
14666         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
14667         (ipcp_insert_stage): Changed the type of variable cvalue to tree
14668         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
14669         (build_const_val): Changed the type of parameter cvalue to tree
14670         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
14671         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
14672
14673         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
14674         constant
14675
14676         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
14677         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
14678         (ipa_add_method): Renamed to ipa_push_func_to_list
14679         (ipa_remove_method): Renamed to ipa_pop_func_from_list
14680         (ipa_callsite_param_count): Removed.
14681         (ipa_callsite_param_count_set): Removed.
14682         (ipa_callsite_param): Removed.
14683         (ipa_callsite_callee): Removed.
14684         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
14685         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
14686         (ipa_method_formal_count): Removed.
14687         (ipa_method_formal_count_set): Removed.
14688         (ipa_method_get_tree): Removed.
14689         (ipa_method_tree_map_create): Removed.
14690         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
14691         (ipa_create_param_decls_array): Creates the array itself
14692         (ipa_create_param_decls_array): Temporary variable info instead of
14693         a few dereferences.
14694         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
14695         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
14696         (get_type): Removed.
14697         (ipa_jf_get_info_type): Removed.
14698         (ipa_node_create): Renamed to ipa_create_node_params
14699         (ipa_free): Renamed to ipa_free_all_node_params
14700         (ipa_nodes_create): Renamed to ipa_create_all_node_params
14701         (ipa_edges_create): Renamed to ipa_create_all_edge_args
14702         (ipa_edges_free): Renamed to ipa_free_all_edge_args
14703         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
14704         (ipa_free_all_node_params): Deallocation to jump_functions moved to
14705         ipa_free_all_edge_args
14706         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
14707         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
14708         (ipa_create_methodlist_node): Removed.
14709         (ipa_methodlist_method): Removed.
14710         (ipa_methodlist_method_set): Removed.
14711         (ipa_methodlist_next_method): Removed.
14712         (ipa_methodlist_next_method_set): Removed.
14713         (ipa_method_is_modified): Removed.
14714         (ipa_method_modify_create): Removed.
14715         (ipa_method_modify_init): Temporary variable info instead of a few
14716         dereferences.
14717         (ipa_detect_param_modifications): Temporary variable info instead of
14718         a few dereferences.
14719         (ipa_compute_jump_functions): Temporary variable info instead of
14720         a few dereferences.
14721         (ipa_method_modify_set): Removed.
14722         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
14723         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
14724         than craph_node as the first parameter.
14725         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
14726         (ipa_method_modify_init): Removed.
14727         (ipa_compute_jump_functions): Added a temp variable instead of
14728         repeatadly dereferencing the cgraph_edge.aux pointer
14729         (ipa_callsite_param_set_type): Removed.
14730         (ipa_compute_jump_functions): i renamed to index and moved to
14731         an inner block
14732         (ipa_callsite_param_set_info_type_formal): Removed.
14733         (ipa_callsite_param_set_info_type): Removed.
14734         (ipa_callsite_param_map_create): Removed.
14735         (ipa_callsite_tree): Removed.
14736         (ipa_callsite_caller): Removed.
14737         (ipa_pop_func_from_list): return_method removed to return_func
14738
14739         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
14740         prefixed all values with IPA_. Changed all users.
14741         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
14742         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
14743         and FORMAL_IPATYPE IPA_PASS_THROUGH.
14744         (union parameter_info): Renamed to jump_func_value.
14745         (union jump_func_value): Renamed value to constant
14746         (struct ipa_jump_func): Renamed info_type to value
14747         (struct ipa_node): Renamed to ipa_node_params
14748         (struct ipa_node_params): Renamed ipa_arg_num to param_count
14749         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
14750         (struct ipa_node_params): Renamed ipa_mod to modified_flags
14751         (struct ipa_edge): Renamed to ipa_edge_args
14752         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
14753         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
14754         (struct ipa_methodlist): Renamed to ipa_func_list
14755         (struct ipa_func_list): method_p renamed to node, next_method
14756         renamed to next
14757         (ipa_methodlist_p): Removed, switched all users to struct pointer
14758         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
14759
14760 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
14761
14762         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
14763         (rs6000_emit_epilogue): Use backchain to restore only when we
14764         have a large frame.  Make use of frame pointer to restore if we
14765         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
14766
14767 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
14768
14769         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
14770         Add mode to zero_extract.
14771         (sign bit tests peepholes): (Ditto.).
14772
14773 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
14774
14775         * config/i386/i386.c (ix86_builtins): Replace Prescott New
14776         Instructions in comments with SSE3.
14777         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
14778         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
14779         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
14780         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
14781         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
14782         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
14783         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
14784         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
14785         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
14786         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
14787         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
14788         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
14789         (bdesc_sse_args): Renamed to ...
14790         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
14791         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
14792         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
14793         IX86_BUILTIN_FABSQ.
14794         (bdesc_1arg): Moved to ...
14795         (bdesc_args): Here.
14796         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
14797         Instructions in comments with SSE3.
14798         (ix86_expand_sse_operands_builtin): Renamed to ...
14799         (ix86_expand_args_builtin): This.  Updated.
14800         (ix86_expand_unop1_builtin): Update comments.
14801         (ix86_expand_builtin): Updated.
14802
14803 2008-04-29  Richard Guenther  <rguenther@suse.de>
14804
14805         PR tree-optimization/36078
14806         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
14807         Update virtual SSA form after cleaning up the CFG.
14808
14809 2008-04-29  Richard Guenther  <rguenther@suse.de>
14810
14811         PR middle-end/15255
14812         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
14813
14814 2008-04-29  Richard Guenther  <rguenther@suse.de>
14815
14816         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
14817         (compute_may_aliases): Do not call finalize_ref_all_pointers.
14818         (compute_flow_insensitive_aliasing): Do not treat
14819         PTR_IS_REF_ALL pointers special.
14820         (get_smt_for): Likewise.
14821         (may_alias_p): Re-structure.
14822         (is_escape_site): A ref-all pointer conversion is not an escape site.
14823         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
14824         PTR_IS_REF_ALL pointers special.
14825         * tree-ssa-structalias.h (struct alias_info): Remove
14826         ref_all_symbol_mem_tag field.
14827         (PTR_IS_REF_ALL): Remove.
14828
14829 2008-04-29  Richard Guenther  <rguenther@suse.de>
14830
14831         PR middle-end/36077
14832         * fold-const.c (extract_muldiv_1): In combining division constants
14833         make sure to never overflow.
14834
14835 2008-04-29  Nick Clifton  <nickc@redhat.com>
14836
14837         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
14838
14839 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14840
14841         PR bootstrap/35169
14842         * optc-gen.awk: Work around HP-UX/IA awk bug.
14843
14844 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
14845
14846         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
14847         2008-04-25 commit.
14848
14849 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
14850
14851         PR target/36073
14852         * config/i386/i386.md
14853         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
14854         Change operand 1 predicate to nonimmediate_operand.
14855
14856 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
14857
14858         PR debug/36060
14859         * dwarf2out.c (struct die_struct): Mark as chain_circular through
14860         die_sub field.
14861         * gengtype.c (walk_type, write_func_for_structure): Handle
14862         chain_circular.
14863         * doc/gty.texi: Document chain_circular.
14864
14865 2008-04-28  Richard Guenther  <rguenther@suse.de>
14866
14867         PR tree-optimization/36066
14868         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
14869         SCEV and loop.
14870
14871 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
14872
14873         PR target/36064
14874         * config/i386/i386.md
14875         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
14876         Use match_scratch instead of match_operand for operands 3 and 4.
14877
14878 2008-04-27  Richard Guenther  <rguenther@suse.de>
14879
14880         PR tree-optimization/18754
14881         PR tree-optimization/34223
14882         * tree-pass.h (pass_complete_unrolli): Declare.
14883         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
14884         loop size before and after unconditionally of UL_NO_GROWTH in effect.
14885         Rewrite loop into loop closed SSA form if it is not already.
14886         (tree_unroll_loops_completely): Re-structure to iterate over
14887         innermost loops with intermediate CFG cleanups.
14888         Unroll outermost loops only if requested or the code does not grow
14889         doing so.
14890         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
14891         loops are available.
14892         (tree_vectorize): Instead do so here.
14893         (tree_complete_unroll): Also unroll outermost loops.
14894         (tree_complete_unroll_inner): New function.
14895         (gate_tree_complete_unroll_inner): Likewise.
14896         (pass_complete_unrolli): New pass.
14897         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
14898         uses outside of the loop.
14899         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
14900         form if it is available.
14901         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
14902         * passes.c (init_optimization_passes): Schedule complete inner
14903         loop unrolling pass before the first CCP pass after final inlining.
14904
14905 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
14906
14907         * targhooks.h (default_emutls_var_fields,
14908         default_emutls_var_init): Declare.
14909         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
14910         * target.h (struct gcc_target): Add struct emutls member.
14911         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
14912         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
14913         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
14914         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
14915         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
14916         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
14917         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
14918         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
14919         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
14920         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
14921         emit debug information.
14922         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
14923         * varasm.c: Include targhooks.h.
14924         (emutls_object_section, emutls_tmpl_section): New.
14925         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
14926         (EMUTLS_SEPARATOR): New.
14927         (prefix_name): New.
14928         (get_emutls_object_name): New.
14929         (default_emutls_var_fields): New, broken out of ...
14930         (get_emutls_object_type): ... here.  Adjust to use target hooks.
14931         (get_emutls_init_templ_addr): Adjust to use target hooks.
14932         (emutls_decl): Adjust to use target hooks.
14933         (emutls_finish): Likewise.
14934         (default_emutls_var_init): New, broken out of ...
14935         (assemble_variable): ... here.  Adjust to use target hooks.
14936         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
14937         SECCAT_EMUTLS_TMPL.
14938         * c-common.c (handle_section_attribute): Prevent overriding
14939         sections for emulated tls with special sections.
14940         * config/i386/i386.c (x86_64_elf_select_section): Add
14941         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
14942         (x86_64_elf_unique_section): Likewise.
14943         * config/vxworks.c: Include tree.h.
14944         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
14945         (vxworks_override_options): Set TLS scheme.
14946         * doc/tm.texi (Emulated TLS): New node.
14947
14948 2008-04-26  Simon Baldwin <simonb@google.com>
14949
14950         PR c/35652
14951         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
14952         with propagated string constants.
14953
14954 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
14955
14956         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
14957         constraint for operand 2 when operand 0 is memory operand.
14958         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
14959         operand 0 is memory operand.
14960         (fix_trunc<mode>_i387_with_temp): Ditto.
14961         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
14962         operand 2 when operand 1 is memory operand.
14963         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
14964         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
14965         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
14966         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
14967         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
14968         operands 2,3 and 4 when operand 1 is memory operand.
14969         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
14970         is memory operand.
14971         (fistdi2_floor_with_temp): Ditto.
14972         (fist<mode>2_floor_with_temp): Ditto.
14973         (fistdi2_ceil_with_temp): Ditto.
14974         (fist<mode>2_ceil_with_temp): Ditto.
14975         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
14976
14977 2008-04-26  David Daney  <ddaney@avtrex.com>
14978
14979         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
14980         unspec_volitile.
14981         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
14982         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
14983         UNSPEC_UPDATE_GOT_VERSION): Renumber.
14984         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
14985         (compare_and_swap_12): New insn.
14986         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
14987         * config/mips/mips.c (mips_force_binary): New function.
14988         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
14989         (mips_expand_compare_and_swap_12): New function.
14990         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
14991
14992 2008-04-25  Jan Hubicka  <jh@suse.cz>
14993
14994         PR testsuite/35843
14995         * cfgexpand.c (pass_expand): Turn into RTL pass.
14996         * passes.c (execute_one_pass): Do pass typechecking after execution.
14997         * tree-pass.h (pass_expand): Turn into RTL pass.
14998
14999         * function.h (struct rtl_data): Move here fields
15000         accesses_prior_frames, calls_eh_return, saves_all_registers,
15001         has_nonlocal_goto, has_asm_statement, is_thunk,
15002         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
15003         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
15004         arg_pointer_save_area_init from struct function; turn into bool.
15005         (struct function): Move
15006         calls_eh_return, saves_all_registers, has_nonlocal_goto,
15007         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
15008         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
15009         tail_call_emit, arg_pointer_save_area_init
15010         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
15011         (current_function_returns_struct, current_function_returns_pcc_struct,
15012         current_function_calls_setjmp, current_function_calls_alloca,
15013         current_function_accesses_prior_frames,
15014         current_function_calls_eh_return, current_function_is_thunk,
15015         current_function_stdarg, current_function_profile,
15016         current_function_limit_stack, current_function_uses_pic_offset_table,
15017         current_function_uses_const_pool, current_function_has_nonlocal_label,
15018         current_function_saves_all_registers,
15019         current_function_has_nonlocal_goto,
15020         current_function_has_asm_statement): Remove accesor macros.
15021         * ra-conflict.c (global_conflicts): Update.
15022         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
15023         (suitable_for_tail_call_opt_p): Update.
15024         * builtins.c (expand_builtin_return_addr): Update.
15025         (expand_builtin_setjmp_setup): Update.
15026         (expand_builtin_nonlocal_goto): Update.
15027         * final.c (final_start_function): Update.
15028         (profile_function): Update.
15029         (leaf_function_p): Update.
15030         (only_leaf_regs_used): Update.
15031         * df-scan.c (df_get_exit_block_use_set): Update.
15032         * dojump.c (clear_pending_stack_adjust): Update.
15033         * tree-stdarg.c (gate_optimize_stdarg): Update.
15034         * gimple-low.c (lower_function_body): Update.
15035         * global.c (compute_regsets): Update.
15036         (global_alloc): Update.
15037         * dwarf2out.c (dwarf2out_begin_prologue): Update.
15038         * expr.c (expand_assignment): Update.
15039         * dse.c (dse_step0): Update.
15040         (dse_step1): Update.
15041         * c-decl.c (store_parm_decls): Update.
15042         * local-alloc.c (combine_regs): Update.
15043         (find_free_reg): Update.
15044         * function.c (assign_parms_augmented_arg_list): Update.
15045         (assign_parm_find_data_types): Update.
15046         (assign_parms): Update.
15047         (allocate_struct_function): Update.
15048         (expand_function_start): Update.
15049         (expand_function_end): Update.
15050         (get_arg_pointer_save_area): Update.
15051         (thread_prologue_and_epilogue_insns): Update.
15052         (rest_of_match_asm_constraints): Update.
15053         * stor-layout.c (variable_size): Update.
15054         * gcse.c (gcse_main): Update.
15055         (bypass_jumps): Update.
15056         * gimplify.c (gimplify_function_tree): Update.
15057         * calls.c (emit_call_1): Update.
15058         (expand_call): Update.
15059         * bt-load.c (compute_defs_uses_and_gen): Update.
15060         * except.c (sjlj_assign_call_site_values): Update.
15061         (sjlj_emit_function_enter): Update.
15062         (can_throw_external): Update.
15063         (set_nothrow_function_flags): Update.
15064         (expand_builtin_unwind_init): Update.
15065         (expand_eh_return): Update.
15066         (convert_to_eh_region_ranges): Update.
15067         (output_function_exception_table): Update.
15068         * emit-rtl.c (gen_tmp_stack_mem): Update.
15069         * cfgexpand.c (expand_used_vars): Update.
15070         (tree_expand_cfg): Update.
15071         * cfgcleanup.c (rest_of_handle_jump): Update.
15072         * explow.c (allocate_dynamic_stack_space): Update.
15073         * varasm.c (assemble_start_function): Update.
15074         (force_const_mem): Update.
15075         (mark_constant_pool): Update.
15076         * tree-optimize.c (tree_rest_of_compilation): Update.
15077         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
15078         * tree-cfg.c (notice_special_calls): Update.
15079         (is_ctrl_altering_stmt): Update.
15080         (tree_can_make_abnormal_goto): Update.
15081         (tree_purge_dead_abnormal_call_edges): Update.
15082         * config/alpha/predicates.md: Update.
15083         * config/alpha/alpha.c (alpha_sa_mask): Update.
15084         (alpha_sa_size): Update.
15085         (alpha_does_function_need_gp): Update.
15086         (alpha_expand_prologue): Update.
15087         (alpha_start_function): Update.
15088         (alpha_output_function_end_prologue): Update.
15089         (alpha_expand_epilogue): Update.
15090         * config/frv/frv.c (frv_stack_info): Update.
15091         (frv_expand_epilogue): Update.
15092         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
15093         (s390_register_info): Update.
15094         (s390_frame_info): Update.
15095         (s390_init_frame_layout): Update.
15096         (s390_can_eliminate): Update.
15097         (save_gprs): Update.
15098         * config/spu/spu.c (spu_split_immediate): Update.
15099         (need_to_save_reg): Update.
15100         (spu_expand_prologue): Update.
15101         (spu_expand_epilogue): Update.
15102         * config/sparc/sparc.md: Update.
15103         * config/sparc/sparc.c (eligible_for_return_delay): Update.
15104         (sparc_tls_got): Update.
15105         (legitimize_pic_address): Update.
15106         (sparc_emit_call_insn): Update.
15107         (sparc_expand_prologue): Update.
15108         (output_return): Update.
15109         (print_operand): Update.
15110         (sparc_function_ok_for_sibcall): Update.
15111         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
15112         * config/m32r/m32r.md: Update.
15113         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
15114         (m32r_compute_frame_size): Update.
15115         (m32r_expand_prologue): Update.
15116         (m32r_expand_epilogue): Update.
15117         (m32r_legitimize_pic_address): Update.
15118         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
15119         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
15120         * config/i386/i386.c (ix86_frame_pointer_required): Update.
15121         (gen_push): Update.
15122         (ix86_save_reg): Update.
15123         (ix86_compute_frame_layout): Update.
15124         (ix86_expand_prologue): Update.
15125         (ix86_expand_epilogue): Update.
15126         * config/sh/sh.c (output_stack_adjust): Update.
15127         (calc_live_regs): Update.
15128         (sh5_schedule_saves): Update.
15129         (sh_expand_prologue): Update.
15130         (sh_expand_epilogue): Update.
15131         (sh_setup_incoming_varargs): Update.
15132         (sh_allocate_initial_value): Update.
15133         (sh_get_pr_initial_val): Update.
15134         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
15135         * config/sh/sh.md (label:): Update.
15136         * config/avr/avr.c (out_movhi_mr_r): Update.
15137         * config/crx/crx.h (enum): Update.
15138         * config/xtensa/xtensa.h (along): Update.
15139         * config/stormy16/stormy16.c Update.
15140         (xstormy16_compute_stack_layout): Update.
15141         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
15142         (fr30_expand_prologue): Update.
15143         * config/cris/cris.c (cris_conditional_register_usage): Update.
15144         (cris_reg_saved_in_regsave_area): Update.
15145         (cris_initial_frame_pointer_offset): Update.
15146         (cris_simple_epilogue): Update.
15147         (cris_expand_prologue): Update.
15148         (cris_expand_epilogue): Update.
15149         (cris_expand_pic_call_address): Update.
15150         (cris_asm_output_symbol_ref): Update.
15151         (cris_asm_output_label_ref): Update.
15152         * config/cris/cris.md Update.
15153         * config/iq2000/iq2000.c (compute_frame_size): Update.
15154         (iq2000_expand_epilogue): Update.
15155         * config/mt/mt.h (save_direction): Update.
15156         * config/mn10300/mn10300.c (mn10300_function_value): Update.
15157         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
15158         (ia64_secondary_reload_class): Update.
15159         * config/m68k/m68k.c (m68k_save_reg): Update.
15160         (m68k_expand_prologue): Update.
15161         (m68k_expand_epilogue): Update.
15162         (legitimize_pic_address): Update.
15163         * config/rs6000/rs6000.c (rs6000_got_register): Update.
15164         (first_reg_to_save): Update.
15165         (first_altivec_reg_to_save): Update.
15166         (compute_vrsave_mask): Update.
15167         (compute_save_world_info): Update.
15168         (rs6000_stack_info): Update.
15169         (spe_func_has_64bit_regs_p): Update.
15170         (rs6000_ra_ever_killed): Update.
15171         (rs6000_emit_eh_reg_restore): Update.
15172         (rs6000_emit_allocate_stack): Update.
15173         (rs6000_emit_prologue): Update.
15174         (rs6000_emit_epilogue): Update.
15175         (rs6000_output_function_epilogue): Update.
15176         (output_profile_hook): Update.
15177         (rs6000_elf_declare_function_name): Update.
15178         * config/rs6000/rs6000.h (rs6000_args): Update.
15179         * config/rs6000/rs6000.md: Update.
15180         * config/mcore/mcore.c (mcore_expand_prolog): Update.
15181         * config/arc/arc.c (arc_output_function_epilogue): Update.
15182         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
15183         * config/darwin.c (machopic_function_base_name): Update.
15184         * config/score/score3.c (score3_compute_frame_size): Update.
15185         (rpush): Update.
15186         (rpop): Update.
15187         (score3_epilogue): Update.
15188         * config/score/score7.c (score7_compute_frame_size): Update.
15189         (score7_prologue): Update.
15190         (score7_epilogue): Update.
15191         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
15192         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
15193         * config/arm/arm.c (use_return_insn): Update.
15194         (require_pic_register): Update.
15195         (arm_load_pic_register): Update.
15196         (arm_compute_save_reg0_reg12_mask): Update.
15197         (arm_compute_save_reg_mask): Update.
15198         (thumb1_compute_save_reg_mask): Update.
15199         (output_return_instruction): Update.
15200         (arm_output_function_prologue): Update.
15201         (arm_output_epilogue): Update.
15202         (arm_get_frame_offsets): Update.
15203         (arm_expand_prologue): Update.
15204         (thumb_pushpop): Update.
15205         (thumb_exit): Update.
15206         (thumb1_expand_prologue): Update.
15207         (thumb1_expand_epilogue): Update.
15208         (arm_unwind_emit): Update.
15209         (arm_output_fn_unwind): Update.
15210         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
15211         * config/arm/arm.md: Update.
15212         * config/pa/pa.md: Update.
15213         * config/pa/pa.c (legitimize_pic_address): Update.
15214         (compute_frame_size): Update.
15215         (hppa_expand_prologue): Update.
15216         (hppa_expand_epilogue): Update.
15217         (borx_reg_operand): Update.
15218         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
15219         (HARD_REGNO_RENAME_OK): Update.
15220         * config/mips/mips.c (mips_global_pointer): Update.
15221         (mips_save_reg_p): Update.
15222         (mips_compute_frame_info): Update.
15223         (mips_frame_pointer_required): Update.
15224         (mips_expand_prologue): Update.
15225         (mips_expand_epilogue): Update.
15226         (mips_can_use_return_insn): Update.
15227         (mips_reorg_process_insns): Update.
15228         * config/v850/v850.c (compute_register_save_size): Update.
15229         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
15230         * config/mmix/mmix.c (along): Update.
15231         (mmix_expand_epilogue): Update.
15232         * config/bfin/bfin.c (legitimize_pic_address): Update.
15233         (must_save_p): Update.
15234         (stack_frame_needed_p): Update.
15235         (add_to_reg): Update.
15236         (bfin_expand_prologue): Update.
15237         * stmt.c (expand_asm_operands): Update.
15238         * reload1.c (reload): Update.
15239         (init_elim_table): Update.
15240
15241 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
15242
15243         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
15244
15245 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
15246
15247         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
15248         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
15249         (mov<mode>): Removed.
15250         (*movv4sf_internal): Likewise.
15251         (*movv2df_internal): Likewise.
15252
15253 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
15254
15255         * config.gcc (crx-*-elf): Remove deprecation.
15256
15257 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
15258
15259         * config/i386/cygming-crtend.c (register_frame_ctor): Register
15260         __gcc_deregister_frame with atexit.
15261         (deregister_frame_dtor): Remove.
15262
15263 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
15264             Nathan Sidwell  <nathan@codesourcery.com>
15265
15266         * config/rs6000/rs6000.opt (mspe): Remove Var property.
15267         (misel): Likewise.
15268         * config/rs6000/rs6000.h (rs6000_spe): Declare.
15269         (rs6000_isel): Likewise.
15270         * config/rs6000/rs6000.c (rs6000_spe): New variable.
15271         (rs6000_isel): New variable.
15272         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
15273
15274 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
15275
15276         PR c++/35758
15277         * c-common.c (handle_vector_size_attribute): Call
15278         lang_hooks.types.reconstruct_complex_type instead of
15279         reconstruct_complex_type.
15280         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
15281         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
15282         * langhooks.h (struct lang_hooks_for_types): Add
15283         reconstruct_complex_type hook.
15284         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
15285         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
15286
15287 2008-04-24  Richard Guenther  <rguenther@suse.de>
15288
15289         * c-common.h (check_builtin_function_arguments): Declare.
15290         * c-common.c (validate_nargs): New function.
15291         (check_builtin_function_arguments): Likewise.
15292         * c-typeck.c (build_function_call): Call
15293         check_builtin_function_arguments.
15294         * builtins.c (fold_builtin_classify): Remove error reporting code.
15295         (fold_builtin_unordered_cmp): Likewise.
15296         (fold_builtin_1): Likewise.
15297         (fold_builtin_n): Likewise.
15298
15299 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
15300
15301         PR tree-optimization/36008
15302         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
15303         the original op1, rather than delta by step.
15304
15305 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
15306             Sebastian Pop  <sebastian.pop@amd.com>
15307
15308         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
15309         eliminate_local_variables_stmt, eliminate_local_variables,
15310         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
15311         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
15312         of code delimited by two edges in the CFG.
15313         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
15314         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
15315         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
15316         the case of parallelisation of reductions.
15317         (expr_invariant_in_region_p): New.
15318
15319         * tree-flow.h (gather_blocks_in_sese_region): Declared.
15320         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
15321
15322 2008-04-24  Ira Rosen  <irar@il.ibm.com>
15323             Richard Guenther  <rguenther@suse.de>
15324
15325         PR tree-optimization/36034
15326         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
15327         incapable of dealing with loads with gaps.
15328
15329 2008-04-24  Rafael Espíndola  <espindola@google.com>
15330
15331         * tree-flow.h (vrp_evaluate_conditional): Change signature.
15332         * tree-ssa-propagate.c (fold_predicate_in): Update call to
15333         vrp_evaluate_conditional.
15334         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
15335         (vrp_evaluate_conditional): Split the cond argument.
15336         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
15337         (simplify_stmt_for_jump_threading): Update call to
15338         vrp_evaluate_conditional.
15339
15340 2008-04-24  Ira Rosen  <irar@il.ibm.com>
15341
15342         PR tree-optimization/35982
15343         * tree-vect-analyze.c (vect_check_interleaving): Check that the
15344         interleaved data-refs are of the same type.
15345
15346 2008-04-24  Danny Smith  <dannysmith@users.net>
15347
15348         * c-format.c (check_format_info_main): Use strncmp rather than a
15349         magic prefix to handle multichar length specs.
15350         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
15351         Don't prefix "I64" and "I32" with '\0'.
15352
15353 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
15354
15355         PR target/36015
15356         * config/i386/i386.c (init_cumulative_args): Don't pass anything
15357         in registers for -m32 only if stdarg_p (fntype).
15358
15359 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
15360
15361         PR rtl-optimization/36006
15362         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
15363         temp to op0 in order to avoid invalid rtx sharing.
15364
15365 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
15366
15367         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
15368         check TREE_INVARIANT.
15369         * tree-gimple.c (is_gimple_address): New.
15370         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
15371         * tree-gimple.h (is_gimple_address): New.
15372         * tree.h (decl_address_invariant_p): New.
15373         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
15374         (build_string): Likewise.
15375         (decl_address_invariant_p): New, from is_gimple_invariant_address.
15376         (tree_invariant_p_1): Likewise.
15377         (save_expr): Use it.
15378         (tree_invariant_p): New.
15379         (skip_simple_arithmetic): Use it.
15380         (stabilize_reference_1): Use it.
15381         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
15382         simplify.
15383         (build1_stat): Drop code to compute TREE_INVARIANT.
15384         (build2_stat): Drop code to compute TREE_INVARIANT.
15385         (build3_stat): Drop code to compute TREE_INVARIANT.
15386         (build4_stat): Drop code to compute TREE_INVARIANT.
15387         (build5_stat): Drop code to compute TREE_INVARIANT.
15388         (build7_stat): Drop code to compute TREE_INVARIANT.
15389         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
15390         * tree.h (struct tree_base): Remove invariant_flag.
15391         (TREE_INVARIANT): Remove.
15392         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
15393         (fold_builtin_expect): Check TREE_CONSTANT.
15394         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
15395         * c-tree.h (c_expr_to_decl): Drop third parameter.
15396         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
15397         (build_c_cast): Don't set TREE_INVARIANT.
15398         (pop_init_level): Don't set TREE_INVARIANT.
15399         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
15400         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
15401         TREE_CONSTANT.
15402         (gimplify_init_constructor): Don't set TREE_INVARIANT.
15403         (gimplify_addr_expr): Adjust comment.
15404         * tree-mudflap.c (mf_build_string):
15405         * print-tree.c (print_node): Don't print TREE_INVARIANT.
15406         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
15407         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
15408         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
15409         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
15410         * langhooks.h (struct lang_hooks): Drop third parameter from
15411         expr_to_decl.
15412
15413 2008-04-23  Richard Guenther  <rguenther@suse.de>
15414
15415         PR tree-optimization/27799
15416         PR tree-optimization/32921
15417         PR tree-optimization/32624
15418         * tree-ssa-structalias.c (merge_smts_into): Only merge the
15419         SMTs aliases and the tag itself into the solution.
15420         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
15421         merge the points-to solution back into the SMT aliases.
15422         (may_alias_p): Use alias_set_subset_of instead of
15423         aliases_conflict_p.  A pointer which points to
15424         memory with alias set zero may access any variable.
15425
15426 2008-04-23  Richard Guenther  <rguenther@suse.de>
15427
15428         * alias.c (alias_set_subset_of): Correctly handle asking
15429         if zero is a subset of an alias set with zero child.
15430         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
15431         (compute_flow_insensitive_aliasing): Correctly walk all
15432         pointers.  Do not unnecessarily union sets.
15433
15434 2008-04-23  Richard Guenther  <rguenther@suse.de>
15435
15436         PR middle-end/36021
15437         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
15438
15439 2008-04-22  Tomas Bily  <tbily@suse.cz>
15440
15441         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
15442         unreachable case.
15443         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
15444         NON_LVALUE_EXPR.
15445         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
15446         * tree-ssa-structalias.c (get_constraint_for): Likewise.
15447         * tree-inline.c (estimate_num_insns_1): Likewise.
15448         * varasm.c (const_hash_1, compare_constant, copy_constant)
15449         (compute_reloc_for_constant, output_addressed_constants): Likewise.
15450         * emit-rtl.c (component_ref_for_mem_expr)
15451         (set_mem_attributes_minus_bitpos): Likewise.
15452         * expr.c (highest_pow2_factor, expand_expr_real_1, )
15453         (is_aligning_offset): Likewise.
15454         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
15455         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
15456         * dojump.c (do_jump): Likewise.
15457         * builtins.c (get_pointer_alignment, get_memory_rtx)
15458         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
15459         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
15460
15461 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
15462
15463         PR rtl-optimization/36017
15464         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
15465         expanding the library call.
15466
15467 2008-04-22  Ian Lance Taylor  <iant@google.com>
15468
15469         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
15470         than size_in_bytes.
15471
15472 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
15473
15474         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
15475         of LR/CTR moves for Power6.
15476
15477 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15478
15479         PR middle-end/36003
15480         * passes.c (init_optimization_passes): Remove
15481         pass_fast_rtl_byte_dce.
15482
15483 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
15484
15485         PR target/29096
15486         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
15487         builtin functions to generate faster code.
15488         (_mm_cvtpu16_ps): Ditto.
15489         (_mm_cvtpi32x2_ps): Ditto.
15490
15491 2008-04-22  Nick Clifton  <nickc@redhat.com>
15492
15493         * common.opt (ftree-loop-distribution): Add Optimization
15494         attribute.
15495
15496         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
15497         (frv_expand_builtin_va_start): Likewise.
15498
15499         * config/arm/arm.c (thumb_find_work_register): Fix location of
15500         argument register count.
15501
15502 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15503
15504         Support scheduling for ColdFire V1 and V3 microarchitecture.
15505         Improve scheduling of multiplication instructions.
15506
15507         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
15508         (mac): New instruction attribute.
15509         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
15510         (m68k_sched_mac): New variable.
15511         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
15512         Handle cfv1 and cfv3.
15513         (max_insn_size): New static variable.
15514         (struct _sched_ib): New type.
15515         (sched_ib): New static variable.
15516         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
15517         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
15518         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
15519         Update.
15520         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
15521         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
15522         new variables.  Update.
15523         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
15524         Add modeling of cfv3 instruction buffer.  Update.
15525         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
15526         * config/m68k/m68k.h (TUNE_CFV3): New macro.
15527         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
15528         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
15529         a particular reservation applies to.
15530         (type2): Reorganize attribute values.  Rename alu to alu_reg,
15531         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
15532         to mul_l and mul_w.
15533         (cf_ib_*): Simplify description of instruction buffer.
15534         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
15535         (cf_mem): Split into cf_mem1 and cf_mem2.
15536         (cf_v2_move_??): Rename to cfv12_alu_??.
15537         (cf_v2_move_l_??): Rename to cfv12_omove_??.
15538         (cf_v2_mul_??): Remove reservations.
15539         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
15540         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
15541         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
15542         appropriate place.
15543         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
15544         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
15545         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
15546         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
15547         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
15548         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
15549         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
15550         expansions of the above reservations for instructions of sizes
15551         1, 2 and 3 words.
15552
15553 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15554
15555         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
15556
15557 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
15558
15559         * coverage.c: Include tree-pass.h.
15560         (coverage_counter_alloc): Print da_file_name to the dump file.
15561
15562 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
15563
15564         * sbitmap.c (sbitmap_range_empty_p): New function.
15565         * sbitmap.h (sbitmap_range_empty_p): New function.
15566         * bitmap.h: Now includes obstack.h.
15567
15568 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
15569             Kenneth Zadeck  <zadeck@naturalbridge.com>
15570
15571         * dbgcnt.def (ra_byte_scan): Added.
15572         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
15573         when the last hit happens for a counter.
15574         * timevar.def (TV_DF_BYTE_LR): New variable.
15575         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
15576         * passes.c (pass_fast_rtl_byte_dce): New pass.
15577         * fwprop.c (update_df): Added mode to call df_ref_create.
15578         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
15579         DF_REF_EXTRACT_OFFSET.
15580         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
15581         DF_BYTE_LR_OUT, df_byte_lr): New macro.
15582         (df_mm): New enum.
15583         (df_ref_extract): Added mode field.
15584         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
15585         DF_REF_EXTRACT_OFFSET.
15586         (DF_REF_EXTRACT_MODE): New macro.
15587         (df_byte_lr_bb_info): New structure.
15588         (df_print_byte_regset, df_compute_accessed_bytes,
15589         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
15590         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
15591         df_byte_lr_simulate_uses,
15592         df_byte_lr_simulate_artificial_refs_at_top,
15593         df_byte_lr_simulate_artificial_refs_at_end,
15594         df_compute_accessed_bytes): New function.
15595         (df_ref_create): Add parameter.
15596         (df_byte_lr_get_bb_info): New inline function.
15597         * df-scan.c (df_ref_record, df_uses_record,
15598         df_ref_create_structure): Added mode parameter.
15599         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
15600         df_defs_record, df_uses_record, df_get_conditional_uses,
15601         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
15602         df_entry_block_defs_collect, df_exit_block_uses_collect):
15603         Added mode parameter to calls to df_ref_record, df_uses_record,
15604         df_ref_create_structure.
15605         (df_ref_equal_p, df_ref_compare): Added test for modes.
15606         (df_ref_create_structure): Added code to set mode.  Renamed
15607         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
15608         DF_REF_EXTRACT_OFFSET.
15609         * df-core.c (df_print_byte_regset): New function.
15610         * df-byte-scan.c: New file.
15611         * df-problems.c (df_rd_transfer_function): Removed unnecessary
15612         calls to BITMAP_FREE.
15613         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
15614         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
15615         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
15616         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
15617         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
15618         df_byte_lr_local_compute, df_byte_lr_init,
15619         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
15620         df_byte_lr_transfer_function, df_byte_lr_free,
15621         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
15622         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
15623         df_byte_lr_simulate_uses,
15624         df_byte_lr_simulate_artificial_refs_at_top,
15625         df_byte_lr_simulate_artificial_refs_at_end): New function.
15626         * dce.c (byte_dce_process_block): New function.
15627         (dce_process_block): au is now passed in rather than computed
15628         locally.  Changed loops that look at artificial defs to not look
15629         for conditional or partial ones, because there never are any.
15630         (fast_dce): Now is able to drive byte_dce_process_block or
15631         dce_process_block depending on the kind of dce being done.
15632         (rest_of_handle_fast_dce): Add parameter to fast_dce.
15633         (rest_of_handle_fast_byte_dce): New function.
15634         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
15635         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
15636
15637 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
15638
15639         PR fortran/35019
15640         * gcc.h: Added fortran options that take arguments to
15641         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
15642         macros.
15643
15644 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
15645
15646         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
15647         scalarization if on the LHS and not a full access.
15648
15649 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15650
15651         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
15652
15653 2008-04-18  Rafael Espíndola  <espindola@google.com>
15654
15655         * tree-vrp.c (find_case_label_index): Fix the binary search.
15656         (find_case_label_range): New.
15657         (vrp_visit_switch_stmt): Use find_case_label_range.
15658         (simplify_switch_using_ranges): Use find_case_label_range.
15659
15660 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
15661
15662         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
15663         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
15664
15665 2008-04-18  Tom Tromey  <tromey@redhat.com>
15666
15667         PR libcpp/15500:
15668         * doc/cpp.texi (Implementation-defined behavior): Mention
15669         -finput-charset.
15670
15671 2008-04-18  Ian Lance Taylor  <iant@google.com>
15672
15673         * fold-const.c (pointer_may_wrap_p): New static function.
15674         (fold_comparison): Add another test for pointer overflow.  Use
15675         pointer_may_wrap_p to disable some false positives.
15676
15677 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
15678
15679         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
15680         (fname_as_string): Match updated cpp_interpret_string prototype.
15681         (fix_string_type): Support char16_t* and char32_t*.
15682         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
15683         derivative) nodes.  Register as builtin if C++0x.
15684         (c_parse_error): Support CPP_CHAR{16,32}.
15685         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
15686         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
15687         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
15688         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
15689         CTI_CHAR32_ARRAY_TYPE>: New elements.
15690         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
15691         char32_type_node, signed_char32_type_node, char16_array_type_node,
15692         char32_array_type_node): New defines.
15693         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
15694         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
15695         (lex_string): Support CPP_STRING{16,32}, match updated
15696         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
15697         (lex_charconst): Support CPP_CHAR{16,32}.
15698         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
15699         and CPP_STRING{16,32}.
15700
15701 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
15702
15703         PR bootstrap/35457
15704         * aclocal.m4: Regenerate.
15705         * configure: Regenerate.
15706
15707 2008-04-18  Jan Hubicka  <jh@suse.cz>
15708
15709         * except.c (dw2_size_of_call_site_table,
15710         sjlj_size_of_call_site_table): Use vector API for call_site_record.
15711
15712         * cgraphbuild.c (build_cgraph_edges): Update.
15713         * tree-pass.h: Update comment.
15714         * final.c (leaf_function_p): Update.
15715         (leaf_renumber_regs): Update.
15716         (rest_of_clean_state): Update.
15717         * omp-low.c (expand_omp_parallel): Update.
15718         * ipa-reference.c (analyze_function): Update.
15719         * reorg.c (find_end_label): Update.
15720         (optimize_skip): Update.
15721         (fill_simple_delay_slots): Update.
15722         (fill_simple_delay_slots): Update.
15723         (make_return_insns): Update.
15724         (dbr_schedule): Update.
15725         * gimple-low.c (record_vars_into): Update.
15726         * cfgbuild.c (make_edges): Update.
15727         * function.c (assign_stack_local): Update.
15728         (assign_parm_adjust_stack_rtl): Update.
15729         (locate_and_pad_parm): Update.
15730         (allocate_struct_function): Do not initialize stack_alignment_needed
15731         and preferred_stack_boundary here.
15732         (stack_protect_prologue): Update.
15733         (stack_protect_epilogue): Update.
15734         (expand_function_start): Initialize stack_alignment_needed,
15735         preferred_stack_boundary and max_jumptable_ents.
15736         (expand_function_end): Update.
15737         (free_after_compilation): Do not NULLify epilogue_delay_list.
15738         * function.h (struct rtl_data): Add stack_protect_guard,
15739         stack_alignment_needed,
15740         preferred_stack_boundary, epilogue_delay_list.
15741         (struct function): Remove value_histograms, stack_alignment_needed,
15742         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
15743         last_label_uid,
15744         unexpanded_var_list, stack_protect_guard.
15745         (current_function_epilogue_delay_list): Remove.
15746         * ipa-type-escape.c (analyze_function): Update.
15747         * gimplify.c (pop_gimplify_context): Update comment.
15748         * calls.c (expand_call): Update.
15749         (emit_library_call_value_1): Update.
15750         * except.c (set_nothrow_function_flags): Update.
15751         * cfgexpand.c (get_decl_align_unit): Update.
15752         (create_stack_guard): Update.
15753         (estimated_stack_frame_size): Update.
15754         (expand_used_vars): Update.
15755         (tree_expand_cfg): Free histogram earliers, init expansion variables.
15756         * explow.c (allocate_dynamic_stack_space): Update.
15757         * tree-ssa-live.c (remove_unused_locals): Update.
15758         * varasm.c (mark_constant_pool): Update.
15759         * tree-inline.c (remap_decls): Update.
15760         (initialize_cfun): Update.
15761         (declare_return_variable): Update.
15762         (inline_forbidden_p): Update.
15763         (expand_call_inline): Update.
15764         (declare_inline_vars): Update.
15765         (tree_function_versioning): Update.
15766         * tree-flow.h (value_histograms): New.
15767         (VALUE_HISTOGRAMS): New macro.
15768         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
15769         last_label_uid.
15770         * tree-cfg.c (set_bb_for_stmt): Update.
15771         (replace_by_duplicate_decl): Update.
15772         (move_block_to_fn): Update.
15773         (new_label_mapper): Update.
15774         (dump_function_to_file): Update.
15775         * ipa-struct-reorg.c (build_data_structure): Update.
15776         * cfgrtl.c (print_rtl_with_bb): Update.
15777         * reload1.c (reload): Update.
15778         (reload): Update.
15779         * config/i386/i386.c (setup_incoming_varargs_64,
15780         ix86_compute_frame_layout): Update.
15781         * config/arc/arc.c (arc_output_function_epilogue): Update.
15782
15783 2008-04-18  Marius Strobl <marius@FreeBSD.org>
15784
15785         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
15786         for FreeBSD as well.
15787         * gthr-posix95.h: Likewise.
15788
15789 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
15790
15791         PR rtl-optimization/35838
15792         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
15793         out the byte offset of the first subreg.
15794
15795 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
15796
15797         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
15798         to split_ti instead of three separate calls with single member arrays.
15799         (subti3 splitter): Ditto.
15800         (adddi3 splitter): Ditto with split_di.
15801         (subdi3 splitter): Ditto.
15802         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
15803         two separate calls with single member arrays.  Swap match_dup
15804         operands 1 and 2 to better fit into the array.
15805         (negdi2 splitter): Ditto with split_di.
15806         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
15807         two separate calls with single member arrays.  Swap match_dup operands
15808         6 and 7 to better fit into the array.
15809
15810 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
15811
15812         * config/i386/i386.c (sse_builtin_type): New.
15813         (bdesc_sse_args): Likewise.
15814         (bdesc_sse_3arg): Removed.
15815         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
15816         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
15817         IX86_BUILTIN_ROUNDPS.
15818         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
15819         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
15820         IX86_BUILTIN_ROUNDPS.
15821         (ix86_expand_sse_4_operands_builtin): Removed.
15822         (ix86_expand_sse_operands_builtin): New.
15823         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
15824         and CODE_FOR_sse4_1_roundps.
15825         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
15826         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
15827
15828 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
15829
15830         PR target/35907
15831         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
15832         regs before frame pop when needed.  If use_backchain_to_restore_sp
15833         then load backchain into a temp reg to restore vr and vrsave.  Add
15834         code to restore vr after frame pop if possible.
15835
15836 2008-04-17  Richard Guenther  <rguenther@suse.de>
15837
15838         * tree-vn.c (expressions_equal_p): Do not check type
15839         equality or compatibility before calling operand_equal_p.
15840         * fold-const.c (operand_equal_p): Check equivalence of
15841         integer constants before bailing out due to signedness or
15842         precision differences.
15843         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
15844         spurious differences in type qualification.  Ignore types
15845         for COMPONENT_REFs at all.
15846
15847 2008-04-17  Christian Bruel  <christian.bruel@st.com>
15848
15849         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
15850         msw_skip comparison.
15851
15852 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
15853
15854         PR c/35739
15855         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
15856         reg type.
15857
15858         PR tree-optimization/35899
15859         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
15860         rather than TREE_OPERAND.
15861
15862 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
15863
15864         PR target/35944
15865         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
15866         temporary registers.  Change operand predicate to general_operand.
15867         (remainderxf3): Ditto.
15868
15869 2008-04-16  Richard Guenther  <rguenther@suse.de>
15870
15871         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
15872         * tree-affine.c (aff_combination_expand): Look through some
15873         conversions.
15874
15875 2008-04-15  Doug Kwan  <dougkwan@google.com>
15876
15877         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
15878         for hex printing.
15879         * tree-pretty-print.c (dump_generic_node): Ditto.
15880         * final.c (output_addr_const): Ditto.
15881         * dwarf2out.c (output_cfi): Ditto.
15882         * c-pretty-print.c (pp_c_integer_constant): Ditto.
15883         * print-rtl.c (print_rtx): Ditto.
15884         * print-tree.c (print_node_brief, print_node): Ditto.
15885         * c-common.c (match_case_to_enum_1): Ditto.
15886         * sched-vis.c (print_value): Ditto.
15887         * config/i386/i386.c (print_operand): Cast to long unsigned int
15888         for hex printing.
15889
15890 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
15891         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
15892         MS Windows VirtualProtect function.
15893
15894 2008-04-15  Jan Hubicka  <jh@suse.cz>
15895
15896         * gengtype.c (write_root): Param_is argument is OK.
15897         * expr.c (expand_expr_real_1): Update call of get_exception_*.
15898         * function.h: Include varray.h
15899         (rtl_eh): New stucture based on except.c one.
15900         (call_site_record): New forward declaration and vector type.
15901         * calls.c (emit_call_1): Do not call
15902         note_current_region_may_contain_throw.
15903         * except.c (eh_status): Remove cur_region, try_region since they are
15904         unused.
15905         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
15906         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
15907         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
15908         Remove call_site_data_used, call_site_data_size.
15909         Turn call_site_record into vector in function.h.
15910         (note_current_region_may_contain_throw): Remove.
15911         (get_exception_pointer, get_exception_filter): Do not take struct
15912         function argument; update.
15913         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
15914         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
15915         build_post_landing_pads, dw2_build_landing_pads,
15916         sjlj_assign_call_site_values, sjlj_mark_call_sites,
15917         sjlj_emit_function_enter, sjlj_emit_function_enter,
15918         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
15919         sjlj_build_landing_pads, finish_eh_generation,
15920         remove_exception_handler_label, remove_eh_handler,
15921         maybe_remove_eh_handler, add_reachable_handler,
15922         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
15923         add_action_record, collect_one_action_chain, add_call_site,
15924         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
15925         sjlj_output_call_site_table, output_function_exception_table,
15926         * except.h (note_current_region_may_contain_throw): Remove
15927         (get_exception_pointer, get_exception_filter): Do not take struct
15928         function argument.
15929         * Makefile.in (GTFILES): Put varargs before struct function.
15930
15931 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15932
15933         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
15934         punt for STRING_CST.
15935         (get_constraint_for): Deal with STRING_CST here instead.
15936
15937 2008-04-15  Richard Guenther  <rguenther@suse.de>
15938
15939         * tree-ssa-propagate.c (substitute_and_fold): Substitute
15940         statements in a basic-block with a backward walk.  Do not
15941         substitute into dead statements but instead remove those.
15942
15943 2008-04-15  Richard Guenther  <rguenther@suse.de>
15944
15945         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
15946         to zero, thus disable creation of SFTs.
15947
15948 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15949
15950         * tree-predcom.c (suitable_reference_p): Return false if the
15951         reference can throw.
15952
15953 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
15954
15955         PR c/35751
15956         * c-decl.c (finish_decl): If extern or static var has variable
15957         size, set TREE_TYPE (decl) to error_mark_node.
15958
15959 2008-04-15  Rafael Espíndola  <espindola@google.com>
15960
15961         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
15962         variable arg1.
15963
15964 2008-04-15  Richard Guenther  <rguenther@suse.de>
15965
15966         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
15967         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
15968         (visit_reference_op_load): Do walk vuse-vdef chains on
15969         vn_reference_lookup.
15970         (visit_reference_op_store): But do not here.
15971         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
15972         vn_reference_lookup.
15973         (vn_lookup_with_vuses): But do so here.
15974
15975 2008-04-14  Ian Lance Taylor  <iant@google.com>
15976
15977         * fold-const.c (fold_overflow_warning): Remove assertion.
15978
15979 2008-04-15  Ben Elliston  <bje@au.ibm.com>
15980
15981         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
15982         temp1 local variables.
15983
15984 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
15985
15986         PR target/35661
15987         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
15988         ".text.unlikely" section as executable.
15989
15990 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
15991
15992         * config/ia64/ia64.c (rtx_needs_barrier): Handle
15993         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
15994         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
15995         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
15996         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
15997         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
15998         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
15999
16000 2008-04-14  Ian Lance Taylor  <iant@google.com>
16001
16002         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
16003         * fold-const.c (fold_comparison): If appropriate, test
16004         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
16005         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
16006         reassociating a pointer type.
16007         * doc/invoke.texi (Optimize Options): Document that
16008         -fstrict-overflow applies to pointer wraparound.
16009
16010 2008-04-13  Jan Hubicka  <jh@suse.cz>
16011
16012         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
16013
16014 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
16015
16016         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
16017         we are going to "save the world".
16018
16019 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
16020
16021         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
16022         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
16023         operand 0 constraint, not "=".
16024
16025 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
16026
16027         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
16028
16029 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
16030
16031         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
16032         of size of positions_needed * CHAR_BIT.
16033
16034 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
16035
16036         PR middle-end/35897
16037         * dse.c (store_info): Change positions_needed to unsigned
16038         HOST_WIDE_INT.
16039         (lowpart_bitmask): New.
16040         (record_store): Cast to unsigned HOST_WIDE_INT for
16041         positions_needed.  Assert width <= size of positions_needed *
16042         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
16043         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
16044         lowpart_bitmask to set mask.
16045
16046 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
16047
16048         * config/bfin/constraints.md: New file.
16049         * config/bfin/bfin.md: Include it.
16050         (adddi3): Use satisfies_constraint functions instead of the old macros.
16051         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
16052         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
16053         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
16054         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
16055         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
16056         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
16057         EXTRA_CONSTRAINT): Delete.
16058         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
16059         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
16060         of the old macros.
16061         * config/bfin/bfin.c: Include "tm-constrs.h".
16062         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
16063         Use satisfies_constraint functions instead of the old macros.
16064         * doc/md.texi (Blackfin Constraints): Update file name reference.
16065
16066 2008-04-11  Richard Guenther  <rguenther@suse.de>
16067
16068         PR tree-optimization/35869
16069         * tree-vrp.c (execute_vrp): Move switch statement update after
16070         jump threading.  Schedule another cfg cleanup run.
16071
16072 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
16073
16074         PR c/35744
16075         * attribs.c (decl_attributes): Return early on errorneous node.
16076
16077 2008-04-10  Oleg Ryjkov  <olegr@google.com>
16078
16079         * tree.h (struct tree_base): Added a new flag default_def_flag.
16080         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
16081
16082 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16083
16084         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
16085
16086 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16087
16088         PR target/35768
16089         * pa.md: Define mode iterator P.  Define mode attribute dwc.
16090         (dcacheflush): Update pattern to use iterator P and attribute dwc.
16091         (icacheflush): Likewise.
16092         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
16093         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
16094
16095 2008-04-11  Ben Elliston  <bje@au.ibm.com>
16096
16097         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
16098
16099 2008-04-10  Rafael Espíndola  <espindola@google.com>
16100
16101         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
16102         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
16103         (extract_range_from_expr): The same.
16104
16105 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
16106
16107         * config/mips/mips.md (GPR2): New mode iterator.
16108         (seq): Add comment.
16109         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
16110         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
16111         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
16112         Rewrite these to take two modes, the mode of comparison and the
16113         mode of the destination.
16114         * config/mips/mips.c (mips_expand_scc): Instead of having
16115         paradoxical subreg as destination, expand "narrowing" scc if mode
16116         of comparison is SI and target is requested in DI mode.
16117         (mips_emit_int_order_test): Update comment.  Make mode of
16118         comparison match CMP0 rather than TARGET.  When creating inverse
16119         target use mode of TARGET.
16120
16121 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
16122
16123         * gcov-dump.c (tag_summary): Only print summaries for the first
16124         GCOV_COUNTERS_SUMMABLE counters.
16125
16126 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
16127
16128         * config/i386/i386.md (absneg): New code iterator.
16129         (absnegprefix): New code attribute.
16130         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
16131         patterns using absneg code iterator.
16132         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
16133         using absneg code iterator.
16134         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
16135         *neg<mode>2 patterns using absneg code iterator.
16136         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
16137         *negextendsfdf2 patterns using absneg code iterator.
16138         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
16139         *negextendsfxf2 patterns using absneg code iterator.
16140         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
16141         *negextendsfdf2 patterns using absneg code iterator.
16142         * config/i386/sse.md (<code><mode>2): Macroize expander from
16143         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
16144
16145 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
16146
16147         * config/s390/s390.h: Remove the remains of the recent search
16148         & replace action of current_function_outgoing_args_size.
16149
16150 2008-04-10  Ira Rosen  <irar@il.ibm.com>
16151
16152         PR tree-optimization/35821
16153         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
16154         NEW_STMT_LIST is not NULL.
16155
16156 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
16157
16158         PR libstdc++/35597
16159         * toplev.c (process_options): Remove -ffunction-sections debugging
16160         warning.
16161
16162 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
16163
16164         PR middle-end/PR28690
16165         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
16166         than gen_rtx_fmt_ee to perform more canonicalizations.
16167
16168 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16169
16170         PR driver/35665
16171         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
16172
16173 2008-04-09  Richard Guenther  <rguenther@suse.de>
16174
16175         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
16176         (dump_function_to_file): Dump function arguments with types.
16177
16178 2008-04-08  Richard Guenther  <rguenther@suse.de>
16179
16180         * fold-const.c (fold_widened_comparison): Do not allow
16181         sign-changes that change the result.
16182
16183 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
16184
16185         PR target/35839
16186         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
16187         kinds of indirect references.
16188
16189 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
16190
16191         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
16192         GNU Fortran language string.
16193
16194 2008-04-08  Rafael Espíndola  <espindola@google.com>
16195
16196         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
16197         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
16198         * tree.h (tree_call_nonnegative_warnv_p): New.
16199
16200 2008-04-08  Jan Hubicka  <jh@suse.cz>
16201
16202         * function.c (free_after_compilation): Clear out regno_reg_rtx
16203         pointer.
16204
16205 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
16206
16207         Revert
16208         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
16209
16210         PR middle-end/PR28690
16211         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
16212         same precedence as REG_POINTER and MEM_POINTER operands.
16213
16214 2008-04-08  Richard Guenther  <rguenther@suse.de>
16215
16216         PR middle-end/35834
16217         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
16218         for adding index to base.
16219
16220 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
16221
16222         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
16223         (MINGW_ENABLE_EXECUTE_STACK): New.
16224         (IN_LIBGCC2): For libgcc include windows.h file for
16225         function declarations.
16226
16227 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
16228
16229         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
16230         and tem2 if tem1 is not a REG or MULT.
16231
16232 2008-04-08  Jan Hubicka  <jh@suse.cz>
16233
16234         * function.h (incomming_args): Break out of struct function.
16235         (function_subsections): Break out of struct function.
16236         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
16237         return_rtx and hard_reg_initial_vals from struct function.
16238         Kill inl_max_label_num.
16239         (current_function_pops_args, current_function_args_info,
16240         current_function_args_size, current_function_args_size,
16241         current_function_pretend_args_size,
16242         current_function_outgoing_args_size,
16243         current_function_internal_arg_pointer, current_function_return_rtx):
16244         Kill compatibility accestor macros.
16245         * builtins.c (expand_builtin_apply_args_1): Update.
16246         (expand_builtin_next_arg): Update.
16247         * df-scan.c (df_get_call_refs): Update.
16248         * dbxout.c (dbxout_function_end): Update.
16249         * dwarf2out.c (dwarf2out_switch_text_section): Update.
16250         (output_line_info): Update.
16251         (secname_for_decl): Update.
16252         (dwarf2out_var_location): Update.
16253         * function.c (free_after_compilation): Update.
16254         (assign_parm_find_stack_rtl): Update.
16255         (assign_parms): Update.
16256         (expand_dummy_function_end): Update.
16257         (expand_function_end): Update.
16258         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
16259         (expand_call): Update.
16260         (emit_library_call_value_1): Update.
16261         (store_one_arg): Update.
16262         * varasm.c (initialize_cold_section_name): Update.
16263         (unlikely_text_section): Update.
16264         (unlikely_text_section_p): Update.
16265         (assemble_start_function): Update.
16266         (assemble_end_function): Update.
16267         (default_section_type_flags): Update.
16268         (switch_to_section): Update.
16269         * integrate.c (set_decl_abstract_flags): Update.
16270         (get_hard_reg_initial_val): Update.
16271         (has_hard_reg_initial_val): Update.
16272         (allocate_initial_values): Update.
16273         * resource.c (init_resource_info): Update.
16274         * config/alpha/alpha.c (NUM_ARGS): Update.
16275         (direct_return): Update.
16276         (alpha_va_start): Update.
16277         (alpha_sa_size): Update.
16278         (alpha_initial_elimination_offset): Update.
16279         (alpha_expand_prologue): Update.
16280         (alpha_start_function): Update.
16281         (alpha_expand_epilogue): Update.
16282         (unicosmk_initial_elimination_offset):
16283         * config/alpha/alpha.md (call expander): Update.
16284         * config/s390/s390.c (s390_register_info): Update.
16285         (s390_register_info): Update.
16286         (s390_frame_info): Update.
16287         (s390_initial_elimination_offset): Update.
16288         (s390_build_builtin_va_list): Update.
16289         (s390_va_start): Update.
16290         * config/spu/spu.c (direct_return): Update.
16291         (spu_expand_prologue): Update.
16292         (spu_initial_elimination_offset): Update.
16293         (spu_build_builtin_va_list): Update.
16294         (spu_va_start): Update.
16295         * config/sparc/sparc.c (sparc_init_modes): Update.
16296         (sparc_compute_frame_size): Update.
16297         (function_value): Update.
16298         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
16299         * config/i386/i386.md (return expander): Update.
16300         * config/i386/i386.c (ix86_va_start): Update.
16301         (ix86_can_use_return_insn_p): Update.
16302         (ix86_compute_frame_layout): Update.
16303         (ix86_expand_epilogue): Update.
16304         * config/sh/sh.c (output_stack_adjust): Update.
16305         (calc_live_regs): Update.
16306         (sh_expand_prologue): Update.
16307         (sh_builtin_saveregs): Update.
16308         (sh_va_start): Update.
16309         (initial_elimination_offset): Update.
16310         (sh_allocate_initial_value): Update.
16311         (sh_function_ok_for_sibcall): Update.
16312         (sh_get_pr_initial_val): Update.
16313         * config/sh/sh.md (return expander): Update.
16314         * config/avr/avr.c (frame_pointer_required_p): UPdate.
16315         * config/crx/crx.c (crx_compute_frame): UPdate.
16316         (crx_initial_elimination_offset): UPdate.
16317         * config/xtensa/xtensa.c (compute_frame_size): Update
16318         (xtensa_builtin_saveregs): Update.
16319         (xtensa_va_start): Update.
16320         (order_regs_for_local_alloc): Update.
16321         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
16322         (xstormy16_expand_builtin_va_start): Update.
16323         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
16324         * config/m68hc11/m68hc11.md (return expanders): Update.
16325         * config/m68hc11/m68hc11.c (expand_prologue): Update.
16326         (expand_epilogue): Update.
16327         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
16328         (cris_simple_epilogue): Update.
16329         (cris_expand_prologue): Update.
16330         (cris_expand_epilogue): Update.
16331         * config/iq2000/iq2000.c (iq2000_va_start): Update.
16332         (compute_frame_size): Update.
16333         * config/mt/mt.c (mt_compute_frame_size): Update.
16334         * config/mn10300/mn10300.c (expand_prologue): Update.
16335         (expand_epilogue): Update.
16336         (initial_offset): Update.
16337         (mn10300_builtin_saveregs):
16338         * config/mn10300/mn10300.md (return expander): Update.
16339         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
16340         (ia64_initial_elimination_offset): Update.
16341         (ia64_initial_elimination_offset): Update.
16342         (ia64_expand_prologue): Update.
16343         * config/m68k/m68k.md (return expander): Update.
16344         * config/rs6000/rs6000.c (rs6000_va_start): Update.
16345         (rs6000_stack_info): Update.
16346         * config/mcore/mcore.c (layout_mcore_frame): Update.
16347         (mcore_expand_prolog): Update.
16348         * config/arc/arc.c (arc_compute_frame_size): Update.
16349         * config/score/score3.c (score3_compute_frame_size): Update.
16350         * config/score/score7.c (score7_compute_frame_size): Update.
16351         * config/arm/arm.c (use_return_insn): Update.
16352         (thumb_find_work_register): Update.
16353         (arm_compute_save_reg_mask): Update.
16354         (arm_output_function_prologue): Update.
16355         (arm_output_epilogue): Update.
16356         (arm_size_return_regs): Update.
16357         (arm_get_frame_offsets): Update.
16358         (arm_expand_prologue): Update.
16359         (thumb_exit): Update.
16360         (thumb_unexpanded_epilogue): Update.
16361         (thumb1_output_function_prologue): Update.
16362         * config/pa/pa.md (return expander): Update.
16363         * config/pa/pa.c (compute_frame_size): Update.
16364         (hppa_builtin_saveregs): Update.
16365         * config/mips/mips.c (mips_va_start): Update.
16366         (mips16_build_function_stub): Update.
16367         (mips_compute_frame_info): Update.
16368         (mips_restore_gp): Update.
16369         (mips_output_function_prologue): Update.
16370         (mips_expand_prologue): Update.
16371         * config/v850/v850.c (compute_frame_size): Update.
16372         (expand_prologue): * config/mmix/mmix.c (along): update.
16373         (mmix_initial_elimination_offset): update.
16374         (mmix_reorg): update.
16375         (mmix_use_simple_return): update.
16376         (mmix_expand_prologue): update.
16377         (mmix_expand_epilogue): Update.
16378         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
16379         (emit_link_insn): Update.
16380
16381 2008-04-08  Anatoly Sokolov <aesok@post.ru>
16382
16383         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
16384         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
16385         instructions.
16386         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
16387         atmega103 device.
16388
16389 2008-04-07  Jan Hubicka  <jh@suse.cz>
16390
16391         * function.h (rtl): Rename to x_rtl.
16392         (crtl): New define.
16393         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
16394         frame_offset, stack_check_probe_note, arg_pointer_save_area,
16395         used_temp_slots avail_temp_slots, temp_slot_level,
16396         nonlocal_goto_handler_labels): Update accesstors.
16397         (rtl): New global variable.
16398         (struct function): Move some fileds to rtl_data.
16399         (get_arg_pointer_save_area): Update prototype.
16400         * builtins.c (expand_builtin_setjmp_receiver): Update call of
16401         get_arg_pointer_save_area.
16402         * expr.c (init_expr): Update
16403         * function.c (get_frame_size): Update
16404         (assign_stack_local): Update
16405         (expand_function_end): Update.
16406         (get_art_pointer_save_area): Update
16407         * function.h
16408         * emit-rtl.c (rtl): Declare.
16409         (regno_reg_rtx): Declare.
16410         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
16411         Update.
16412         (gen_reg_rtx): Update.
16413         * varasm.c (n_deferred_constatns): Update accestor.
16414         (init_varasm_status): Do not allocate varasm_status.
16415         (force_const_mem, get_pool_size, output_constant_pool): Update.
16416         * stmt.c (force_label_rtx): Do not use x_ prefixes.
16417         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
16418         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
16419         * sparc/sparc.h (INIT_EXPANDERS): Update.
16420         * ia64/ia64.h (INIT_EXPANDERS): Update.
16421
16422 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
16423
16424         * reload.c (push_secondary_reload): Add missing break to for loop.
16425
16426 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
16427
16428         PR middle-end/PR28690
16429         * rtlanal.c: Update copyright years.
16430         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
16431         as REG_POINTER and MEM_POINTER operands.
16432         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
16433         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
16434         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
16435         * gcse.c: Update copyright years.
16436         (pre_delete): Call gen_reg_rtx_and_attrs.
16437         (hoist_code): Likewise.
16438         (build_store_vectors): Likewise.
16439         (delete_store): Likewise.
16440         * loop-invariant.c (move_invariant_reg): Likewise.
16441         Update copyright years.
16442
16443 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
16444
16445         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
16446         control string instead of quoted.
16447
16448 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
16449
16450         * doc/rtl.texi: Rewrite of subreg section.
16451
16452 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
16453
16454         PR/35842
16455         * config/i386/i386.c (legitimize_pic_address): Add treating
16456         of dllimport SYM_REF's.
16457         (legitimize_dllimport_symbol): Add prototype.
16458
16459 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16460
16461         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
16462         reference in constructor with non self-referential type.
16463
16464 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16465
16466         Removal of Return with Depressed Stack Pointer support
16467         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
16468         (ECF_SP_DEPRESSED): Likewise.
16469         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
16470         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
16471         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
16472         (expand_call): Do not test ECF_SP_DEPRESSED.
16473         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
16474         * function.c (keep_stack_depressed): Delete.
16475         (handle_epilogue_set): Likewise.
16476         (update_epilogue_consts): Likewise.
16477         (emit_equiv_load): Likewise.
16478         (thread_prologue_and_epilogue_insns): Remove support for Return with
16479         Depressed Stack Pointer.
16480         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
16481
16482 2008-04-06  Richard Guenther  <rguenther@suse.de>
16483
16484         PR tree-optimization/35400
16485         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
16486         information from SSA_NAMEs.
16487
16488 2008-04-06  Anatoly Sokolov <aesok@post.ru>
16489
16490         * config/avr/avr.h (avr_mega_p): Remove declaration.
16491         (AVR_MEGA): Remove macro.
16492         * config/avr/avr.c (avr_mega_p): Remove variable.
16493         (avr_override_options): Remove inicializion of avr_mega_p.
16494         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
16495         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
16496         (avr_jump_mode): (Ditto.).
16497         (avr_output_progmem_section_asm_op): (Ditto.).
16498         (avr_asm_init_sections): (Ditto.).
16499         (avr_asm_init_sections): (Ditto.).
16500         (avr_rtx_costs): (Ditto.).
16501         * config/avr/avr.md: (Ditto.).
16502         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
16503         '__AVR_MEGA__'.
16504
16505 2008-04-06  Richard Guenther  <rguenther@suse.de>
16506
16507         PR tree-optimization/35842
16508         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
16509         is_gimple_invariant_address.
16510
16511 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
16512
16513         * gcc.c (default_compilers): Sync Fortran extensions list with
16514         that in fortran/lang-specs.h.
16515         * doc/invoke.texi: Likewise.
16516         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
16517         * dwarf2out.c (gen_compile_unit_die): Likewise.
16518
16519 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
16520
16521         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
16522
16523 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
16524
16525         PR target/12329
16526         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
16527         attribute is used for nested functions.
16528
16529 2008-04-05  Jan Hubicka  <jh@suse.cz>
16530
16531         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
16532
16533         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
16534         letter argument.
16535         (dump_files): Update.
16536         (enable_rtl_dump_file): Do not accept letter argument.
16537         * tree-pass.h (dump_file_info): Remove letter argument.
16538         * toplev.c (decode_d_option): Update -da handling.
16539         * toplev.h (enable_rtl_dump_file): Update prototype.
16540         * passes.c (register_one_dump_file): Do not accept IPA argument; work
16541         it out based on pass type.
16542         (register_dump_files_1): Likewise.
16543         (init_optimization_passes): Update register_one_dump_file calls.
16544         (execute_one_pass): Sanity check that IPA passes are called at IPA
16545         level and RTL passes at RTL level.
16546         (execute_pass_list): IPA pass can not be after or subpass of
16547         GIMPLE/RTL pass.
16548         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
16549         disallov RTL subpasses of IPA subpasses.
16550
16551 2008-04-05  Ben Elliston  <bje@au.ibm.com>
16552
16553         * tree-cfg.c (need_fake_edge_p): Return false for calls to
16554         builtins that return exactly once and do not throw. Cache call to
16555         call_expr_flags.
16556
16557 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
16558
16559         PR rtl-optimization/34916
16560         PR middle-end/35519
16561         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
16562         between instruction pairs.
16563
16564 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
16565
16566         * doc/invoke.texi: Document -mbitops for SH.
16567         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
16568         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
16569         * config/sh/sh.c (print_operand): Add %t operand code.
16570         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
16571         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
16572         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
16573         (extendqihi2): Likewise.
16574         (movqi_i): Likewise.
16575         (insv): Use bset, bclr and bst instructions for SH2A if possible.
16576         (extv): Use bld instruction for SH2A if possible.
16577         (extzv): Likewise.
16578         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
16579         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
16580         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
16581         (bset.b, bclr.b): Define peepholes.
16582         * config/sh/sh.opt (mbitops): New option.
16583
16584 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
16585
16586         PR target/35620
16587         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
16588         and view convert expression.
16589
16590 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
16591
16592         PR target/35364
16593         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
16594
16595 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
16596
16597         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
16598
16599         * config/i386/cpuid.h (bit_AES): New.
16600         (bit_PCLMUL): Likewise.
16601
16602         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
16603         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
16604         SSE2 if AES or PCLMUL is enabled.
16605         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
16606         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
16607         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
16608         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
16609         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
16610         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
16611         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
16612         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
16613         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
16614         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
16615         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
16616         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
16617         __builtin_ia32_aeskeygenassist128 and
16618         __builtin_ia32_pclmulqdq128.
16619         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
16620         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
16621         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
16622
16623         * config/i386/i386.h (TARGET_AES): New.
16624         (TARGET_PCLMUL): Likewise.
16625         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
16626
16627         * config/i386/i386.md (UNSPEC_AESENC): New.
16628         (UNSPEC_AESENCLAST): Likewise.
16629         (UNSPEC_AESDEC): Likewise.
16630         (UNSPEC_AESDECLAST): Likewise.
16631         (UNSPEC_AESIMC): Likewise.
16632         (UNSPEC_AESKEYGENASSIST): Likewise.
16633         (UNSPEC_PCLMUL): Likewise.
16634
16635         * config/i386/i386.opt (maes): New.
16636         (mpclmul): Likewise.
16637
16638         * config/i386/sse.md (aesenc): New pattern.
16639         (aesenclast): Likewise.
16640         (aesdec): Likewise.
16641         (aesdeclast): Likewise.
16642         (aesimc): Likewise.
16643         (aeskeygenassist): Likewise.
16644         (pclmulqdq): Likewise.
16645
16646         * config/i386/wmmintrin.h: New.
16647
16648         * doc/extend.texi: Document AES and PCLMUL built-in function.
16649
16650         * doc/invoke.texi: Document -maes and -mpclmul.
16651
16652 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
16653
16654         * function.c (free_after_parsing): Replace with
16655         cxx_push_function_context from C++ front-end.
16656         (allocate_struct_function): Don't call langhook.
16657         * langhooks.h (struct lang_hooks_for_functions): Delete.
16658         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
16659         member "function".
16660         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
16661         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
16662         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
16663         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
16664         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
16665         remove LANG_HOOKS_FUNCTION_INITIALIZER.
16666         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
16667
16668         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
16669         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
16670
16671 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
16672
16673         PR c/35440
16674         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
16675         for all types.
16676
16677 2008-04-04  Richard Guenther  <rguenther@suse.de>
16678
16679         PR middle-end/35823
16680         * fold-const.c (optimize_minmax_comparison): Use the correct
16681         type for the constant in the simplified comparison.
16682
16683 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
16684
16685         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
16686         Pass L2 size as "--param l2-cache-size" to the compiler.
16687         (decode_l2_cache): New function to decode L2 cache parameters using
16688         0x8000006 extended cpuid function.
16689         (detect_caches_amd): Determine parameters of L2 cache using
16690         decode_l2_caches function.
16691         (decode_caches_intel): Decode L2 cache parameters.
16692         (detect_caches_intel): Determine L2 cache parameters using
16693         decode_caches_intel and decode_l2_caches functions.
16694
16695 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
16696
16697         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
16698         secondary input reload for subword loads from the constant pool.
16699
16700 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
16701
16702         PR target/35713
16703         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
16704           constants of the appropriate size for runtime calculations.
16705
16706         PR c/35712
16707         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
16708           decimal-float literal constant zero.
16709
16710 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
16711
16712         PR c/35738
16713         * c-parser.c (c_parser_omp_atomic): Call
16714         default_function_array_conversion on the RHS.
16715
16716         PR middle-end/35818
16717         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
16718         call is_variable_sized if decl has incomplete type.
16719
16720 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
16721
16722         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
16723
16724 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
16725
16726         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
16727         iterators.
16728         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
16729         (sgt<u>): Merge sgt and sgtu into new expander.
16730         (sgt, sgtu): Remove expanders.
16731         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
16732         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
16733         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
16734         *sgtu_<mode>_mips16 into new pattern.
16735         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
16736         (sge<u>): Merge sge and sgeu into new expander.
16737         (sge, sgeu): Remove expanders.
16738         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
16739         new pattern.
16740         (*sge_<mode>, second *sge_<mode>): Remove patterns.
16741         (slt<u>): Merge slt and sltu into new expander.
16742         (slt, sltu): Remove expanders.
16743         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
16744         (*slt_<mode>, *sltu_<mode>): Remove patterns.
16745         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
16746         *sltu_<mode>_mips16 into new pattern.
16747         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
16748         (sle<u>): Merge sle and sleu into new expander.
16749         (sle, sleu): Remove expanders.
16750         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
16751         (*sle_<mode>, *sleu_<mode>): Remove patterns.
16752         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
16753         *sleu_<mode>_mips16 into new pattern.
16754         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
16755
16756 2008-04-03  Jan Hubicka  <jh@suse.cz>
16757
16758         PR tree-optimization/35795
16759         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
16760         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
16761         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
16762         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
16763         * score/score3.c (score3_output_mi_thunk): Likewise.
16764         * score/score7.c (score7_output_mi_thunk): Likewise.
16765         * mips/mips.c (mips_output_mi_thunk): Likewise.
16766
16767 2008-04-03  Richard Guenther  <rguenther@suse.de>
16768
16769         * tree-vrp.c (extract_range_from_unary_expr): Handle all
16770         conversions.  Simplify code.
16771
16772 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16773
16774         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
16775
16776 2008-04-03  Tom Tromey  <tromey@redhat.com>
16777             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16778
16779         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
16780         * config/bfin/t-bfin-linux (generated_files): Add
16781         linux-sysroot-suffix.h.
16782         * doc/install.texi (Prerequisites): Require make 3.80.
16783         * doc/sourcebuild.texi (Front End Directory): Document new
16784         variable.
16785         * Makefile.in (generated_files): New variable.
16786         (ALL_HOST_OBJS): New variable.
16787         ($(ALL_HOST_OBJS)): New target.
16788
16789 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
16790
16791         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
16792         (remap_block): Call id->transform_lang_insert_block instead
16793         of langhook.
16794         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
16795         Set id.transform_lang_insert_block to NULL.
16796         (clone_body): Move to cp/optimize.c
16797         * tree-inline.h (struct copy_body_data): Change
16798         transform_lang_insert_block to function pointer.
16799         (copy_generic_body, copy_decl_no_change): Export.
16800         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
16801         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
16802         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
16803
16804         * c-tree.h (insert_block): Kill.
16805         * c-decl.c (insert_block): Kill.
16806
16807 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
16808
16809         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
16810         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
16811         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
16812         argument.
16813         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
16814         argument, call {push,pop}_function_context from here.
16815         * c-parser.c: Use c_{push,pop}_function_context.
16816
16817         * function.c (push_function_context_to): Move meat ...
16818         (push_function_context): ... here.  Simplify.
16819         * function.c (pop_function_context_from): Move meat ...
16820         (pop_function_context): ... here.  Simplify.
16821         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
16822         leave_nested).
16823         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
16824         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
16825         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
16826         * tree.h (push_function_context_to, pop_function_context_from): Remove.
16827
16828 2008-04-03  Ben Elliston  <bje@au.ibm.com>
16829
16830         * expmed.c (extract_force_align_mem_bit_field): Remove.
16831
16832 2008-04-03  Richard Guenther  <rguenther@suse.de>
16833
16834         PR middle-end/35800
16835         * expr.h (try_casesi): Adjust prototype.
16836         * expr.c (try_casesi): Take fallback label as extra parameter.
16837         Use that for gen_casesi if default_label is NULL.
16838         * stmt.c (expand_case): Pass fallback label to try_casesi,
16839         make sure to fill gaps with a fallback label if default_label
16840         is not present.
16841
16842 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
16843
16844         PR target/35801
16845         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
16846
16847 2008-04-03  Ben Elliston  <bje@au.ibm.com>
16848
16849         * expmed.c (extract_split_bit_field): Remove if (0) code.
16850         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
16851         (do_ds_constraint): Likewise.
16852
16853 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
16854
16855         * doc/cppopts.texi (-dU): Document.
16856         * c-common.h (flag_dump_macros): Update comment.
16857         * c-opts.c (handle_OPT_d): Handle -dU.
16858         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
16859         dump_queued_macros, cb_used_define, cb_used_undef): New.
16860         (init_pp_output): Handle -dU.
16861         (cb_line_change): Call dump_queued_macros.
16862         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
16863
16864 2008-04-02  Anatoly Sokolov <aesok@post.ru>
16865
16866         * config/avr/predicates.md (io_address_operand): New predicate.
16867         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
16868         * config/avr/avr.c (avr_io_address_p): Remove function.
16869         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
16870         'avr_io_address_p' function.
16871         (out_movhi_r_mr): (Ditto.).
16872         (out_movqi_mr_r): (Ditto.).
16873         (out_movhi_mr_r): (Ditto.).
16874         (avr_address_cost): (Ditto.).
16875
16876 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
16877
16878         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
16879         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
16880         in 32bit mode when XMM registers are available to avoid store
16881         forwarding stalls.
16882         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
16883         corresponding post-reload splitters.
16884
16885 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
16886
16887         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
16888         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
16889         __builtin_ia32_roundss.
16890         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
16891         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
16892         __builtin_ia32_roundss.
16893         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
16894         IX86_BUILTIN_SHUFPD here.
16895
16896 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
16897
16898         * config/i386/i386.md (plogic): New.
16899         (plogicprefix): Likewise.
16900
16901         * config/i386/mmx.md (mmx_<code><mode>3): New.
16902         (mmx_and<mode>3): Removed.
16903         (mmx_ior<mode>3): Likewise.
16904         (mmx_xor<mode>3): Likewise.
16905
16906         * config/i386/sse.md (<code><mode>3): New.
16907         (*<code><mode>3): Likewise.
16908         (*<code><mode>3): Likewise.
16909         (<code><mode>3): Likewise.
16910         (*sse_<code><mode>3): Likewise.
16911         (*sse2_<code><mode>3): Likewise.
16912         (<code>tf3): Likewise.
16913         (*<code>tf3): Likewise.
16914         (and<mode>3): Likewise.
16915         (*and<mode>3): Likewise.
16916         (ior<mode>3): Removed.
16917         (*ior<mode>3): Likewise.
16918         (xor<mode>3): Likewise.
16919         (*xor<mode>3): Likewise.
16920         (*and<mode>3): Likewise.
16921         (*ior<mode>3): Likewise.
16922         (*xor<mode>3): Likewise.
16923         (and<mode>3): Likewise.
16924         (*sse_and<mode>3): Likewise.
16925         (*sse2_and<mode>3): Likewise.
16926         (andtf3): Likewise.
16927         (*andtf3): Likewise.
16928         (ior<mode>3): Likewise.
16929         (*sse_ior<mode>3): Likewise.
16930         (*sse2_ior<mode>3): Likewise.
16931         (iortf3): Likewise.
16932         (*iortf3): Likewise.
16933         (xor<mode>3): Likewise.
16934         (*sse_xor<mode>3): Likewise.
16935         (*sse2_xor<mode>3): Likewise.
16936         (xortf3): Likewise.
16937         (*xortf3): Likewise.
16938
16939 2008-04-02  Richard Guenther  <rguenther@suse.de>
16940
16941         PR tree-optimization/14495
16942         PR tree-optimization/34793
16943         * tree-vrp.c (struct switch_update): New structure.
16944         (to_remove_edges, to_update_switch_stmts): New VECs.
16945         (simplify_switch_using_ranges): New function.  Remove not taken
16946         case labels and edges.
16947         (simplify_stmt_using_ranges): Call it.
16948         (identify_jump_threads): Mark edges we have queued for removal
16949         so we don't thread them.
16950         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
16951         case label vector.
16952         * tree-cfg.c (group_case_labels): Deal with missing default label.
16953         (tree_verify_flow_info): Allow missing default label.
16954         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
16955         (emit_case_nodes): Likewise.
16956         (expand_case): Do not rely on the default label to be present.
16957         * expr.c (try_casesi): Deal with NULL default_label.
16958         (do_tablejump): Likewise.
16959
16960 2008-04-02  Richard Guenther  <rguenther@suse.de>
16961
16962         PR tree-optimization/14495
16963         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
16964         SWITCH_EXPR here ...
16965         (vrp_visit_switch_stmt): ... but here (new function).
16966         (find_case_label_index): New helper function.
16967         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
16968
16969 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
16970
16971         * fwprop.c: Fix ISO-C99ism.
16972
16973 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
16974
16975         PR bootstrap/35752
16976         * Makefile.in (objdir): Set it here.
16977         * configure.ac: Not here.  Find dynamic linker characteristics.
16978         * exec-tool.in: Use them.
16979         * aclocal.m4: Regenerate.
16980         * configure: Regenerate.
16981
16982 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
16983
16984         * expr.c (expand_var): Delete it.
16985         * expr.h (expand_var): Delete prototype.
16986         * function.c (expand_function_start): Use expand_decl instead.
16987         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
16988         langhook.
16989
16990 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
16991
16992         PR rtl-optimization/35542
16993         * fwprop.c (forward_propagate_and_simplify): Replace
16994         loc_reg_mentioned_in_p with reg_mentioned_p.
16995
16996 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
16997
16998         PR rtl-optimization/35281
16999         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
17000         (propagate_rtx_1): Handle PR_HANDLE_MEM.
17001         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
17002         (varying_mem_p): Move above propagate_rtx.
17003         (all_uses_available_at): Do not check MEMs.
17004
17005 2008-04-02  Rafael Espíndola  <espindola@google.com>
17006
17007         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
17008         (register_edge_assert_for_2): Split the cond argument.
17009         (register_edge_assert_for_1): Adjust for the change in
17010         register_edge_assert_for_2.
17011         (register_edge_assert_for): Split the cond argument.
17012         (find_switch_asserts): Adjust for the change in
17013         register_edge_assert_for.
17014
17015 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
17016
17017         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
17018         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
17019         offsets for 64-bit mingw.
17020         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
17021         abi for x86_64-pc-mingw.
17022
17023 2008-04-02  Richard Guenther  <rguenther@suse.de>
17024
17025         * tree-vrp.c (extract_range_from_assert): Make sure to not
17026         produce range min/max with TREE_OVERFOW set.
17027         If merging a anti-range and a range keep the anti-range if
17028         the range covers all values of the type.
17029         (register_edge_assert_for_2): Only allow sign-changing
17030         conversions in detecting canonical range checks.  Also
17031         register an assert for the unsigned name if useful.
17032
17033         PR tree-optimization/35787
17034         * tree-vrp.c (vrp_val_max): New function.
17035         (vrp_val_min): Likewise.
17036         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
17037         (vrp_val_is_min): Likewise.
17038         (supports_overflow_infinity): Use vrp_val_{min,max}.
17039         (negative_overflow_infinity): Likewise.
17040         (positive_overflow_infinity): Likewise.
17041         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
17042         (is_positive_overflow_infinity): Likewise.
17043         (is_overflow_infinity): Likewise.
17044         (avoid_overflow_infinity): Use vrp_val_{min,max} and
17045         vrp_val_is_{min,max}.
17046         (set_and_canonicalize_value_range): Canonicalize anti-ranges
17047         to ranges if possible.  Avoid empty ranges.
17048
17049 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17050
17051         PR middle-end/35705
17052         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
17053         the expression is a function address.
17054
17055 2008-04-01  George Helffrich  <george@gcc.gnu.org>
17056
17057         PR fortran/35154, fortran/23057
17058         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
17059         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
17060         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
17061         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
17062         in common.
17063         (dbxout_syms): Check for COMMON-based symbol and wrap in
17064         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
17065         in bracket for efficiency.
17066
17067         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
17068         using DW_TAG_common_block + member offset.
17069         (add_pubname_string): New function.
17070         (dw_expand_expr): New function to find block name and offset for
17071         COMMON var.
17072         (common_check): New function to check whether symbol in Fortran COMMON.
17073         (gen_variable_die): If COMMON, use DW_TAG_common_block.
17074
17075 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
17076
17077         PR c/35436
17078         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
17079
17080 2008-04-02  Ben Elliston  <bje@au.ibm.com>
17081
17082         * config/v850/v850.md (casesi): Remove if (0) code.
17083         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17084         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
17085
17086 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
17087
17088         * config/i386/i386.md (rex64suffix): New mode attribute.
17089         (floathi<mode>2): Disable expander for SSE math.
17090         (*floathi<mode>2_1): New insn insn_and_split pattern.
17091         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
17092         corresponding post-reload splitters.
17093         (*floathi<mode>2_i387): New macroized insn pattern.
17094         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
17095         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
17096         insn_and_split pattern.
17097         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
17098         New macroized instruction patterns and corresponding post-reload
17099         splitters.
17100         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
17101         and corresponding post-reload splitters.
17102         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
17103         New macroized instruction patterns.
17104         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
17105         macroized instruction patterns and corresponding post-reload splitters.
17106         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
17107         corresponding post-reload splitters.
17108         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
17109         New macroized instruction patterns.
17110         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
17111         corresponding post-reload splitters.
17112         (*floatsi<mode>2_i387): New macroized instruction patterns.
17113
17114 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
17115
17116         * config/i386/i386.md (smaxmin): New.
17117         (umaxmin): Likewise.
17118         (maxminiprefix): Likewise.
17119         (maxminfprefix): Likewise.
17120         (<code><mode>3): Likewise.
17121         (smin<mode>3): Removed.
17122         (smax<mode>3): Likewise.
17123
17124         * config/i386/mmx.md (mmx_<code>v2sf3): New.
17125         (mmx_<code>v4hi3): Likewise.
17126         (mmx_<code>v8qi3): Likewise.
17127         (mmx_smaxv2sf3): Removed.
17128         (mmx_sminv2sf3): Likewise.
17129         (mmx_umaxv8qi3): Likewise.
17130         (mmx_smaxv4hi3): Likewise.
17131         (mmx_uminv8qi3): Likewise.
17132         (mmx_sminv4hi3): Likewise.
17133
17134         * config/i386/sse.md (<addsub><mode>3): New.
17135         (*<addsub><mode>3): Likewise.
17136         (<sse>_vm<addsub><mode>3): Likewise.
17137         (<maxmin><mode>3): Likewise.
17138         (*<maxmin><mode>3_finite): Likewise.
17139         (*<maxmin><mode>3): Likewise.
17140         (<sse>_vm<maxmin><mode>3): Likewise.
17141         (sse3_h<addsub>v4sf3): Likewise.
17142         (sse3_h<addsub>v2df3): Likewise.
17143         (<maxmin>v16qi3): Likewise.
17144         (*<maxmin>v16qi3): Likewise.
17145         (<maxmin>v8hi3): Likewise.
17146         (*<maxmin>v8hi3): Likewise.
17147         (*sse4_1_<maxmin><mode>3): Likewise.
17148         (*sse4_1_<maxmin><mode>3): Likewise.
17149         (add<mode>3): Removed.
17150         (*add<mode>3): Likewise.
17151         (<sse>_vmadd<mode>3): Likewise.
17152         (sub<mode>3): Likewise.
17153         (*sub<mode>3): Likewise.
17154         (<sse>_vmsub<mode>3): Likewise.
17155         (smin<mode>3): Likewise.
17156         (*smin<mode>3_finite): Likewise.
17157         (*smin<mode>3): Likewise.
17158         (<sse>_vmsmin<mode>3): Likewise.
17159         (smax<mode>3): Likewise.
17160         (*smax<mode>3_finite): Likewise.
17161         (*smax<mode>3): Likewise.
17162         (<sse>_vmsmax<mode>3): Likewise.
17163         (sse3_haddv4sf3): Likewise.
17164         (sse3_haddv2df3): Likewise.
17165         (sse3_hsubv4sf3): Likewise.
17166         (sse3_hsubv2df3): Likewise.
17167         (umaxv16qi3): Likewise.
17168         (*umaxv16qi3): Likewise.
17169         (smaxv8hi3): Likewise.
17170         (*smaxv8hi3): Likewise.
17171         (*sse4_1_smax<mode>3): Likewise.
17172         (*sse4_1_umax<mode>3): Likewise.
17173         (uminv16qi3): Likewise.
17174         (*uminv16qi3): Likewise.
17175         (sminv8hi3): Likewise.
17176         (*sminv8hi3): Likewise.
17177         (*sse4_1_smin<mode>3): Likewise.
17178         (*sse4_1_umin<mode>3): Likewise.
17179
17180 2008-04-01  Rafael Espíndola  <espindola@google.com>
17181
17182         * tree-cfg.c (verify_expr): remove in_phi.
17183         (verify_stmt): Don't call walk_tree with verify_expr. Use
17184         is_gimple_min_invariant instead of is_gimple_val.
17185
17186 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
17187
17188         * doc/include/gpl_v3.texi: Update for manpage generation.
17189         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
17190         gpl.texi.
17191         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
17192         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
17193         gpl_v3.texi instead of gpl.texi.
17194         (gpl.pod): New.
17195
17196 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
17197
17198         PR pch/13675
17199         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
17200
17201 2008-04-01  Rafael Espíndola  <espindola@google.com>
17202
17203         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
17204         (extract_code_and_val_from_cond): Use
17205         extract_code_and_val_from_cond_with_ops.
17206
17207 2008-04-01  Jan Hubicka  <jh@suse.cz>
17208
17209         * function.c (free_after_compilation): Free epilogue_delay_list.
17210         (prepare_function_start): Assert that previous compilation was freed.
17211
17212 2008-04-01  Jan Hubicka  <jh@suse.cz>
17213             Jim Wilson  <wilson@tuliptree.org>
17214             Andreas Tobler <andreast@gcc.gnu.org>
17215
17216         PR middle-end/35781
17217         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
17218         rtl.emit instead cfun->emit.
17219         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
17220         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
17221
17222 2008-04-01  Ben Elliston  <bje@au.ibm.com>
17223
17224         * doc/c-tree.texi (Function Basics): Fix grammatical error.
17225
17226 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
17227
17228         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
17229         New options
17230         (fprofile-use): Add var flag_profile_use
17231         * coverage.c (coverage_begin_output): Do not open a gcno file for
17232         output only if -ftest-coverage is set.
17233         Do not add getpwd() to gcda file path.
17234         (build_gcov_info): Check the new flag
17235         flag_profile_datafile_relative_path.
17236         (coverage_init): Use profile_data_prefix.
17237         Read profile counter only if flag_profile_use is set.
17238         * opts.c (common_handle_option): New option fprofile-use=,
17239         fprofile-dir=, fprofile-generate=.
17240         * toplev.c (profile_data_prefix): New variable definition.
17241         * toplev.h (profile_data_prefix): New declaration.
17242         * doc/invoke.tex (Option Summary, Optimization Options):
17243         Add new options.
17244
17245 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
17246
17247         * varasm.c (output_constant_pool_1): In LABEL_REF check,
17248         use tmp consistently.
17249
17250         PR target/35695
17251         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
17252         * config/ia64/ia64.c (rtx_needs_barrier): Handle
17253         UNSPEC_FR_RECIP_APPROX_RES.
17254         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
17255
17256 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
17257
17258         PR c/35750
17259         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
17260
17261 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17262
17263         PR middle-end/30186
17264         * fold-const.c (fold_indirect_ref_1): Support accessing non first
17265         element of the vector via a pointer.
17266
17267 2008-03-31  Ian Lance Taylor  <iant@google.com>
17268
17269         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
17270
17271 2008-03-31  Jan Hubicka  <jh@suse.cz>
17272
17273         * builtins.c (expand_builtin_setjmp_receiver): Update call of
17274         get_arg_pointer_save_area.
17275         * expr.c (init_expr): Just clear out rtl.expr.
17276         * function.c (free_after_compilation): Clear out whole RTL structure.
17277         (get_func_frame_size): Merge into ...
17278         (get_frame_size): ... this one.
17279         (assign_stack_local_1): Merge into ...
17280         (assign_stack_local): ... this one.
17281         (expand_function_end): Update call of get_arg_pointer_save_area.
17282         (get_art_pointer_save_area): Remove cfun argument.
17283         * function.h (emit_status): regno_pointer_align does not need length
17284         attribute. Move x_regno_reg_rtx to ...
17285         (regno_reg_rtx): ... new global array.
17286         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
17287         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
17288         apply_args_value, forced_labels, stack_pointer_delta):
17289         Update accestors.
17290         (struct varasm_status): Move here from varasm.c
17291         (struct rtl_data): New. Move here some fields from struct function.
17292         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
17293         frame_offset, stack_check_probe_note, arg_pointer_save_area,
17294         used_temp_slots avail_temp_slots, temp_slot_level,
17295         nonlocal_goto_handler_labels): Update accesstors.
17296         (rtl): New global variable.
17297         (struct function): Move some fileds to rtl_data.
17298         (get_arg_pointer_save_area): Update prototype.
17299         * emit-rtl.c (rtl): Declare.
17300         (regno_reg_rtx): Declare.
17301         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
17302         Update.
17303         (gen_reg_rtx): Update.
17304         (init_virtual_regs): Do not tate emit_status argument.
17305         (init_emit): Do not allocate emit.
17306         * varasm.c (varasm_statuc): Move to function.h.
17307         (n_deferred_constatns): Update accestor.
17308         (init_varasm_status): Do not allocate varasm_status.
17309         (force_const_mem, get_pool_size, output_constant_pool): Update.
17310         * stmt.c (force_label_rtx): Do not use x_ prefixes.
17311         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
17312
17313 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
17314
17315         PR rtl-optimization/35729
17316         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
17317         references.
17318
17319 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
17320
17321         PR target/32000
17322         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
17323         load/store if memory is unaligned.
17324         (*movti_rex64): Likewise.
17325
17326         * config/i386/predicates.md (misaligned_operand): New.
17327
17328 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
17329
17330         PR tree-opt/35431
17331         * tree-ssa-phiopt.c (conditional_replacement): Return early for
17332         complex types.
17333
17334 2008-03-31  Jan Beulich  <jbeulich@novell.com>
17335
17336         * config/ia64/constraints.md: Add 'j' constraint.
17337         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
17338         (movdi_internal): Likewise.
17339
17340 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
17341
17342         PR c/35748
17343         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
17344
17345 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
17346
17347         PR target/35757
17348         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
17349         proper error message for the third argument on blendpd and
17350         blendps.
17351
17352         * config/i386/sse.md (blendbits): New.
17353         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
17354
17355 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
17356
17357         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
17358
17359 2008-03-30  Richard Guenther  <rguenther@suse.de>
17360
17361         PR middle-end/31023
17362         * fold-const.c (fold_sign_changed_comparison): Do leave
17363         conversions to base-types alone.
17364
17365 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17366
17367         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
17368         the link register if one altivec register is be saved.
17369
17370 2008-03-30  Ben Elliston  <bje@au.ibm.com>
17371
17372         * final.c (final_scan_insn): Remove if (0) code.
17373
17374 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
17375
17376         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
17377
17378 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
17379
17380         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
17381         of V4SFmode to ix86_binary_operator_ok.
17382
17383 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
17384
17385         * config/i386/i386.c (override_options): Initialize
17386         ix86_veclib_handler to ix86_veclibabi_svml when
17387         -mveclibabi=svml is used.
17388         (ix86_veclibabi_svml): New function for SVML ABI style
17389         vectorization support.
17390         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
17391
17392 2008-03-28  Rafael Espíndola  <espindola@google.com>
17393
17394         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
17395         (tree_binary_nonnegative_warnv_p): Make it public.
17396         (tree_single_nonnegative_warnv_p): Make it public.
17397         (tree_invalid_nonnegative_warnv_p): Make it public.
17398         (tree_unary_nonzero_warnv_p): Make it public.
17399         (tree_binary_nonzero_warnv_p): Make it public
17400         (tree_single_nonzero_warnv_p): Make it public.
17401         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
17402         (extract_range_from_binary_expr): Split the expr argument.
17403         (extract_range_from_unary_expr): Split the expr argument.
17404         (extract_range_from_comparison): Split the expr argument.
17405         (extract_range_from_expr): Use the new aux functions.
17406         (vrp_evaluate_conditional_warnv): Use
17407         vrp_evaluate_conditional_warnv_with_ops.
17408         * tree.h (tree_unary_nonzero_warnv_p): Declare.
17409         (tree_binary_nonzero_warnv_p): Declare.
17410         (tree_single_nonzero_warnv_p): Declare.
17411         (tree_expr_nonzero_warnv_p): Declare.
17412         (tree_unary_nonnegative_warnv_p): Declare.
17413         (tree_binary_nonnegative_warnv_p): Declare.
17414         (tree_single_nonnegative_warnv_p): Declare.
17415         (tree_invalid_nonnegative_warnv_p): Declare.
17416
17417 2008-03-28  Richard Guenther  <rguenther@suse.de>
17418
17419         PR tree-optimization/30317
17420         PR tree-optimization/30911
17421         PR tree-optimization/34793
17422         * tree-vrp.c (set_and_canonicalize_value_range): New function.
17423         (struct assert_locus_d): New member EXPR.
17424         (register_new_assert_for): Add EXPR parameter to support
17425         ASSERT_EXPR <name, expr OP limit>.
17426         (register_edge_assert_for_1): Adjust callers.
17427         (find_assert_locations): Likewise.
17428         (process_assert_insertions_for): Build condition from expression.
17429         (extract_range_from_assert): Handle ASSERT_EXPRs
17430         of the form ASSERT_EXPR <name, expr OP limit>.
17431         (register_edge_assert_for_2): New helper registering
17432         asserts for comparisons.  Recognize range tests of the form
17433         (unsigned)i - CST1 OP CST2.
17434         (register_edge_assert_for_1): Use it.
17435         (register_edge_assert_for): Likewise.
17436         (needs_overflow_infinity): Integer sub-types
17437         do not need overflow infinities.
17438         (vrp_val_is_max): The extreme values of integer sub-types
17439         are those of the base type.
17440         (vrp_val_is_min): Likewise.
17441         * tree.def (ASSERT_EXPR): Document extra allowed conditional
17442         expressions.
17443
17444 2008-03-28  Nick Clifton  <nickc@redhat.com>
17445
17446         PR target/31110
17447         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
17448         Return GENERAL_REGS for stack adjustment reloads.
17449
17450 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17451
17452         PR target/31334
17453         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
17454         const_vector when all the vectors are constant.
17455
17456 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
17457
17458         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
17459         comparisons.
17460         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
17461         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
17462         (scc_sf): New.
17463         (s<code>_sf): Use new scc_sf attribute for opcode names.
17464
17465 2008-03-27  Tom Tromey  <tromey@redhat.com>
17466
17467         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
17468         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
17469         config/spu/t-spu-elf, config/i386/t-interix,
17470         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
17471         config/i386/x-darwin, config/i386/x-mingw32,
17472         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
17473         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
17474         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
17475         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
17476         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
17477         config/rs6000/x-darwin, config/rs6000/t-rs6000,
17478         config/score/t-score-elf, config/arm/t-strongarm-pe,
17479         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
17480         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
17481         Revert automatic dependency patch.
17482
17483 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17484
17485         PR target/35657
17486         * config/i386/i386.c (ix86_function_arg_boundary): Align
17487         decimal floating point to its natural boundary.
17488
17489 2008-03-27  Richard Guenther  <rguenther@suse.de>
17490
17491         PR middle-end/35716
17492         * fold-const.c (fold_comparison): Restrict distinct decl
17493         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
17494         solely rely on operand_equal_p.
17495
17496 2008-03-27  Richard Guenther  <rguenther@suse.de>
17497
17498         PR c/32511
17499         * c-common.c (handle_weak_attribute): Reject combination of
17500         weak and inline.
17501
17502 2008-03-27  Richard Guenther  <rguenther@suse.de>
17503
17504         PR tree-optimization/32810
17505         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
17506         conversions from DECL_INITIAL.
17507         (fold_const_aggregate_ref): Likewise from constructor elements.
17508
17509 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
17510
17511         * tree-affine.h (aff_combination_expand): Declare.
17512         (get_inner_reference_aff): Likewise.
17513         * tree-affine.c (aff_combination_expand): Split out from
17514         tree_to_aff_combination_expand.
17515         (get_inner_reference_aff): New function.
17516         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
17517         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
17518         (struct lim_aux_data): sm_done field removed.
17519         (mem_ref_loc_p, mem_ref_locs_p): New types.
17520         (struct mem_ref): Added id, stored, accesses_in_loop,
17521         indep_loop, dep_loop, indep_ref, dep_ref fields.
17522         Removed is_stored, locs and next fields.
17523         (memory_accesses): New variable.
17524         (movement_possibility): Do not allow moving statements
17525         that store to memory.
17526         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
17527         New functions.
17528         (determine_max_movement): For statements with memory references,
17529         find the outermost loop in that the reference is independent.
17530         (move_computations_stmt): Mark the virtual operands for renaming.
17531         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
17532         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
17533         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
17534         add_vop_ref_mapping, create_vop_ref_mapping_loop,
17535         create_vop_ref_mapping, analyze_memory_references,
17536         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
17537         get_all_locs_in_loop, ref_always_accessed_p,
17538         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
17539         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
17540         store_motion_loop, store_motion): New functions.
17541         (struct vop_to_refs_elt): New type.
17542         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
17543         memref_hash, memref_eq, hoist_memory_references): Rewritten.
17544         (schedule_sm): Replaced by...
17545         (execute_sm): ... this.
17546         (determine_lsm_ref, hoist_memory_references,
17547         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
17548         find_more_ref_vops, free_mem_ref, free_mem_refs,
17549         determine_lsm_loop, determine_lsm): Removed.
17550         (tree_ssa_lim_finalize): Free data structures used by store motion.
17551         (tree_ssa_lim): Call analyze_memory_references.  Use
17552         store_motion instead of determine_lsm.
17553
17554 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
17555
17556         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
17557         rename tmake_file to m68hc11/t-m68hc11.
17558         (mcore): Set inhibit_libc to true.
17559         * config.host (alpha*-dec-*vms*): Set extra_programs.
17560         (interix3*): Don't use host_xmake_file.
17561         * configure.ac: Let config.gcc override inhibit_libc.
17562         * configure: Regenerate.
17563
17564         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
17565         * config/t-openbsd-thread: Remove commented out lines.
17566
17567         * config/x-interix: Remove.
17568
17569         * config/m68hc11/t-m68hc11-gas: Rename to...
17570         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
17571
17572         * config/mcore/t-mcore: Remove T_CFLAGS.
17573         * config/mcore/t-mcore-pe: Likewise.
17574
17575 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
17576
17577         * configure.ac: Replace custom __GNU_SOURCE test with
17578         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
17579         * aclocal.m4: Regenerate.
17580         * configure: Regenerate.
17581         * config.in: Regenerate.
17582
17583 2008-03-27  Richard Guenther  <rguenther@suse.de>
17584
17585         * fold-const.c (target.h): Include.
17586         (fold_comparison): Fold comparison of addresses of decls
17587         that bind locally or of constants.  Consolidate address folding code.
17588         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
17589         results from fold_binary_to_constant.
17590         (compare_values_warnv): Likewise.
17591
17592 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
17593
17594         PR middle-end/35429
17595         * fold-const.c (fold_truthop): Check for integeral types when folding
17596         a == 0 && b == 0 and a != 0 || b != 0 .
17597
17598 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
17599
17600         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
17601
17602 2008-03-26  Andreas Schwab  <schwab@suse.de>
17603
17604         * doc/invoke.texi: Fix use of @item vs. @itemx.
17605
17606 2008-03-26  Tom Tromey  <tromey@redhat.com>
17607
17608         * Makefile.in (build/gensupport.o, build/print-rtl.o,
17609         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
17610         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
17611         build/gencodes.o, build/genconditions.o, build/genconfig.o,
17612         build/genconstants.o, build/genemit.o, build/genextract.o,
17613         build/genflags.o, build/genmddeps.o, build/genopinit.o,
17614         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
17615         options.h.
17616
17617 2008-03-26  Richard Guenther  <rguenther@suse.de>
17618
17619         Revert
17620         2008-03-26  Richard Guenther  <rguenther@suse.de>
17621
17622         * fold-const.c (target.h): Include.
17623         (fold_comparison): Fold comparison of addresses of two decls
17624         that bind locally.  Consolidate address folding code.
17625
17626 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17627
17628         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
17629         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
17630         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
17631         dconstsqrt2, dconstthird, dconste and/or dconst10.
17632         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
17633         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
17634         dconstsqrt2, dconste): Delete.
17635         (init_emit_once): Likewise.  Simplify initializing dconstm1.
17636         Constify variable.
17637         * real.c (get_real_const): New.
17638         * real.h (dconst3, dconst10, dconstm2, dconstthird,
17639         dconstsqrt2, dconste): Delete.
17640         (real_value_const, get_real_const): New.
17641
17642 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
17643
17644         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
17645
17646         * config/i386/i386.c (ix86_function_arg_boundary): Check
17647         BIGGEST_ALIGNMENT instead of 128.
17648         (setup_incoming_varargs_64): Likewise.
17649
17650 2008-03-26  Tom Tromey  <tromey@redhat.com>
17651
17652         * Makefile.in (DEPFILES): Add missing '/'.
17653
17654 2008-03-26  Richard Guenther  <rguenther@suse.de>
17655
17656         * fold-const.c (target.h): Include.
17657         (fold_comparison): Fold comparison of addresses of two decls
17658         that bind locally.  Consolidate address folding code.
17659
17660 2008-03-26  Nick Clifton  <nickc@redhat.com>
17661
17662         PR target/31232
17663         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
17664         not allow INT+INT as a legitimate addressing mode.
17665
17666 2008-03-26  Richard Guenther  <rguenther@suse.de>
17667
17668         * tree-flow.h (widen_bitfield): Remove declaration.
17669         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
17670         (widen_bitfield): Remove function.
17671         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
17672         code.
17673
17674 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17675
17676         PR target/31558
17677         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
17678         error_mark_node's.
17679
17680 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
17681
17682         PR rtl-optimization/35232
17683         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
17684         (forget_old_reloads_1, forget_marked_reloads): Don't clear
17685         reg_reloaded_call_part_clobbered here.
17686         (reload_regs_reach_end_p): New function.
17687         (reload_reg_rtx_for_input): New variable.
17688         (reload_reg_rtx_for_output): Likewise.
17689         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
17690         when reassigning a pseudo register.  Load reloadreg from
17691         reload_reg_rtx_for_input, moving the mode and register
17692         calculation to...
17693         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
17694         instead of the original when deciding whether an input reload
17695         would be a no-op or whether an output reload can be deleted.
17696         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
17697         when setting up new_spill_reg_store.  Load it from
17698         reload_reg_rtx_for_output, moving the mode and register
17699         calculation to...
17700         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
17701         instead of the original when deciding whether an output reload
17702         would be a no-op.  Do the same when modifying insn notes.
17703         Use rtx_equal_p instead of == to compare the registers.
17704         (inherit_piecemeal_p): Take a mode and two register numbers
17705         as argument.
17706         (emit_reload_insns): Clear new_spill_reg_store for every hard
17707         register in the reload register.  Remove spill registers
17708         from reg_reloaded_valid before considering whether to record
17709         inheritance information for them.  Use reload_reg_rtx_for_output
17710         instead of reg_rtx when recording output reloads.  Use
17711         reload_reg_rtx_for_input instead of reg_rtx when recording
17712         input reloads.  Set or clear reg_reloaded_call_part_clobbered
17713         at the same time as setting reg_reloaded_valid.
17714         (delete_output_reload): Add a new_reload_reg parameter and use it
17715         instead of rld[j].reg_rtx.
17716         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
17717         calls accordingly.
17718
17719 2008-03-25  Tom Tromey  <tromey@redhat.com>
17720
17721         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
17722         (build/genattr.o): Likewise.
17723         (build/genattrtab.o): Likewise.
17724         (build/gencodes.o): Likewise.
17725         (build/genconfig.o): Likewise.
17726         (build/genconstants.o): Likewise.
17727         (build/genemit.o): Likewise.
17728         (build/genextract.o): Likewise.
17729         (build/genflags.o): Likewise.
17730
17731 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
17732
17733         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
17734         instead of size_int for integer types.
17735         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
17736         to match type of MINUS_EXPR.
17737
17738 2008-03-25  Tom Tromey  <tromey@redhat.com>
17739
17740         * configure: Rebuilt.
17741         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
17742         Makefile.
17743
17744 2008-03-25  Tom Tromey  <tromey@redhat.com>
17745
17746         * config/x-solaris (host-solaris.o): Update.
17747         * config/x-linux (host-linux.o): Update.
17748         * config/x-hpux (host-hpux.o): Update.
17749         * config/x-darwin (host-darwin.o): Update.
17750         * config/v850/t-v850e (v850-c.o): Update.
17751         * config/v850/t-v850 (v850-c.o): Update.
17752         * config/t-vxworks (vxworks.o): Update.
17753         * config/t-sol2 (sol2-c.o, sol2.o): Update.
17754         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
17755         * config/spu/t-spu-elf (spu-c.o): Update.
17756         (spu.o): Remove.
17757         * config/sh/t-symbian (sh-c.o): Update.
17758         (symbian.o): Update.
17759         * config/sh/t-sh (sh-c.o): Update.
17760         * config/score/t-score-elf (score7.o, score3.o): Update.
17761         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
17762         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
17763         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
17764         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
17765         (rs6000.o): Remove.
17766         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
17767         * config/m32c/t-m32c (m32c-pragma.o): Update.
17768         * config/ia64/t-ia64 (ia64-c.o): Update.
17769         * config/i386/x-mingw32 (host-mingw32.o): Update.
17770         * config/i386/x-i386 (driver-i386.o): Update.
17771         * config/i386/x-darwin (host-i386-darwin.o): Update.
17772         * config/i386/x-cygwin (host-cygwin.o): Update.
17773         * config/i386/t-nwld (nwld.o): Update.
17774         * config/i386/t-netware (netware.o): Update.
17775         * config/i386/t-interix (winnt.o): Update.
17776         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
17777         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
17778         msformat-c.o): Update.
17779         * config/bfin/t-bfin-linux (generated_files): Add
17780         linux-sysroot-suffix.h.
17781         * config/arm/t-wince-pe (pe.o): Update.
17782         * config/arm/t-strongarm-pe (pe.o): Update.
17783         * config/arm/t-pe (pe.o): Update.
17784         * config/arm/t-arm (arm-c.o): Update.
17785         * doc/install.texi (Prerequisites): Require make 3.80.
17786         * Makefile.in: Remove .o targets.
17787         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
17788         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
17789         (simple_generated_h, simple_generated_c): Move earlier.
17790         (generated_files): New variable.
17791         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
17792         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
17793         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
17794         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
17795         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
17796         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
17797         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
17798         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
17799         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
17800         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
17801         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
17802         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
17803         (.c.o): Remove.
17804         (COMPILE.base, COMPILE): New variables.
17805         (%.o): New pattern rule.
17806         (ALL_HOST_OBJS): New variable.
17807         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
17808         (dummy-checksum.o, cc1-checksum.o): Remove.
17809         (DRIVER_SHLIB): New variable.
17810         (DRIVER_DEFINES): Use it.
17811         (gencondmd.c): Move out of build/.
17812         (s-conditions): Update.
17813         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
17814         (ALL_BUILD_OBJS): Likewise.
17815         (build/%.o): Use BUILDCOMPILE.
17816         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
17817         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
17818         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
17819         build/gencheck.o, build/gencodes.o, build/genconditions.o,
17820         build/genconfig.o, build/genconstants.o, build/genemit.o,
17821         build/genextract.o, build/genflags.o, build/genmddeps.o,
17822         build/genopinit.o, build/genoutput.o, build/genpeep.o,
17823         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
17824         build/gen-protos.o, build/scan.o, build/fix-header.o,
17825         build/scan-decls.o): Simplify.
17826         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
17827         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
17828         prefix.o, toplev.o): Reduce to variable setting.
17829         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
17830         ($(out_object_file), gcc-options.o): New targets.
17831         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
17832         * configure: Rebuilt.
17833         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
17834         * doc/sourcebuild.texi (Front End Directory): Document new variable.
17835
17836 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
17837
17838         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
17839         complain when we hit an error, return ERROR_MARK_NODE.
17840
17841 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
17842
17843         * config/sh/constraints.md (Pso, Psz): New constraints.
17844         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
17845         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
17846
17847 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
17848
17849         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
17850         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
17851
17852 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
17853
17854         * config/sh/sh.md (prefetch): Add condition for SH2A target.
17855         (prefetch_sh2a): New.
17856
17857 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
17858             Naveen.H.S  <naveen.hs@kpitcummins.com>
17859
17860         * config/sh/constraints.md (I28): New constraint.
17861         * config/sh/sh.c (broken_move): Add support for movi20s.
17862         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
17863
17864 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
17865             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
17866             Naveen.H.S  <naveen.hs@kpitcummins.com>
17867
17868         * config/sh/sh.c (SH_ATTRIBUTES): Define.
17869         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
17870         (print_operand): Handle resbank in %@ operand code.
17871         (sh_encode_section_info): New.
17872         (push_regs): Add conditions for resbank.
17873         (sh_expand_epilogue): Likewise.
17874         (sh_insert_attributes): Likewise.
17875         (sh_attribute_table): Likewise.
17876         (sh_handle_resbank_handler_attribute): New.
17877         (sh2a_handle_function_vector_handler_attribute): New.
17878         (sh2a_is_function_vector_call): New.
17879         (sh2a_get_function_vector_number): New.
17880         (sh2a_function_vector_p): New.
17881         (sh_cfun_resbank_handler_p): New.
17882         * config/sh/sh.md (calli): Emit jsr/n if possible.
17883         (calli_tbr_rel): New.
17884         (calli_pcrel): Emit jsr/n if possible.
17885         (return_i): Emit rts/n if possible.
17886         (call_valuei_tbr_rel): New.
17887         (call_valuei_pcrel): Add condition for SH2A target.
17888         (call_value): Likewise.
17889         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
17890         (sh2a_get_function_vector_number): Likewise.
17891         (sh2a_is_function_vector_call): Likewise.
17892         * doc/extend.texi: Document TBR relative addressing of SH2A.
17893         (resbank): Add description for SH2A.
17894
17895 2008-03-24  Richard Guenther  <rguenther@suse.de>
17896
17897         PR c/22371
17898         * gimplify.c (gimplify_modify_expr): For frontend type-correct
17899         pointer assignments change conversions according to middle-end rules.
17900         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
17901         * configure.ac: Include type checking in yes.
17902         * configure: Regenerate.
17903
17904 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17905
17906         * diagnostic.c (diagnostic_count_diagnostic): Delete.
17907         (diagnostic_report_diagnostic): Update. Handle ICEs here.
17908
17909 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
17910
17911         * gthr-vxworks.h (UNUSED): Define.
17912
17913 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
17914
17915         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
17916
17917 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
17918
17919         * doc/extend.texi (Function Attributes): Add missing comma in the
17920         example of the "alloc_size" attribute.
17921
17922 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
17923
17924         Revert:
17925         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
17926
17927         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
17928         32bit host.
17929
17930         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
17931
17932         PR target/35496
17933         * stor-layout.c (update_alignment_for_field): Set minimum alignment
17934         of the underlying type of a MS bitfield layout to the natural
17935         alignment of the type.
17936
17937         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
17938
17939         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
17940         to their natural alignment to avoid store forwarding stalls.
17941
17942 2008-03-22  Richard Guenther  <rguenther@suse.de>
17943
17944         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
17945         For PHI nodes verify the address is invariant.
17946         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
17947         (get_symbol_constant_value): Use is_gimple_min_invariant.
17948         (maybe_fold_stmt_indirect): Likewise.
17949
17950 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
17951
17952         PR rtl-optimization/33927
17953         * Makefile.in (dse.o): Depend on $(TM_P_H).
17954         * expr.h (extract_low_bits): Declare.
17955         * expmed.c (extract_low_bits): New function.
17956         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
17957         * dse.c: Include tm_p.h.
17958         (find_shift_sequence): Remove the read_reg argument and return the
17959         read value.  Emit the instructions instead of returning them.
17960         Iterate on new_mode rather than calculating it each time.
17961         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
17962         source to NEW_MODE and extract_low_bits to convert the shifted
17963         value to READ_MODE.
17964         (replace_read): Allow the load and store to have different mode
17965         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
17966         or extraction instructions before trying the replacement.  Update
17967         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
17968
17969 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
17970
17971         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
17972         to their natural alignment to avoid store forwarding stalls.
17973
17974 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17975
17976         PR target/27946
17977         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
17978         encouraging but not allowing gprs for input;
17979         change the input constraint to !f#r.
17980         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
17981         gprs for output;
17982         change the output constraint to !f#r.
17983
17984 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
17985
17986         PR target/13958
17987         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
17988         corresponding post-reload splitters.
17989         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
17990         when x87 FP math is selected.
17991         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
17992         New function prototype.
17993         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
17994         unreachable function to ease macroization of insn patterns.
17995
17996 2008-03-21  Martin Jambor  <mjambor@suse.cz>
17997
17998         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
17999         reference dumps if ddr is NULL or dependence is unknown.
18000
18001 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18002
18003         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
18004         unsigned extension into account.
18005         (ATOMIC_COMPARE_AND_SWAP): Likewise.
18006         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
18007         Do computations on a scratch register.
18008
18009 2008-03-21  Richard Guenther  <rguenther@suse.de>
18010
18011         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18012         Use is_gimple_min_invariant instead of TREE_INVARIANT.
18013         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
18014         * tree-ssa-dom.c (record_equality): Likewise.
18015         * tree-inline.c (copy_body_r): Likewise.
18016         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
18017         TREE_INVARIANT.
18018
18019 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18020
18021         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
18022         as 'delete_unused' argument.
18023
18024 2008-03-20  Richard Guenther  <rguenther@suse.de>
18025
18026         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
18027         special casing of constant qualifiers.
18028         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
18029         care about them in general.
18030         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
18031         regardless of their type.
18032         (fold_stmt_r): Forcefully fold *& if we end up with that.
18033
18034 2008-03-20  Paul Brook  <paul@codesourcery.com>
18035
18036         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
18037         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
18038         linker flags.
18039         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
18040         definition.
18041         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
18042         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
18043
18044 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
18045
18046         * common.opt (Wmudflap): New option.
18047         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
18048         (mx_register_decls): Likewise.
18049         (mudflap_finish_file): Likewise.
18050         * doc/invoke.texi: Document -Wno-mudflap.
18051
18052 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
18053
18054         * c-format.c (replace_format_name_to_system_name): New.
18055         (cmp_attribs): New.
18056         (convert_format_name_to_system_name): New.
18057         (decode_format_attr): Add use of convert_format_name_to_system_name.
18058         (format_types_orig): Add gnu_ prefix to names.
18059         (check_format_info_main): Special treating of \0 escaped names for
18060         supporting multi-character format specifiers as I32, I64.
18061         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
18062         (gnu_target_overrides_format_attributes): New.
18063         * c-format.h: Add structure target_ovr_attr to hold
18064         system specific formatter names.
18065         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
18066         msformat-c.o file to c_target_objs and cxx_target_objs.
18067         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
18068         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
18069         (TARGET_N_FORMAT_TYPES): New.
18070         * config/i386/msformat-c.c: New.
18071         * config/i386/t-cygming: Add build rule for msformat-c.o.
18072         * doc/extend.texi: Add new format names gnu_* and ms_* and
18073         further details.
18074         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
18075
18076 2008-03-20  Ira Rosen  <irar@il.ibm.com>
18077
18078         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
18079         optimizations turned on under -O3.
18080         (ftree-vectorize): Add that the flag is turned on with -O3.
18081
18082 2008-03-20  Ben Elliston  <bje@au.ibm.com>
18083
18084         * regmove.c (try_auto_increment): Fix spelling error in comment.
18085         * final.c (final_scan_insn): Likewise.
18086
18087 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
18088
18089         PR target/14552
18090         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
18091         allocator preferences for "y" and "r" class registers.
18092         ("*mov<mode>_internal"): Ditto.
18093         ("*movv2sf_internal_rex64"): Ditto.
18094         ("*movv2sf_internal"): Ditto.
18095
18096 2008-03-19  Michael Matz  <matz@suse.de>
18097
18098         PR middle-end/35616
18099         * calls.c (expand_call): Check overlap of arguments with call
18100         address for sibcalls.
18101
18102 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
18103
18104         PR target/35496
18105         * stor-layout.c (update_alignment_for_field): Set minimum alignment
18106         of the underlying type of a MS bitfield layout to the natural
18107         alignment of the type.
18108
18109 2008-03-19  Jan Hubicka  <jh@suse.cz>
18110
18111         PR other/35094
18112         * toplev.c (decode_d_option): Handle all CPP flags.
18113         * tree-vrp.c: Update tree_pass descriptors.
18114         * regrename.c: Update tree_pass descriptors.
18115         * fwprop.c: Update tree_pass descriptors.
18116         * doc/invoke.texi: Remove documentation of dropped -d? flags.
18117         * tree-into-ssa.c: Update tree_pass descriptors.
18118         * tree-dump.c: Update tree_pass descriptors.
18119         * tree-complex.c: Update tree_pass descriptors.
18120         * tree-dump.h: Update tree_pass descriptors.
18121         * see.c: Update tree_pass descriptors.
18122         * cgraphbuild.c: Update tree_pass descriptors.
18123         * tracer.c: Update tree_pass descriptors.
18124         * tree-loop-distribution.c: Update tree_pass descriptors.
18125         * cgraph.c: Update tree_pass descriptors.
18126         * postreload-gcse.c: Update tree_pass descriptors.
18127         * postreload.c: Update tree_pass descriptors.
18128         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
18129         * tree-tailcall.c: Update tree_pass descriptors.
18130         * tree-pass.h (tree_opt_pass): Rename to ...
18131         (opt_pass) ... this one; add "type" field and remove letter field.
18132         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
18133         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
18134         all_lowering_passes): Update declaration.
18135         * ipa-cp.c: Update tree_pass descriptors.
18136         * final.c: Update tree_pass descriptors.
18137         * omp-low.c: Update tree_pass descriptors.
18138         * tree-ssa-dse.c: Update tree_pass descriptors.
18139         * ipa-reference.c: Update tree_pass descriptors.
18140         * tree-ssa-uncprop.c: Update tree_pass descriptors.
18141         * auto-inc-dec.c: Update tree_pass descriptors.
18142         * reorg.c: Update tree_pass descriptors.
18143         * cgraphunit.c: Update tree_pass descriptors.
18144         * tree-ssa-copyrename.c: Update tree_pass descriptors.
18145         * tree-ssa-ccp.c: Update tree_pass descriptors.
18146         * df-core.c: Update tree_pass descriptors.
18147         * mode-switching.c: Update tree_pass descriptors.
18148         * tree-nomudflap.c: Update tree_pass descriptors.
18149         * modulo-sched.c: Update tree_pass descriptors.
18150         * ipa-pure-const.c: Update tree_pass descriptors.
18151         * cse.c: Update tree_pass descriptors.
18152         * web.c: Update tree_pass descriptors.
18153         * tree-stdarg.c: Update tree_pass descriptors.
18154         * tree-ssa-math-opts.c: Update tree_pass descriptors.
18155         * tree-ssa-dom.c: Update tree_pass descriptors.
18156         * tree-nrv.c: Update tree_pass descriptors.
18157         * tree-ssa-alias.c: Update tree_pass descriptors.
18158         * loop-init.c: Update tree_pass descriptors.
18159         * gimple-low.c: Update tree_pass descriptors.
18160         * ipa-inline.c: Update tree_pass descriptors.
18161         * tree-ssa-sink.c: Update tree_pass descriptors.
18162         * global.c: Update tree_pass descriptors.
18163         * ifcvt.c: Update tree_pass descriptors.
18164         * jump.c: Update tree_pass descriptors.
18165         * predict.c: Update tree_pass descriptors.
18166         * tree-ssa-loop.c: Update tree_pass descriptors.
18167         * recog.c: Update tree_pass descriptors.
18168         * dse.c: Update tree_pass descriptors.
18169         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
18170         * tree-eh.c: Update tree_pass descriptors.
18171         * regmove.c: Update tree_pass descriptors.
18172         * local-alloc.c
18173         * function.c: Update tree_pass descriptors.
18174         * tree-vectorizer.c: Update tree_pass descriptors.
18175         * gcse.c: Update tree_pass descriptors.
18176         * ipa-type-escape.c: Update tree_pass descriptors.
18177         * tree-if-conv.c: Update tree_pass descriptors.
18178         * init-regs.c: Update tree_pass descriptors.
18179         * ipa.c: Update tree_pass descriptors.
18180         * tree-ssa-phiopt.c: Update tree_pass descriptors.
18181         * rtl-factoring.c: Update tree_pass descriptors.
18182         * lower-subreg.c: Update tree_pass descriptors.
18183         * bt-load.c: Update tree_pass descriptors.
18184         * tree-dfa.c: Update tree_pass descriptors.
18185         * except.c: Update tree_pass descriptors.
18186         * emit-rtl.c: Update tree_pass descriptors.
18187         * cfgexpand.c: Update tree_pass descriptors.
18188         * tree-cfgcleanup.c: Update tree_pass descriptors.
18189         * cfgcleanup.c: Update tree_pass descriptors.
18190         * tree-ssa-pre.c: Update tree_pass descriptors.
18191         * tree-sra.c: Update tree_pass descriptors.
18192         * tree-mudflap.c: Update tree_pass descriptors.
18193         * tree-ssa-copy.c: Update tree_pass descriptors.
18194         * cfglayout.c: Update tree_pass descriptors.
18195         * tree-ssa-forwprop.c: Update tree_pass descriptors.
18196         * tree-ssa-dce.c: Update tree_pass descriptors.
18197         * tree-ssa.c: Update tree_pass descriptors.
18198         * regclass.c: Update tree_pass descriptors.
18199         * integrate.c: Update tree_pass descriptors.
18200         * tree-optimize.c: Update tree_pass descriptors.
18201         * tree-ssa-phiprop.c: Update tree_pass descriptors.
18202         * tree-object-size.c: Update tree_pass descriptors.
18203         * combine.c: Update tree_pass descriptors.
18204         * tree-outof-ssa.c: Update tree_pass descriptors.
18205         * bb-reorder.c: Update tree_pass descriptors.
18206         * stack-ptr-mod.c: Update tree_pass descriptors.
18207         * var-tracking.c: Update tree_pass descriptors.
18208         * tree-profile.c: Update tree_pass descriptors.
18209         * tree-vect-generic.c: Update tree_pass descriptors.
18210         * reg-stack.c: Update tree_pass descriptors.
18211         * sched-rgn.c: Update tree_pass descriptors.
18212         * tree-ssa-structalias.c: Update tree_pass descriptors.
18213         * tree-cfg.c: Update tree_pass descriptors.
18214         * passes.c (current_pass): Update declaration.
18215         (finish_optimization_passes): Update.
18216         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
18217         (register_one_dump_file, register_dump_files_1, next_pass_1):
18218         Update arguments.
18219         (init_optimization_passes): Update handling of new types.
18220         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
18221         * ipa-struct-reorg.c: Update tree_pass descriptors.
18222         * tree-ssa-reassoc.c: Update tree_pass descriptors.
18223         * combine-stack-adj.c: Update tree_pass descriptors.
18224         * cfgrtl.c: Update tree_pass descriptors.
18225         * dce.c: Update tree_pass descriptors.
18226         * tree-ssanames.c: Update tree_pass descriptors.
18227
18228 2008-03-19  Richard Guenther  <rguenther@suse.de>
18229
18230         PR middle-end/35609
18231         * tree-ssa.c (walk_data): New structure.
18232         (warn_uninitialized_var): If not always_executed warn with "maybe"
18233         instead of "is".
18234         (execute_early_warn_uninitialized): Compute post-dominators.
18235         Initialize always_executed before processing each basic block.
18236
18237 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
18238
18239         PR target/35504
18240         * config/i386/i386.c (x86_this_parameter): Calculate correct location
18241         of "this" pointer when "regparm = N" or "fastcall" is in effect.
18242
18243 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18244
18245         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
18246
18247 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
18248
18249         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
18250         is true.
18251         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
18252         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
18253         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
18254         target after ignore has been set, and move there also the commputation
18255         of subtarget and original_target.
18256         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
18257         (LANG_HOOKS_INITIALIZER): Remove it.
18258         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
18259
18260 2008-03-18  Richard Guenther  <rguenther@suse.de>
18261
18262         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
18263         found an expression with constants, note that in the VN for the lhs.
18264         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
18265         fold them to constants if possible.  Run cleanup_cfg if done so.
18266         (execute_pre): Return todo.
18267         (do_pre): Likewise.
18268         (execute_fre): Likewise.
18269         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
18270         of constants.
18271         (get_prop_source_stmt): Look through pointer conversions.
18272
18273 2008-03-18  Jan Hubicka  <jh@suse.cz>
18274
18275         * tree-pretty-print.c: Include predict.h.
18276         (dump_generic_node): Dump predictor.
18277         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
18278         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
18279         * gimple-low.c (lower_stmt): Likewise.
18280         * expr.c (expand_expr_real): Likewise.
18281         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
18282         them.
18283         (build_predict_expr, build_predict_expr): New.
18284         * predict.h (predictor_name, build_predict_expr): Update.
18285         * c-typeck.c (c_finish_bc_stmt): Add prediction.
18286         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
18287         * predict.def (PRED_CONTINUE): Update hitrate.
18288         * tree.def (PREDICT_EXPR): Define.
18289         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
18290         do not handle BIND_EXPR.
18291         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
18292         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
18293         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
18294         operands.
18295
18296 2008-03-18  Michael Matz  <matz@suse.de>
18297
18298         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
18299
18300 2008-03-18  Richard Guenther  <rguenther@suse.de>
18301
18302         * tree-gimple.h (is_gimple_invariant_address): Declare.
18303         (is_gimple_constant): Likewise.
18304         * tree-gimple.c (is_gimple_constant): New function.
18305         (is_gimple_invariant_address): Likewise.
18306         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
18307         and is_gimple_invariant_address.
18308         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
18309         previous change.
18310         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
18311         an addressable base.
18312
18313 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
18314
18315         PR middle-end/35611
18316         * gimplify.c (gimplify_expr): Gimplify second operand of
18317         OMP_ATOMIC_LOAD.
18318
18319 2008-03-17  Richard Guenther  <rguenther@suse.de>
18320
18321         PR tree-optimization/19637
18322         * fold-const.c (fold_unary): Remove restrictions of removing
18323         intermediate pointer-conversions (P2)(P1)P0.
18324         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
18325         conversion to void pointer.
18326         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
18327
18328 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
18329
18330         PR debug/31510
18331         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
18332         emulated thread local variables.
18333
18334 2008-03-16  Richard Guenther  <rguenther@suse.de>
18335
18336         PR middle-end/35607
18337         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
18338         expand TREE_INVARIANT operations that are not gimple invariant.
18339
18340 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
18341
18342         * doc/extend.texi (Alignment): Say that the ABI controls
18343         the __alignof__ for non-strict-alignment targets rather
18344         than being a recommendation.
18345
18346 2008-03-15  Paul Brook  <paul@codesourcery.com>
18347
18348         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
18349         annotations.
18350         (arm_output_fn_unwind): Mark functions that can not be unwound.
18351
18352 2008-03-15  Paul Brook  <paul@codesourcery.com>
18353
18354         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
18355         extension instructions.
18356
18357 2008-03-15  Richard Guenther  <rguenther@suse.de>
18358
18359         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
18360         and fold constant aggregate refs.
18361         (fold_const_aggregate_ref): Handle string constants
18362         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
18363         (evaluate_stmt): Simplify now that ccp_fold folds constant
18364         aggregate refs.
18365
18366 2008-03-15  Paul Brook  <paul@codesourcery.com>
18367
18368         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
18369         (extzv): Use gen_extzv_t2.
18370         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
18371
18372 2008-03-15  Richard Guenther  <rguenther@suse.de>
18373
18374         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
18375         (fold_const_aggregate_ref): Likewise.
18376         (get_value): Return NULL if we don't have any values.
18377         (ccp_finalize): Set const_val to NULL after freeing it.
18378         * tree-flow.h (get_symbol_constant_value): Declare.
18379         (fold_const_aggregate_ref): Likewise.
18380         * tree-ssa-sccvn.c (try_to_simplify): Use them.
18381
18382 2008-03-15  Richard Guenther  <rguenther@suse.de>
18383
18384         PR middle-end/35593
18385         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
18386         to not produce negative array indices if not allowed.  Add
18387         parameter to indicate that.
18388         (maybe_fold_offset_to_component_ref): Allow negative array
18389         indices only for the first member of a structure.
18390         (maybe_fold_offset_to_reference): Allow negative array indices.
18391         (maybe_fold_stmt_addition): Likewise.
18392
18393 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
18394             Anatoly Sokolov <aesok@post.ru>
18395
18396         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
18397         (avr_arch): Add ARCH_AVR6.
18398         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
18399         (initial_elimination_offset): Initialize and use 'avr_pc_size'
18400         instead of fixed value 2.
18401         (print_operand_address): Use gs() asm specifier instead of pm().
18402         (avr_assemble_integer): (Ditto.).
18403         (avr_output_addr_vec_elt): (Ditto.).
18404         (print_operand): Handle "!" code.
18405         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
18406         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
18407         (AVR_HAVE_EIJMP_EICALL): Define.
18408         (AVR_3_BYTE_PC): Redefine.
18409         (AVR_2_BYTE_PC): (Ditto.).
18410         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
18411         (LINK_SPEC): Add atmega2560 and atmega2561.
18412         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
18413         (crtm2561.o).
18414         * config/avr/avr.md (call_insn): Use eicall instead of icall
18415         for 3 byte PC devices.
18416         (call_value_insn): (Ditto.).
18417         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
18418         (indirect_jump): Use only for for 2 byte PC devices.
18419         (*tablejump): (Ditto.).
18420         (*indirect_jump_avr6): Add insn.
18421         (*tablejump_rjmp): Don't use for 3 byte PC devices.
18422         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
18423         instead of ijmp for 3 byte PC devices.
18424         (__tablejump2__): (Ditto.).
18425         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
18426         (MULITLIB_DIRNAMES): (Ditto.).
18427         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
18428
18429 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
18430
18431         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
18432         "sse2_umulsidi3".  Use V1DI mode for operand 0.
18433         ("mmx_psadbw"): Use V1DI mode for operand 0.
18434         * config/i386/i386-modes.def (V1SI): New vector mode.
18435         * config/i386/i386.c (struct builtin_description)
18436         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
18437         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
18438         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
18439         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
18440         v1di_ftype_v8qi_v8qi type.
18441         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
18442
18443         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
18444         __builtin_ia32_pmuludq]: Fix the mode of return value.
18445
18446 2008-03-15  Richard Guenther  <rguenther@suse.de>
18447
18448         PR middle-end/35595
18449         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
18450         being a PHI_NODE.
18451
18452 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
18453
18454         * doc/invoke.texi (Option Summary, Xtensa Options): Document
18455         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
18456         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
18457         unless TARGET_SERIALIZE_VOLATILE is enabled.
18458         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
18459         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
18460         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
18461
18462 2008-03-14  Richard Guenther  <rguenther@suse.de>
18463
18464         PR tree-optimization/34172
18465         * tree-flow.h (refs_may_alias_p): Declare.
18466         (get_single_def_stmt): Likewise.
18467         (get_single_def_stmt_from_phi): Likewise.
18468         (get_single_def_stmt_with_phi): Likewise.
18469         * tree-dfa.c (refs_may_alias_p): New function.
18470         (get_single_def_stmt): Likewise.
18471         (get_single_def_stmt_from_phi): Likewise.
18472         (get_single_def_stmt_with_phi): Likewise.
18473         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
18474         (vn_reference_lookup_1): New helper function.
18475         (vn_reference_lookup): Walk the virtual use-def chain to
18476         continue searching for a match if the def does not alias the
18477         reference we are looking for.
18478
18479 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
18480
18481         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
18482         archive and Perzl.  Update The Written Word listing.
18483
18484 2008-03-14  Richard Guenther  <rguenther@suse.de>
18485
18486         PR tree-optimization/34043
18487         PR tree-optimization/33989
18488         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
18489         when doing FRE.
18490         (bitmap_find_leader): Use extra argument to verify dominance
18491         relationship inside a basic-block.
18492         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
18493         (find_leader_in_sets): Adjust.
18494         (create_component_ref_by_pieces): Take extra argument for
18495         dominance check, handle lookup failures.
18496         (find_or_generate_expression): Likewise.
18497         (create_expression_by_pieces): Likewise.
18498         (insert_into_preds_of_block): Adjust.
18499         (create_value_expr_from): If asked for, verify all operands
18500         are in the blocks AVAIL_OUT set.
18501         (make_values_for_stmt): Check for SSA_NAMEs that are life
18502         over an abnormal edge.
18503         (compute_avail): Remove such check.
18504         (do_SCCVN_insertion): New function.
18505         (eliminate): If we do not find a leader suitable for replacement
18506         insert a replacement expression from SCCVN if available.
18507         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
18508         (struct vn_ssa_aux): Add needs_insertion flag.
18509         * tree-ssa-sccvn.c (may_insert): New global flag.
18510         (copy_reference_ops_from_ref): Value-number union member access
18511         based on its size, not type and member if insertion is allowed.
18512         (visit_reference_op_load): For a weak match from union type
18513         punning lookup a view-converted value and insert a SSA_NAME
18514         for that value if that is not found.
18515         (visit_use): Make dumps shorter.  Do not disallow value numbering
18516         SSA_NAMEs that are life over an abnormal edge to constants.
18517         (free_scc_vn): Release inserted SSA_NAMEs.
18518         (run_scc_vn): New flag to specify whether insertion is allowed.
18519         Process SSA_NAMEs in forward order.
18520         * tree-ssa-loop-im.c (for_each_index): Handle invariant
18521         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
18522         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
18523         pointer type to/from integral types that do not change the
18524         precision to regular conversions.
18525
18526 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
18527
18528         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
18529         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
18530         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
18531         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
18532         input arguments and the mode of return value.  Built-in functions
18533         that operate on whole 64-bit MMX register now use V1DI mode.
18534
18535 2008-03-13  Alon Dayan  <alond@il.ibm.com>
18536             Olga Golovanevsky  <olga@il.ibm.com>
18537
18538         PR tree-optimization/35041
18539         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
18540         to locate the right position in a statement.
18541
18542 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
18543
18544         PR target/34000
18545         PR target/35553
18546         * config/i386/xmmintrin.h:  Change all static inline functions to
18547         extern inline and add __gnu_inline__ attribute.
18548         * config/i386/bmintrin.h: Ditto.
18549         * config/i386/smmintrin.h: Ditto.
18550         * config/i386/tmmintrin.h: Ditto.
18551         * config/i386/mmintrin-common.h: Ditto.
18552         * config/i386/ammintrin.h: Ditto.
18553         * config/i386/emmintrin.h: Ditto.
18554         * config/i386/pmmintrin.h: Ditto.
18555         * config/i386/mmintrin.h: Ditto.
18556         * config/i386/mm3dnow.h: Ditto.
18557
18558 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
18559
18560         PR middle-end/35185
18561         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
18562         (lower_omp_2): New function.
18563         (lower_omp_1, lower_omp): Rewritten.
18564
18565 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
18566
18567         PR 35054
18568         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
18569         with the phrase "Microsoft Windows compilers".
18570         (Push/Pop Macro Pragmas): New subsection. Document
18571         #pragma push_macro and pragma pop_macro.
18572
18573 2008-03-12  Paul Brook  <paul@codesourcery.com>
18574
18575         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
18576
18577 2008-03-12  Paul Brook  <paul@codesourcery.com>
18578
18579         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
18580         (thumb2_alusi3_short): Exclude PLUS and MINUS.
18581         (thumb2_addsi_shortim): Rename ...
18582         (thumb2_addsi_short): ... to this.  Allow register operands.
18583         (thumb2_subsi_short): New pattern.
18584         (thumb2_one_cmplsi2_short,
18585         thumb2_negsi2_short): New patterns and peepholes.
18586
18587 2008-03-12  Paul Brook  <paul@codesourcery.com>
18588
18589         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
18590
18591 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
18592
18593         * config/i386/i386.md (int_cond): New code iterator.
18594         (fp_cond): Ditto.
18595         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
18596         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
18597         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
18598         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
18599         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
18600         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
18601         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
18602         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
18603
18604 2008-03-12  Paul Brook  <paul@codesourcery.com>
18605
18606         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
18607         instead of {arm,thumb}_compute_save_reg_mask.
18608         (output_return_instruction): Ditto.
18609         (thumb_unexpanded_epilogue): Ditto.
18610         (thumb1_expand_prologue): Ditto.
18611         (thumb1_output_function_prologue): Ditto.
18612         (arm_set_return_address): Ditto.
18613         (thumb_set_return_address): Ditto.
18614         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
18615         regs to achieve stack alignment.
18616         (thumb1_compute_save_reg_mask): Fix compiler warning.
18617         (arm_output_epilogue): Use offsets->saved_regs_mask.
18618         Adjust stack pointer by poping call clobered registers.
18619         (arm_expand_prologue): Use offsets->saved_regs_mask.
18620         Adjust stack pointer by pushing extra registers.
18621         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
18622
18623 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
18624
18625         PR tree-opt/35422
18626         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
18627         conversion to the operands of a multiplication.
18628
18629 2008-03-12  Richard Guenther  <rguenther@suse.de>
18630
18631         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
18632         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
18633         * timevar.def (TV_TREE_PHIPROP): Add.
18634         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
18635         pass description.  Use TV_TREE_PHIPROP.
18636         * tree-ssa-forwprop.c: Remove phiprop code.
18637
18638 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
18639
18640         PR middle-end/35549
18641         * omp-low.c (maybe_lookup_decl): Constify first argument.
18642         (use_pointer_for_field): Change last argument from bool to
18643         omp_context *.  Disallow shared copy-in/out in nested
18644         parallel if decl is shared in outer parallel too.
18645         (build_outer_var_ref, scan_sharing_clauses,
18646         lower_rec_input_clauses, lower_copyprivate_clauses,
18647         lower_send_clauses, lower_send_shared_vars): Adjust callers.
18648
18649 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
18650             Ira Rosen  <irar@il.ibm.com>
18651
18652         * tree-vectorizer.c (free_stmt_vec_info): New function.
18653         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
18654         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
18655         * tree-vectorizer.h (free_stmt_vec_info): Declare.
18656         * tree-vect-transform.c (vectorizable_conversion): Free
18657         vec_oprnds0 if it was allocated.
18658         (vect_permute_store_chain): Remove unused VECs.
18659         (vectorizable_store): Free VECs that are allocated in the..
18660         function.
18661         (vect_transform_strided_load, vectorizable_load): Likewise.
18662         (vect_remove_stores): Simplify the code.
18663         (vect_transform_loop): Move code to vect_remove_stores().
18664         Call vect_remove_stores() and free_stmt_vec_info().
18665
18666 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18667
18668         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
18669         TARGET_HPUX.  Revise comment.
18670         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
18671         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
18672         Use sr4 variant of `be' instruction when not generating PIC code.
18673         (attr_length_call): Adjust for above change.
18674
18675 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18676
18677         * ipa-reference.c (static_execute): Remove module_statics_const and
18678         associated setting code.
18679
18680 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
18681
18682         PR target/35540
18683         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
18684         predicate for operand 1.
18685         (paritysi2_cmp): Use register_operand predicate for operand 2.
18686         Use earlyclobber modifier for operand 1.  Remove support for
18687         memory operands.
18688         (paritydi2_cmp): Use register_operand predicate for operand 3.
18689         Use earlyclobber modifier for operand 1.  Remove support for
18690         memory operands.
18691
18692 2008-03-11  Paul Brook  <paul@codesourcery.com>
18693             Vladimir Prus  <vladimir@codesourcery.com>
18694
18695         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
18696         (arm_compute_save_reg0_reg12_mask): Always
18697         check if register 11 must be saved.  Always safe hard frame pointer
18698         when frame_pointer_needeed.
18699         (arm_compute_save_reg_mask): Save IP and PC
18700         only with apcs frames.
18701         (arm_output_epilogue): Adjust Thumb2 codepath to
18702         be also invoked and work for ARM non-apcs frames.
18703         (arm_expand_prologue): Don't bother saving IP
18704         for non-apcs frame, since it's not clobbered by
18705         prologue code.  Implement non-apcs frame
18706         layout.
18707
18708 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
18709
18710         PR rtl-optimization/35281
18711         * expr.c (convert_move): Use a new pseudo for the intermediate
18712         from_mode->word_mode result.
18713
18714 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
18715
18716         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
18717         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
18718         * toplev.c (compile_file): Don't call it.
18719
18720 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
18721
18722         PR middle-end/35526
18723         * expr.c (store_expr): Call emit_block_move if the mode
18724         of "temp" RTX is BLKmode.
18725
18726 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18727             Richard Guenther  <rguenther@suse.de>
18728
18729         PR tree-optimization/31358
18730         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
18731         the step with a NULL_TREE.
18732         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
18733         to sizetype if type is a pointer type.
18734         (add_candidate_1): Don't convert the base and step to
18735         the generic type if the orginal type is a pointer type.
18736         (add_iv_value_candidates): Use sizetype for the step
18737         if type is a pointer type.
18738         (cand_value_at): Likewise.
18739         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
18740         for pointer types.
18741         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
18742         Don't convert the tem affine to the type.
18743         (add_elt_to_tree): Use sizetype for the step if a pointer.
18744         Use POINTER_PLUS_EXPR for pointers.
18745         (aff_combination_to_tree): Use sizetype for the step if a
18746         pointer.
18747
18748 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
18749
18750         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
18751         Remove commutativity hint.
18752
18753 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
18754
18755         PR c/35438
18756         PR c/35439
18757         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
18758         errorneous type.  Check that v is a VAR_DECL.
18759
18760         PR middle-end/35099
18761         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
18762
18763 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
18764
18765         PR tree-optimization/35494
18766         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
18767         may be overriden at link and run time.
18768
18769 2008-03-10  Richard Guenther  <rguenther@suse.de>
18770
18771         PR tree-optimization/34677
18772         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
18773         (poolify_tree): Likewise.
18774         (modify_expr_template): Likewise.
18775         (poolify_modify_stmt): Likewise.
18776         (insert_fake_stores): Handle all component-ref style stores
18777         in addition to INDIRECT_REF.  Also handle complex types.
18778         Do not poolify the inserted load.
18779         (realify_fake_stores): Do not rebuild the tree but only
18780         make it a SSA_NAME copy.
18781         (init_pre): Remove initialzation of modify_expr_template.
18782         Do not allocate modify_expr_node_pool.
18783         (fini_pre): Do not free modify_expr_node_pool.
18784
18785 2008-03-10  Paul Brook  <paul@codesourcery.com>
18786
18787         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
18788         to avoid conflicts.
18789
18790 2008-03-10  Paul Brook  <paul@codesourcery.com>
18791             Mark Shinwell  <shinwell@codesourcery.com>
18792
18793         * config/arm/cortex-r4.md: New.
18794         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
18795         insn attributes.
18796         * config/arm/arm.md: Include cortex-r4.md.
18797         (insn): Add smmls, sdiv and udiv values.
18798         (generic_sched): Don't use generic scheduling for Cortex-R4.
18799         (arm_issue_rate): New function.
18800         (TARGET_SCHED_ISSUE_RATE): Define.
18801
18802 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
18803
18804         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
18805
18806 2008-03-10  Richard Guenther  <rguenther@suse.de>
18807
18808         * tree-ssa-pre.c (get_sccvn_value): Simplify.
18809         (compute_avail): Do not add stmt uses to AVAIL_OUT.
18810
18811 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
18812
18813         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
18814         Set default to true.
18815
18816 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18817
18818         * c.opt (Wsynth): Deprecate.
18819         * doc/invoke.texi (Option Summary, Warning Options): Document
18820         -Wno-format-contains-nul.
18821
18822 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
18823
18824         PR target/35496
18825         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
18826         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
18827
18828 2008-03-09  Ira Rosen  <irar@il.ibm.com>
18829
18830         * config/rs6000/rs6000.c (builtin_description): Rename vector
18831         left shift operations.
18832         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
18833         (altivec_vsl<VI_char>): Rename to ...
18834         (ashl<mode>3): ... new name.
18835         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
18836         gen_ashlv4si3.
18837         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
18838
18839 2008-03-08  Richard Guenther  <rguenther@suse.de>
18840
18841         * coverage.h (tree_coverage_counter_addr): Declare.
18842         * coverage.c (tree_coverage_counter_addr): New function.
18843         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
18844         before using again.
18845         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
18846         (tree_gen_one_value_profiler): Likewise.
18847         (tree_gen_ic_profiler): Likewise.
18848         (tree_gen_average_profiler): Likewise.
18849         (tree_gen_ior_profiler): Likewise.
18850
18851 2008-03-08  Richard Guenther  <rguenther@suse.de>
18852
18853         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
18854         (vn_binary_op_insert): Likewise.
18855         (vn_unary_op_lookup): Likewise.
18856         (vn_unary_op_insert): Likewise.
18857         (vn_nary_op_lookup): Declare.
18858         (vn_nary_op_insert): Likewise.
18859         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
18860         and binary hashes, use a single obstack for unary_op_pool
18861         and binary_op_pool.
18862         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
18863         a single struct vn_nary_op_s.  Store tree code length and
18864         a variable number of operands.
18865         (struct vn_reference_op_struct): Remove unused op2.
18866         (vn_reference_op_eq): Do not compare op2.
18867         (vn_reference_op_compute_hash): Do not compute hash of op2.
18868         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
18869         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
18870         with vn_nary_op_compute_hash.
18871         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
18872         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
18873         vn_nary_op_lookup.
18874         (vn_unary_op_insert, vn_binary_op_insert): Replace with
18875         vn_nary_op_insert.
18876         (visit_unary_op): Call nary functions.
18877         (visit_binary_op): Likewise.
18878         (process_scc): Adjust for struct vn_tables_s changes.
18879         (allocate_vn_table): Likewise.
18880         (free_vn_table): Likewise.
18881         * tree-vn.c (vn_add): Call nary functions.
18882         (vn_lookup): Likewise.
18883
18884 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
18885
18886         PR target/35498
18887         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
18888         wdst back after sync_compare_and_swapqhi_internal.
18889
18890 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
18891
18892         PR target/22152
18893         * config/i386/i386-modes.def (V1DI): New vector mode.
18894         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
18895         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
18896         (MMXMODE248): Ditto.
18897         (MMXMODE): Add V1DI mode.
18898         (mmxvecsize): Change DI mode to V1DI mode.
18899         ("mov<mode>): Use MMXMODEI8 mode iterator.
18900         ("*mov<mode>_internal_rex64"): Ditto.
18901         ("*mov<mode>_internal"): Ditto.
18902         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
18903         ("mmx_sub<mode>3"): Ditto.
18904         ("mmx_adddi3"): Remove insn pattern.
18905         ("mmx_subdi3"): Ditto.
18906         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
18907         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
18908         ("mmx_ashl<mode>3"): Ditto.
18909         ("mmx_lshrdi3"): Remove insn pattern.
18910         ("mmx_ashldi3"): Ditto.
18911         * config/i386/i386.c (classify_argument): Handle V1DImode.
18912         (function_arg_advance_32): Ditto.
18913         (function_arg_32): Ditto.
18914         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
18915         mmx_addv1di3 insn pattern.
18916         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
18917         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
18918         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
18919         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
18920         Remove definitions of built-in functions.
18921         (V1DI_type_node): New node.
18922         (v1di_ftype_v1di_int): Ditto.
18923         (v1di_ftype_v1di_v1di): Ditto.
18924         (v2si_ftype_v2si_si): Ditto.
18925         (v4hi_ftype_v4hi_di): Remove node.
18926         (v2si_ftype_v2si_di): Ditto.
18927         (ix86_init_mmx_sse_builtins): Handle V1DImode.
18928         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
18929         Redefine builtins using def_builtin_const with *_ftype_*_int node.
18930         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
18931         Add new builtins using def_builtin_const.
18932         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
18933         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
18934         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
18935         * config/i386/mmintrin.h (__v1di): New typedef.
18936         (_mm_add_si64): Cast arguments to __v1di type.
18937         (_mm_sub_si64): Ditto.
18938         (_mm_sll_pi16): Cast __count to __v4hi type.
18939         (_mm_sll_pi32): Cast __count to __v2si type.
18940         (_mm_sll_si64): Cast arguments to __v1di type.
18941         (_mm_srl_pi16): Cast __count to __v4hi type.
18942         (_mm_srl_pi32): Cast __count to __v2si type.
18943         (_mm_srl_si64): Cast arguments to __v1di type.
18944         (_mm_sra_pi16): Cast __count to __v4hi type.
18945         (_mm_sra_pi32): Cast __count to __v2si type.
18946         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
18947         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
18948         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
18949         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
18950         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
18951         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
18952         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
18953         (_mm_srai_pi32): Use __builtin_ia32_psradi.
18954         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
18955         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
18956         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
18957         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
18958
18959 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
18960
18961         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
18962
18963 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
18964
18965         PR target/35373
18966         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
18967         reg+const addressing for Altivec modes.  Don't generate reg+reg
18968         addressing for TFmode or TDmode quantities.
18969
18970 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
18971
18972         * c-common.c (vector_types_convertible_p): Call langhook
18973         instead of comptypes.
18974
18975 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18976
18977         PR tree-opt/35402
18978         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
18979         integral and scalar float variables which have a
18980         NULL DECL_INITIAL.
18981
18982 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
18983
18984         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
18985         dwarf_register_span hook when emitting unwind information for
18986         register-to-memory saves.
18987         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
18988         (rs6000_frame_related): Remove call to spe_synthesize_frame.
18989
18990 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
18991
18992         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
18993         for the same VAR_DECL.
18994
18995 2008-03-06  Tom Tromey  <tromey@redhat.com>
18996
18997         * treelang: Delete.
18998         * doc/standards.texi (Standards): Don't mention treelang.
18999         * doc/invoke.texi (Overall Options): Don't mention treelang.
19000         * doc/install.texi (Prerequisites): Don't mention bison or
19001         treelang.
19002         (Configuration): Don't mention treelang.
19003         (Building): Likewise.
19004         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
19005
19006 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
19007
19008         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
19009         word-extractions out of a multi-word object.
19010
19011 2008-03-06  Richard Guenther  <rguenther@suse.de>
19012
19013         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
19014         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
19015         result type and precision.
19016         * expr.c (get_inner_reference): Set unsignedp based on the result
19017         type of BIT_FIELD_REF.
19018         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
19019         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
19020         (try_instantiate_multiple_fields): Likewise.  Use the correct type
19021         for BIT_FIELD_REF.
19022         (sra_build_assignment): Likewise.
19023         (sra_build_elt_assignment): Likewise.
19024         (sra_explode_bitfield_assignment): Likewise.
19025         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
19026         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
19027         set BIT_FIELD_REF_UNSIGNED.
19028         (vectorizable_load): Likewise.
19029
19030 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
19031
19032         * cse.c (cse_extended_basic_block): Invalidate artificial defs
19033         at bb start.
19034
19035 2008-03-06  Richard Guenther  <rguenther@suse.de>
19036
19037         * alias.c (struct alias_set_entry): Move has_zero_child field
19038         to pack with alias_set.
19039
19040 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
19041
19042         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
19043         32bit host.
19044
19045 2008-03-05  Ian Lance Taylor  <iant@google.com>
19046
19047         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
19048
19049 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
19050
19051         * fwprop.c (update_df): Support width and offset parameters of
19052         df_ref_create.
19053         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
19054         global_conflicts): Change DF_REF_EXTRACT to either
19055         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
19056         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
19057         * df-scan.c (df_ref_record, df_defs_record,
19058         df_ref_create_structure, df_def_record_1, df_uses_record,
19059         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
19060         df_bb_refs_collect, df_entry_block_defs_collect,
19061         df_exit_block_uses_collect): Support new width and offset fields.
19062         (ref_extract_pool): New storage pool.
19063         (df_free_ref): New function.
19064         (df_reg_chain_unlink, df_free_collection_rec,
19065         df_sort_and_compress_refs): Call df_free_ref.
19066         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
19067         of df_ref_extract.
19068         (df_ref_create_structure): Allocate df_ref_extract if offset and
19069         width fields are used.
19070         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
19071         (df_uses_record): Get offset and width from ZERO_EXTRACT
19072         and SIGN_EXTRACT.
19073         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
19074         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
19075         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
19076         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
19077         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
19078         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
19079         (df_ref_extract): New structure.
19080         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
19081         (df_ref_create): Add width and offset parameters.
19082
19083 2008-03-05  Richard Guenther  <rguenther@suse.de>
19084
19085         * tree-ssa-structalias.c (get_constraint_for_component_ref):
19086         Use ranges_overlap_p.
19087         (offset_overlaps_with_access): Rename
19088         to ranges_overlap_p and move ...
19089         * tree-flow-inline.h (ranges_overlap_p): ... here.
19090
19091         * tree.h (get_inner_reference, handled_component_p): Update
19092         comments.
19093
19094         * tree.h (record_component_aliases, get_alias_set,
19095         alias_sets_conflict_p, alias_sets_must_conflict_p,
19096         objects_must_conflict_p): Move declarations ...
19097         * alias.h (record_component_aliases, get_alias_set,
19098         alias_sets_conflict_p, alias_sets_must_conflict_p,
19099         objects_must_conflict_p): ... here.
19100         Include coretypes.h.
19101         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
19102
19103 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
19104
19105         * cfg.c: Include tree-flow.h.
19106         (remove_edge_raw): Call redirect_edge_var_map_clear.
19107         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
19108         * tree-flow-inline.h (redirect_edge_var_map_def): New.
19109         (redirect_edge_var_map_result): New.
19110         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
19111         PENDING_STMT use with redirect_edge_var_map_*.
19112         * tree-ssa.c (edge_var_maps): New definition.
19113         (redirect_edge_var_map_add): New.
19114         (redirect_edge_var_map_clear): New.
19115         (redirect_edge_var_map_dup): New.
19116         (redirect_edge_var_map_vector): New.
19117         (redirect_edge_var_map_destroy): New.
19118         (ssa_redirect_edge): Replace PENDING_STMT use with
19119         redirect_edge_var_map_*.
19120         (flush_pending_stmts): Same.
19121         (delete_tree_ssa): Destroy edge var map.
19122         * tree-flow.h (struct _edge_var_map): New.
19123         Define edge_var_map vector type.
19124         Declare redirect_edge_var_map_* prototypes.
19125         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
19126         * tree-cfg.c (reinstall_phi_args): Replace
19127         PENDING_STMT use with redirect_edge_var_map_*.
19128
19129 2008-03-05  Richard Guenther  <rguenther@suse.de>
19130
19131         PR tree-optimization/35472
19132         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
19133         whose single use_stmt has a overlapping set of loaded and
19134         stored symbols as that use_stmt might be a noop assignment then.
19135
19136 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
19137
19138         * gthr-rtems.h: Implement __gthread_mutex_destroy.
19139
19140 2008-03-05  Richard Guenther  <rguenther@suse.de>
19141
19142         PR c++/35336
19143         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
19144         should be constants.
19145         * tree-cfg.c (verify_expr): Verify it.
19146         * fold-const.c (fold_truthop): Remove code generating
19147         BIT_FIELD_REFs of structure bases.
19148         (fold_binary): Likewise.
19149         (fold_ternary): Position and size of BIT_FIELD_REFs are
19150         always host integers.
19151         (make_bit_field_ref): Remove.
19152         (optimize_bit_field_compare): Remove.
19153         (all_ones_mask_p): Remove.
19154
19155 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
19156
19157         PR gcc/33009
19158         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
19159         (split_block_and_df_analyze): New. Split basic block and rebuild
19160         dataflow.
19161         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
19162         SPLIT_BLOCK.
19163         (split_pattern_seq): Likewise.
19164         (erase_matching_seqs): Likewise.
19165         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
19166
19167 2008-03-04  Geoff Keating  <geoffk@apple.com>
19168
19169         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
19170         declaration and code.
19171         (tree_invalid_nonnegative_warnv_p): Likewise.
19172
19173 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
19174
19175         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
19176         examples.  Truncate option-names then causing overfull hbox.
19177
19178 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19179
19180         PR target/35222
19181         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
19182         on hpux10.
19183         * configure: Rebuilt.
19184
19185 2008-03-04  Rafael Espíndola  <espindola@google.com>
19186
19187         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
19188         (tree_unary_nonnegative_warnv_p): New.
19189         (tree_binary_nonnegative_warnv_p): New.
19190         (tree_single_nonnegative_warnv_p): New.
19191         (tree_invalid_nonnegative_warnv_p): New.
19192         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
19193
19194 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19195
19196         PR 28322
19197         * opts.c (handle_option): Postpone 'unknown option' errors only for
19198         warning options.
19199
19200 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
19201
19202         PR target/35453
19203         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
19204         (_SIDD_XXX): This.
19205
19206 2008-03-04  Rafael Espíndola  <espindola@google.com>
19207
19208         * fold-const.c (tree_unary_nonzero_warnv_p): New.
19209         (tree_binary_nonzero_warnv_p): New.
19210         (tree_single_nonzero_warnv_p): New.
19211         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
19212
19213 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
19214
19215         PR middle-end/35456
19216         * fold-const.c (fold_cond_expr_with_comparison): Prevent
19217         transformations for modes that have signed zeros.
19218         * ifcvt.c (noce_try_abs): Ditto.
19219
19220 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
19221
19222         * config/i386/i386.c (override_options): Force
19223         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
19224
19225 2008-03-04  Jan Hubicka  <jh@suse.cz>
19226
19227         PR c++/35262
19228         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
19229         in last commit.
19230
19231 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
19232
19233         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
19234         label to probe the stack.
19235
19236 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
19237
19238         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
19239         (__gthr_win32_mutex_destroy): Declare.
19240         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
19241         __gthr_win32_mutex_destroy.
19242         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
19243
19244 2008-03-03  Jan Hubicka  <jh@suse.cz>
19245
19246         PR c++/35262
19247         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
19248         aggressive on inlining cold calls.
19249
19250 2008-03-03  Richard Guenther  <rguenther@suse.de>
19251
19252         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
19253         struct copies into the expression table.
19254         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
19255         (try_to_simplify): Likewise.
19256         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
19257         integral and pointer arguments which do not change the
19258         precision to NOP_EXPRs.
19259         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
19260         VIEW_CONVERT_EXPR case.
19261
19262 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
19263
19264         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
19265         defined in a loop at depth 0 is invariant.
19266         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
19267         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
19268         be called at loop depth 0.
19269
19270 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
19271
19272         PR driver/35420
19273         * gcc.c (process_command): Update copyright notice dates.
19274         * gcov.c (print_version): Likewise.
19275         * gcov-dump.c (print_version): Likewise.
19276         * mips-tfile.c (main): Likewise.
19277         * mips-tdump.c (main): Likewise.
19278
19279 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19280
19281         PR 24924
19282         * c-common.c (flag_permissive): Delete.
19283         (constant_expression_warnings): Check flags first.
19284         (constant_expression_error): New.
19285         * c-common.h (flag_permissive): Delete.
19286         (constant_expression_error): Declare.
19287         * flags.h (flag_permissive): Declare. Update description.
19288         * diagnostic.c (pedwarn): Update.
19289         (permerror): New.
19290         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
19291         (permissive_error_kind): New.
19292         * toplev.c (flag_permissive): Define. Update description.
19293         * toplev.h (permissive_error_kind): Declare.
19294         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
19295         (pedwarn_c90): Use pedantic_warning_kind.
19296         * c-opts.c (c_common_post_options): flag_permissive does not affect
19297         flag_pedantic_errors.
19298
19299 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
19300
19301         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
19302         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
19303         __absvsi2, __absvDI2): Use unsigned arithmetic.
19304
19305 2008-03-02  Andi Kleen  <ak@suse.de>
19306             Richard Guenther  <rguenther@suse.de>
19307
19308         * struct-equiv.c: Remove file.
19309         * cfg_cleanup.c (condjump_equiv_p): Remove.
19310         * Makefile.in (OBJS-common): Remove struct-equiv.o.
19311         (struct-equiv.o): Remove rule.
19312         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
19313         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
19314         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
19315
19316 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19317
19318         * ifcvt.c (noce_process_if_block): Try to handle only the then
19319         block if the else block exists but isn't suitable.
19320
19321 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
19322
19323         PR gcc/35063
19324         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
19325         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
19326         regression from previous patch.
19327
19328 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
19329
19330         PR gcc/35063
19331         * gthr.h: Add __gthread_mutex_destroy as a function that must be
19332         implemented.
19333         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
19334         * gthr-single.h (__gthread_mutex_destroy): Likewise.
19335         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
19336         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
19337         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
19338         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
19339         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
19340         (__gthread_mutex_destroy_function): Rename to
19341         __gthread_mutex_destroy.
19342         * gthr-dce.h (__gthread_mutex_destroy): Call
19343         pthread_mutex_destroy.
19344         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
19345         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
19346         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
19347
19348 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19349
19350         * df-scan.c (df_ref_chain_change_bb): Simplify.
19351         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
19352         set_block_for_insn if there's any change.
19353         * df.h ((df_insn_change_bb): Fix prototype.
19354         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
19355         df_insn_change_bb, don't call set_block_for_insn.
19356         * emit-rtl.c (reorder_insns): Likewise.
19357         * haifa-sched.c (move_insn): Likewise.
19358
19359 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19360
19361         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
19362
19363 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19364
19365         * tree-flow-inline.h (next_readonly_imm_use): Return
19366         NULL_USE_OPERAND_P after the end.
19367
19368 2008-03-01  Richard Guenther  <rguenther@suse.de>
19369
19370         PR tree-optimization/35411
19371         * tree-sra.c (sra_build_assignment): Split conversion to
19372         final type to a separate statement if we are not assigning
19373         to a register.
19374
19375 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
19376
19377         * fold-const.c (fold_convertible_p): Correct the logic to follow
19378         that in fold_convert().
19379
19380 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
19381
19382         PR c++/35315
19383         * tree-inline.c (build_duplicate_type): When we make a
19384         duplicate type, make it unique in the canonical types system.
19385
19386 2008-02-29  Tom Tromey  <tromey@redhat.com>
19387
19388         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
19389         input_file_stack_history, input_file_stack_restored): Remove.
19390         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
19391         * input.h (struct file_stack): Remove.
19392         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
19393         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
19394         Likewise.
19395         * diagnostic.h (struct diagnostic_context) <last_module>: Change
19396         type.
19397         (diagnostic_last_module_changed): Add 'map' argument.
19398         (diagnostic_set_last_function): Likewise.
19399         * diagnostic.c (undiagnostic_report_current_module): Iterate using
19400         line map, not input_file_stack.
19401         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
19402
19403 2008-02-29  Paul Brook  <paul@codesourcery.com>
19404
19405         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
19406
19407 2008-02-29  Paul Brook  <paul@codesourcery.com>
19408
19409         * config/arm/ieee754-df.S (muldf3): Use RET macros.
19410
19411 2008-02-29  Richard Guenther  <rguenther@suse.de>
19412
19413         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
19414         vn_lookup_or_add.
19415         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
19416         value for comparing for a store match.
19417         (simplify_unary_expression): Do nothing for SSA_NAMEs.
19418         (try_to_simplify): Do not do a full-blown reference lookup.
19419
19420 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19421
19422         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
19423         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
19424
19425         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
19426
19427 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
19428
19429         * tree-loop-linear.c (try_interchange_loops): Compare memory access
19430         strides against cache sizes.
19431
19432 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19433
19434         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
19435         constant to fpul.
19436
19437 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
19438
19439         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
19440         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
19441         is smaller than the original promoted value.
19442         (simplify_subreg): If OP is a SUBREG, try to preserve its
19443         SUBREG_PROMOTED_VAR_P information.
19444
19445 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
19446
19447         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
19448         (VN_INFO_GET): Allocate new objects on the obstack.
19449         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
19450         for rpo_numbers_temp, for consistency.
19451         (free_scc_vn): Free the obstack.
19452
19453 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
19454
19455         * doc/invoke.texi: Document -ftree-loop-distribution.
19456         * tree-loop-distribution.c: New.
19457         * tree-pass.h (pass_loop_distribution): New.
19458         * graphds.h (struct graph): Add htab_t indices.
19459         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
19460         * tree-vectorizer.c (rename_variables_in_loop): Extern.
19461         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
19462         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
19463         * tree-data-ref.c (debug_data_dependence_relations): New.
19464         (dump_data_dependence_relation): Also print data references.
19465         (free_data_ref): Extern.
19466         (same_access_functions): Moved...
19467         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
19468         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
19469         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
19470         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
19471         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
19472         (stmts_from_loop): Skip LABEL_EXPR.
19473         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
19474         New.
19475         (build_rdg): Initialize rdg->indices htab.
19476         (free_rdg, stores_from_loop, ref_base_address,
19477         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
19478         have_similar_memory_accesses_1, ref_base_address_1,
19479         remove_similar_memory_refs): New.
19480         * tree-data-ref.h: Depend on tree-chrec.h.
19481         (debug_data_dependence_relations, free_data_ref): Declared.
19482         (same_access_functions): ... here.
19483         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
19484         New.
19485         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
19486         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
19487         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
19488         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
19489         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
19490         rdg_vertex_for_stmt): Declared.
19491         (struct rdg_edge): Add level.
19492         (RDGE_LEVEL): New.
19493         (free_rdg, stores_from_loop, remove_similar_memory_refs,
19494         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
19495         Declared.
19496         (rdg_has_similar_memory_accesses): New.
19497         * tree-vect-analyze.c: Remove unused static decls.
19498         * lambda.h (dependence_level): New.
19499         * common.opt (ftree-loop-distribution): New.
19500         * tree-flow.h (mark_virtual_ops_in_bb,
19501         slpeel_tree_duplicate_loop_to_edge_cfg,
19502         rename_variables_in_loop): Declared.
19503         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
19504         (OBJS-common): Add tree-loop-distribution.o.
19505         (tree-loop-distribution.o): New rule.
19506         * tree-cfg.c (mark_virtual_ops_in_bb): New.
19507         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
19508         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
19509
19510 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
19511
19512         PR target/33963
19513         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
19514         other than structures and unions.
19515
19516 2008-02-28  Richard Guenther  <rguenther@suse.de>
19517
19518         Revert:
19519         2008-02-26  Richard Guenther  <rguenther@suse.de>
19520
19521         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
19522         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
19523         (lookup_decl_from_uid): Declare.
19524         (remove_decl_from_map): Likewise.
19525         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
19526         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
19527         (decl_for_uid_map): New global hashtable mapping DECL_UID
19528         to the decl tree.
19529         (init_ttree): Allocate it.
19530         (insert_decl_to_uid_decl_map): New helper function.
19531         (make_node_stat): Insert new decls into the map.
19532         (copy_node_stat): Likewise.
19533         (lookup_decl_from_uid): New function.
19534         (remove_decl_from_map): Likewise.
19535         (print_decl_for_uid_map_statistics): New helper.
19536         (dump_tree_statistics): Call it.
19537
19538         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
19539         (referenced_var_iterator): Adjust.
19540         (FOR_EACH_REFERENCED_VAR): Adjust.
19541         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
19542         (num_referenced_vars): Adjust.
19543         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
19544         (first_referenced_var): Remove.
19545         (end_referenced_vars_p): Likewise.
19546         (next_referenced_var): Likewise.
19547         (referenced_var_iterator_set): New helper function.
19548         * tree-dfa.c (referenced_var_lookup): Adjust.
19549         (referenced_var_check_and_insert): Likewise.
19550         (remove_referenced_var): Likewise.
19551         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
19552         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19553         (verify_call_clobbering): Likewise.
19554         (verify_memory_partitions): Likewise.
19555         (init_tree_ssa): Allocate bitmap instead of hashtable for
19556         referenced_vars.
19557         (delete_tree_ssa): Adjust.
19558         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
19559         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19560         (compute_tag_properties): Likewise.
19561         (set_initial_properties): Likewise.
19562         (find_partition_for): Likewise.
19563         (update_reference_counts): Likewise.
19564         (dump_may_aliases_for): Likewise.
19565         * tree-ssa-operands.c (add_virtual_operand): Likewise.
19566         (add_call_clobber_ops): Likewise.
19567         (add_call_read_ops): Likewise.
19568         (get_asm_expr_operands): Likewise.
19569         * tree-into-ssa.c (dump_decl_set): Likewise.
19570         (update_ssa): Likewise.
19571         * tree-sra.c (scan_function): Likewise.
19572         (decide_instantiations): Likewise.
19573         (scalarize_parms): Likewise.
19574         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
19575         (dsa_named_for): Likewise.
19576         * tree-ssa-structalias.c (update_alias_info): Likewise.
19577         (merge_smts_into): Likewise.
19578
19579 2008-02-27  David Daney  <ddaney@avtrex.com>
19580
19581         PR target/34409
19582         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
19583         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
19584         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
19585         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
19586         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
19587
19588 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
19589
19590         PR target/25477
19591         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
19592         (BUILT_IN_NEXTTOWARD): Remove.
19593         (BUILT_IN_NEXTTOWARDF): Ditto.
19594         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
19595         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
19596
19597 2008-02-27  Tom Tromey  <tromey@redhat.com>
19598
19599         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
19600         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
19601
19602 2008-02-27  Jan Beulich  <jbeulich@novell.com>
19603
19604         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
19605         update the respective field on newdecl.
19606
19607 2008-02-27  Revital Eres  <eres@il.ibm.com>
19608
19609         PR rtl-optimization/34999
19610         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
19611         crossing edges that ends with a call insn.
19612         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
19613         call insn and clear the EDGE_CROSSING flag of the crossing edge
19614         when fixing fallthru edges.
19615
19616 2008-02-27  Richard Guenther  <rguenther@suse.de>
19617
19618         PR middle-end/35390
19619         * fold-const.c (fold_unary): Return the correct argument,
19620         converted to the result type.
19621
19622 2008-02-27  Richard Guenther  <rguenther@suse.de>
19623
19624         PR middle-end/34971
19625         * expr.c (expand_expr_real_1): Assert on rotates that operate
19626         on partial modes.
19627         * fold-const.c (fold_binary): Use the types precision, not the
19628         bitsize of the mode if folding rotate expressions.  Build rotates
19629         only for full modes.
19630
19631 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
19632
19633         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
19634         and CPP_PRAGMA_EOL.
19635         * c-pragma.c (pragma_ns_name): New typedef.
19636         (registered_pp_pragmas): New variable.
19637         (c_pp_lookup_pragma): New function.
19638         (c_register_pragma_1): If flag_preprocess_only, do nothing
19639         for non-expanded pragmas, for expanded ones push pragma's
19640         namespace and name into registered_pp_pragmas vector.
19641         (c_invoke_pragma_handler): Register OpenMP pragmas even when
19642         flag_preprocess_only, don't register GCC pch_preprocess
19643         pragma if flag_preprocess_only.
19644         * c-opts.c (c_common_init): Call init_pragma even if
19645         flag_preprocess_only.
19646         * c-pragma.c (c_pp_lookup_pragma): New prototype.
19647         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
19648         cpp_register_pragma if flag_preprocess_only.
19649
19650 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19651
19652         PR c/28800
19653         * c-parser.c (c_parser_translation_unit): Warn for empty
19654         translation unit, not empty source file.
19655
19656 2008-02-26  Paul Brook  <paul@codesourcery.com>
19657
19658         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
19659         operand for Thumb-2.
19660         * config/arm/arm.h (reg_class): Add CORE_REGS.
19661         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
19662         (BASE_REG_CLASS): Use CORE_REGS.
19663         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
19664         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
19665         (REGNO_OK_FOR_INDEX_P): Exclude SP.
19666         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
19667         ARM_REGNO_OK_FOR_INDEX_P.
19668         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
19669         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
19670         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
19671         (ldm/stm peepholes): Ditto.
19672         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
19673         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
19674         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
19675         * config/arm/constraints.md: Enable "k" constraint on ARM.
19676
19677 2008-02-27  Ben Elliston  <bje@au.ibm.com>
19678
19679         * config/rs6000/rs6000.c: Annotate cache line size field in all
19680         instances of struct processor_costs.
19681
19682 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
19683
19684         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
19685         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
19686         jump_bypass): New counters.
19687         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
19688         * dce.c (gate_ud_dce): Same.
19689         (gate_fast_dce): Same.
19690         * dse.c (gate_dse1): New function.
19691         (gate_dse2): New function.
19692         (gate_dse): Merge results of new gate functions.
19693         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
19694         (gate_handle_jump_bypass): Add dbg_cnt.
19695         (gate_handle_gcse): Add dbg_cnt.
19696         * ifcvt.c (gate_handle_if_conversion): Same.
19697         (gate_handle_if_after_combine): Same.
19698         (gate_handle_if_after_reload): Same.
19699         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
19700
19701 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
19702
19703         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
19704         line sizes.
19705         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
19706
19707 2008-02-26  Jason Merrill  <jason@redhat.com>
19708
19709         PR c++/35315
19710         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
19711         alone if it's the naming decl for the type's main variant.
19712
19713 2008-02-26  Tom Tromey  <tromey@redhat.com>
19714
19715         * system.h (USE_MAPPED_LOCATION): Poison.
19716         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
19717         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
19718         (make_goto_expr_edges): Likewise.
19719         (remove_bb): Likewise.
19720         (execute_warn_function_return): Likewise.
19721         * basic-block.h (struct edge_def) <goto_locus>: Change type to
19722         location_t.
19723         * c-common.c (fname_decl): Remove old location code.
19724         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
19725         location code.
19726         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
19727         variant.
19728         (ASM_INPUT_SOURCE_LOCATION): Likewise.
19729         (gen_rtx_ASM_INPUT): Likewise.
19730         (gen_rtx_ASM_INPUT_loc): Likewise.
19731         (get_rtx_asm_OPERANDS): Remove.
19732         * cfglayout.c (insn_locators_alloc): Remove old location code.
19733         (set_curr_insn_source_location): Likewise.
19734         (curr_insn_locator): Likewise.
19735         * print-tree.c (print_node): Remove old location code.
19736         * tree-mudflap.c (mf_varname_tree): Remove old location code.
19737         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
19738         * cfgexpand.c (expand_gimple_cond_expr): Don't use
19739         location_from_locus.
19740         (construct_exit_block): Remove old location code.
19741         * emit-rtl.c (force_next_line_note): Remove old location code.
19742         * profile.c (branch_prob): Remove old location code.
19743         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
19744         LOC_LINE): Remove old-location variants.
19745         * langhooks.c (lhd_print_error_function): Remove old location
19746         code.
19747         * configure, config.in: Rebuilt.
19748         * configure.ac (--enable-mapped-location): Remove.
19749         * c-decl.c (c_init_decl_processing): Remove old location code.
19750         (finish_function): Likewise.
19751         * recog.c (decode_asm_operands): Remove old location code.
19752         * c-pch.c (c_common_read_pch): Remove old location code.
19753         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
19754         variants.
19755         * gimple-low.c (lower_function_body): Remove old location code.
19756         * toplev.c (unknown_location): Remove.
19757         (push_srcloc): Remove old-location variant.
19758         (process_options): Remove old location code.
19759         (lang_dependent_init): Likewise.
19760         * input.h (UNKNOWN_LOCATION): Move definition.
19761         (location_t): Undeprecate.
19762         (source_locus): Remove.
19763         (location_from_locus): Remove.
19764         (struct location_s): Remove.
19765         Remove all old-location code.
19766         (input_line, input_filename): Remove.
19767         * final.c (final_scan_insn): Remove old location code.
19768         * diagnostic.c (diagnostic_build_prefix): Remove
19769         USE_MAPPED_LOCATION test.
19770         * tree.h (gimple_stmt) <locus>: Now a location_t.
19771         (tree_exp) <locus>: Likewise.
19772         (DECL_IS_BUILTIN): Remove old-location variant.
19773         (annotate_with_file_line, annotate_with_locus): Likewise.
19774         (expr_locus, set_expr_locus): Update.
19775         * tree.c (build1_stat): Remove old location code.
19776         (last_annotated_node): Remove.
19777         (annotate_with_file_line): Remove old-location variant.
19778         (annotate_with_locus): Likewise.
19779         (expr_location): Remove old location code.
19780         (set_expr_location): Likewise.
19781         (expr_has_location): Likewise.
19782         (expr_locus): Likewise.
19783         (set_expr_locus): Likewise.
19784         (expr_filename): Don't use location_from_locus.
19785         (expr_lineno): Likewise.
19786         * rtl-error.c (location_for_asm): Remove old location code.
19787         * c-lex.c (cb_line_change): Remove old location code.
19788         (fe_file_change): Likewise.
19789         (cb_def_pragma): Likewise.
19790         (c_lex_with_flags): Likewise.
19791         * gengtype.c (do_typedef): Don't special-case location types.
19792         (define_location_structures): Remove.
19793         (main): Don't call define_location_structures.
19794         * tree-pretty-print.c (dump_implicit_edges): Remove old location
19795         code.
19796
19797 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19798
19799         PR 26264
19800         * builtins.def (BUILT_IN_STDARG_START): Remove.
19801         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
19802         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19803         * tree-inline.c (inline_forbidden_p_1): Likewise.
19804
19805 2008-02-26  Richard Guenther  <rguenther@suse.de>
19806
19807         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
19808         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
19809         (lookup_decl_from_uid): Declare.
19810         (remove_decl_from_map): Likewise.
19811         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
19812         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
19813         (decl_for_uid_map): New global hashtable mapping DECL_UID
19814         to the decl tree.
19815         (init_ttree): Allocate it.
19816         (insert_decl_to_uid_decl_map): New helper function.
19817         (make_node_stat): Insert new decls into the map.
19818         (copy_node_stat): Likewise.
19819         (lookup_decl_from_uid): New function.
19820         (remove_decl_from_map): Likewise.
19821         (print_decl_for_uid_map_statistics): New helper.
19822         (dump_tree_statistics): Call it.
19823
19824         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
19825         (referenced_var_iterator): Adjust.
19826         (FOR_EACH_REFERENCED_VAR): Adjust.
19827         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
19828         (num_referenced_vars): Adjust.
19829         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
19830         (first_referenced_var): Remove.
19831         (end_referenced_vars_p): Likewise.
19832         (next_referenced_var): Likewise.
19833         (referenced_var_iterator_set): New helper function.
19834         * tree-dfa.c (referenced_var_lookup): Adjust.
19835         (referenced_var_check_and_insert): Likewise.
19836         (remove_referenced_var): Likewise.
19837         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
19838         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19839         (verify_call_clobbering): Likewise.
19840         (verify_memory_partitions): Likewise.
19841         (init_tree_ssa): Allocate bitmap instead of hashtable for
19842         referenced_vars.
19843         (delete_tree_ssa): Adjust.
19844         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
19845         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19846         (compute_tag_properties): Likewise.
19847         (set_initial_properties): Likewise.
19848         (find_partition_for): Likewise.
19849         (update_reference_counts): Likewise.
19850         (dump_may_aliases_for): Likewise.
19851         * tree-ssa-operands.c (add_virtual_operand): Likewise.
19852         (add_call_clobber_ops): Likewise.
19853         (add_call_read_ops): Likewise.
19854         (get_asm_expr_operands): Likewise.
19855         * tree-into-ssa.c (dump_decl_set): Likewise.
19856         (update_ssa): Likewise.
19857         * tree-sra.c (scan_function): Likewise.
19858         (decide_instantiations): Likewise.
19859         (scalarize_parms): Likewise.
19860         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
19861         (dsa_named_for): Likewise.
19862         * tree-ssa-structalias.c (update_alias_info): Likewise.
19863         (merge_smts_into): Likewise.
19864
19865 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19866
19867         PR 34351
19868         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
19869         * c-opts.c (c_common_handle_option): Wall enables
19870         Wvolatile-register-var.
19871         * common.opt: Move Wvolatile-register-var to...
19872         * c.opt: ...here.
19873
19874 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19875
19876         * common.opt (Wlarger-than=): New.
19877         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
19878         -Wlarger-than=.
19879         * opts.c (common_handle_option): Handle -Wlarger-than=.
19880         * optc-gen.awk: Likewise.
19881         * opth-gen.awk: Likewise.
19882         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
19883         * tree-optimize.c (tree_rest_of_compilation): Likewise.
19884
19885 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19886
19887         * c-common.c (match_case_to_enum_1): Add appropriate
19888         OPT_W* parameter to warning.
19889         (c_do_switch_warnings): Likewise.
19890         * c-typeck.c (warning_init): Add one more parameter following
19891         'warning' function.
19892         (push_init_level): Update call to warning_init.
19893         (pop_init_level): Likewise.
19894         (add_pending_init): Likewise.
19895         (output_init_element: Likewise.
19896
19897 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19898
19899         PR 28322
19900         * toplev.c (toplev_main): If there are warnings or error, print
19901         errors for ignored options.
19902         * opts.c (ignored_options): New static variable.
19903         (postpone_unknown_option_error): New.
19904         (print_ignored_options): New.
19905         (handle_option): Postpone errors for unknown -Wno-* options.
19906         * opts.h (print_ignored_options): Declare.
19907
19908 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
19909
19910         * config/mips/mips.md (loadgp_blockage, blockage): Change type
19911         to "ghost".
19912
19913 2008-02-25  Richard Guenther  <rguenther@suse.de>
19914
19915         Revert:
19916         2008-02-25  Richard Guenther  <rguenther@suse.de>
19917
19918         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
19919         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
19920         (lookup_decl_from_uid): Declare.
19921         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
19922         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
19923         (decl_for_uid_map): New global hashtable mapping DECL_UID
19924         to the decl tree.
19925         (init_ttree): Allocate it.
19926         (insert_decl_to_uid_decl_map): New helper function.
19927         (make_node_stat): Insert new decls into the map.
19928         (copy_node_stat): Likewise.
19929         (lookup_decl_from_uid): New function.
19930         (print_decl_for_uid_map_statistics): New helper.
19931         (dump_tree_statistics): Call it.
19932
19933         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
19934         (referenced_var_iterator): Adjust.
19935         (FOR_EACH_REFERENCED_VAR): Adjust.
19936         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
19937         (num_referenced_vars): Adjust.
19938         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
19939         (first_referenced_var): Remove.
19940         (end_referenced_vars_p): Likewise.
19941         (next_referenced_var): Likewise.
19942         (referenced_var_iterator_set): New helper function.
19943         * tree-dfa.c (referenced_var_lookup): Adjust.
19944         (referenced_var_check_and_insert): Likewise.
19945         (remove_referenced_var): Likewise.
19946         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
19947         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19948         (verify_call_clobbering): Likewise.
19949         (verify_memory_partitions): Likewise.
19950         (init_tree_ssa): Allocate bitmap instead of hashtable for
19951         referenced_vars.
19952         (delete_tree_ssa): Adjust.
19953         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
19954         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19955         (compute_tag_properties): Likewise.
19956         (set_initial_properties): Likewise.
19957         (find_partition_for): Likewise.
19958         (update_reference_counts): Likewise.
19959         (dump_may_aliases_for): Likewise.
19960         * tree-ssa-operands.c (add_virtual_operand): Likewise.
19961         (add_call_clobber_ops): Likewise.
19962         (add_call_read_ops): Likewise.
19963         (get_asm_expr_operands): Likewise.
19964         * tree-into-ssa.c (dump_decl_set): Likewise.
19965         (update_ssa): Likewise.
19966         * tree-sra.c (scan_function): Likewise.
19967         (decide_instantiations): Likewise.
19968         (scalarize_parms): Likewise.
19969         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
19970         (dsa_named_for): Likewise.
19971         * tree-ssa-structalias.c (update_alias_info): Likewise.
19972         (merge_smts_into): Likewise.
19973
19974 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
19975
19976         PR fortran/29549
19977         * doc/invoke.texi (-fcx-limited-range): Document new option.
19978         * toplev.c (process_options): Handle -fcx-fortran-rules.
19979         * common.opt: Add documentation for -fcx-fortran-rules.
19980
19981 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
19982
19983         PR c/35162
19984         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
19985         actual behaviour and C99.
19986
19987 2008-02-26  Ben Elliston  <bje@au.ibm.com>
19988
19989         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
19990         (ASM_CPU_POWER6_SPEC): Likewise.
19991         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
19992         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
19993         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
19994
19995 2008-02-25  Richard Guenther  <rguenther@suse.de>
19996
19997         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
19998         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
19999         (lookup_decl_from_uid): Declare.
20000         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
20001         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
20002         (decl_for_uid_map): New global hashtable mapping DECL_UID
20003         to the decl tree.
20004         (init_ttree): Allocate it.
20005         (insert_decl_to_uid_decl_map): New helper function.
20006         (make_node_stat): Insert new decls into the map.
20007         (copy_node_stat): Likewise.
20008         (lookup_decl_from_uid): New function.
20009         (print_decl_for_uid_map_statistics): New helper.
20010         (dump_tree_statistics): Call it.
20011
20012         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
20013         (referenced_var_iterator): Adjust.
20014         (FOR_EACH_REFERENCED_VAR): Adjust.
20015         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
20016         (num_referenced_vars): Adjust.
20017         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
20018         (first_referenced_var): Remove.
20019         (end_referenced_vars_p): Likewise.
20020         (next_referenced_var): Likewise.
20021         (referenced_var_iterator_set): New helper function.
20022         * tree-dfa.c (referenced_var_lookup): Adjust.
20023         (referenced_var_check_and_insert): Likewise.
20024         (remove_referenced_var): Likewise.
20025         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
20026         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20027         (verify_call_clobbering): Likewise.
20028         (verify_memory_partitions): Likewise.
20029         (init_tree_ssa): Allocate bitmap instead of hashtable for
20030         referenced_vars.
20031         (delete_tree_ssa): Adjust.
20032         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
20033         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20034         (compute_tag_properties): Likewise.
20035         (set_initial_properties): Likewise.
20036         (find_partition_for): Likewise.
20037         (update_reference_counts): Likewise.
20038         (dump_may_aliases_for): Likewise.
20039         * tree-ssa-operands.c (add_virtual_operand): Likewise.
20040         (add_call_clobber_ops): Likewise.
20041         (add_call_read_ops): Likewise.
20042         (get_asm_expr_operands): Likewise.
20043         * tree-into-ssa.c (dump_decl_set): Likewise.
20044         (update_ssa): Likewise.
20045         * tree-sra.c (scan_function): Likewise.
20046         (decide_instantiations): Likewise.
20047         (scalarize_parms): Likewise.
20048         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
20049         (dsa_named_for): Likewise.
20050         * tree-ssa-structalias.c (update_alias_info): Likewise.
20051         (merge_smts_into): Likewise.
20052
20053 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
20054
20055         PR target/35258
20056         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
20057         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
20058         * alias.h (nonoverlapping_memrefs_p): Likewise.
20059
20060 2008-02-25  Jan Beulich  <jbeulich@novell.com>
20061
20062         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
20063         * config/i386/netware-libgcc.exp: Add __bswap?i2,
20064         __emultls_get_address, __emultls_register_common,
20065         __floatundi?f, and _Unwind_GetIPInfo.
20066         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
20067         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
20068         (gen_regparm_prefix): Likewise.
20069         (i386_nlm_encode_section_info): Sync with
20070         config/i386/winnt.c:i386_pe_encode_section_info().
20071         (i386_nlm_maybe_mangle_decl_assembler_name): New.
20072         i386_nlm_mangle_decl_assembler_name): New.
20073         (netware_override_options): New.
20074         * config/i386/netware.h (netware_override_options): Declare.
20075         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
20076         (i386_nlm_mangle_decl_assembler_name): Declare.
20077         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
20078
20079 2008-02-25  Ben Elliston  <bje@au.ibm.com>
20080
20081         PR other/32948
20082         * c-decl.c (grokdeclarator): Remove unused local variables
20083         `typedef_type' and `type_as_written'.
20084         * bb-reorder.c
20085         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
20086         unused local variable `has_hot_blocks'.
20087         (fix_crossing_conditional_branches): Remove unused local variable
20088         `prev_bb'.
20089
20090 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
20091
20092         PR middle-end/19984
20093         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
20094         using DEF_C99_BUILTIN.
20095         (BUILT_IN_NANF): Ditto.
20096         (BUILT_IN_NANL): Ditto.
20097
20098 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
20099             Revital Eres  <eres@il.ibm.com>
20100
20101         * modulo-sched.c (calculate_must_precede_follow): Address TODO
20102         regarding the order of two dependent insns in the same row.
20103
20104 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
20105
20106         * stor-layout.c (layout_decl): Do not bump the alignment of a
20107         bit-field to more than byte alignment if it is packed.
20108
20109 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
20110
20111         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
20112         e300c2 and e300c3.
20113
20114 2008-02-24  Diego Novillo  <dnovillo@google.com>
20115
20116         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
20117
20118         PR 33738
20119         * tree-vrp.c (vrp_evaluate_conditional): With
20120         -Wtype-limits, emit a warning when comparing against a
20121         constant outside the natural range of OP0's type.
20122         * c.opt (Wtype-limits): Move ...
20123         * common.opt (Wtype-limits): ... here.
20124
20125 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
20126
20127         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
20128         * config/rs6000/e300c2c3.md: New file.
20129         * config/rs6000/rs6000.c (processor_costs): Add new costs for
20130         e300c2 and e300c3.
20131         (rs6000_override_options): Add e300c2 and e300c3 cases to
20132         processor_target_table. Do not allow usage of Altivec or Spe
20133         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
20134         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
20135         * config/rs6000/rs6000.h (processor_type): Add
20136         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
20137         (ASM_CPU_SPEC): Add e300c2 and e300c3.
20138         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
20139         and ppce300c3. Include e300c2c3.md.
20140
20141 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
20142
20143         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
20144         instead of TARGET_STRICT_ALIGN.
20145
20146 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
20147
20148         * explow.c (memory_address): Assert that the generated address is
20149         valid.
20150
20151 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
20152
20153         PR target/25477
20154         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
20155         * config/darwin-ppc-ldouble-patch.def: New file.
20156         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
20157         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
20158         SUBTARGET_INIT_BUILTINS if defined.
20159         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
20160         New functions.
20161
20162 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20163
20164         PR rtl-opt/33512
20165         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
20166         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
20167
20168 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20169
20170         PR pch/35027
20171         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
20172         file" warning condtional on -Winvalid-PCH.
20173
20174 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
20175
20176         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
20177
20178 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
20179
20180         PR target/22076
20181         PR target/34256
20182         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
20183         prevent reload from using MMX registers.
20184         (*mov<mode>_internal): Ditto.
20185         (*movv2sf_internal_rex64): Ditto.
20186         (*movv2sf_internal): Ditto.
20187
20188 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20189
20190         PR documentation/31569
20191         * doc/install.texi2html: Use makeinfo --no-number-sections.
20192
20193 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
20194
20195         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
20196         ensure that we can address an entire entity > 8 bytes.  Don't
20197         generate reg+reg addressing for such data.
20198
20199 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
20200
20201         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
20202         strings when optimizing for size, unless the target cares about
20203         alignment.
20204
20205 2008-02-22  Tom Tromey  <tromey@redhat.com>
20206
20207         * regclass.c (current_pass): Remove declaration.
20208
20209 2008-02-22  Anatoly Sokolov <aesok@post.ru>
20210
20211         * config/avr/libgcc.S (__RAMPZ__): Define.
20212         (__do_copy_data): Add for devices with 128KB code memory.
20213
20214 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
20215
20216         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
20217         Use spe_abi.
20218         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
20219
20220 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
20221
20222         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
20223         GENNONACR_REGS.
20224
20225 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20226
20227         PR c/19999
20228         * c-typeck.c (build_binary_op): Warn about floating point
20229         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
20230
20231 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
20232
20233         PR target/34526
20234         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
20235         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
20236         add vrsave.
20237         (rs6000_override_options): Set altivec_abi as default, not override,
20238         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
20239         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
20240         is used; use new member spe_abi.
20241         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
20242         spe_abi and altivec_abi.
20243
20244 2008-02-22  Tomas Bily  <tbily@suse.cz>
20245
20246         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
20247
20248 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20249
20250         PR bootstrap/35273
20251         * config.build (build_file_translate): Set to `CMD //c' only if
20252         it works.
20253         * Makefile.in (build_file_translate): Improve comment.
20254
20255 2008-02-21  Jan Hubicka  <jh@suse.cz>
20256
20257         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
20258         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
20259         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
20260
20261 2008-02-21  Michael Matz  <matz@suse.de>
20262
20263         PR target/35264
20264         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
20265
20266 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
20267
20268         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
20269         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
20270         as insn constraint.
20271         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
20272         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
20273         SSE_VEC_FLOAT_MODE_P as insn constraint.
20274         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
20275         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
20276         sse4a_movntdf using MODEF mode iterator.
20277         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
20278         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
20279         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
20280         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
20281         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
20282         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
20283         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
20284
20285 2008-02-21  Richard Guenther  <rguenther@suse.de>
20286
20287         * tree.def (PAREN_EXPR): New tree code.
20288         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
20289         and PAREN_EXPR.
20290         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
20291         * expr.c (expand_expr_real_1): Likewise.
20292         * tree-inline.c (estimate_num_insns_1): Likewise.
20293         * tree-complex.c (expand_complex_move): Likewise.
20294         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
20295         as plain x.
20296
20297 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20298
20299         PR target/35225
20300         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
20301
20302 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20303
20304         PR target/35190
20305         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
20306
20307         * config/sh/sh.c (find_barrier): Don't go past
20308         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
20309
20310 2008-02-20  DJ Delorie  <dj@redhat.com>
20311
20312         * config/h8300/h8300.md (insv): Force source operand to be a register.
20313
20314         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
20315         as a jump, not as a plain insn.
20316
20317 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
20318
20319         * doc/invoke.texi (Warning Options): Add new option
20320         -Wframe-larger-than=.
20321         (-Wframe-larger-than): Document.
20322
20323         * flags.h (warn_frame_larger_than, frame_larger_than_size):
20324         Add declarations for new option variables.
20325
20326         * final.c (final_start_function): Check the frame size
20327         before emission and issue a Wframe-larger-than warning.
20328
20329         * opts.c (warn_frame_larger_than, frame_larger_than_size):
20330         Add definitions for new option variables.
20331         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
20332
20333         * common.opt (Wframe-larger-than=): New option.
20334
20335 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
20336
20337         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
20338         (<sse>_div<mode>3): Ditto.
20339         (<sse>_vmdiv<mode>3): Ditto.
20340         (<sse>_vmsqrt<mode>2): Ditto.
20341         (*smax<mode>3): Ditto.
20342         (sse5_frcz<mode>2): Ditto.
20343         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
20344         as insn constraint.
20345
20346 2008-02-20  Richard Guenther  <rguenther@suse.de>
20347
20348         PR middle-end/35265
20349         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
20350         be happy with INTEGRAL_TYPE_P.
20351
20352 2008-02-20  Richard Guenther  <rguenther@suse.de>
20353
20354         * fold-const.c (split_tree): Associate floatig-point expressions
20355         if flag_associative_math is set.
20356
20357 2008-02-20  Richard Guenther  <rguenther@suse.de>
20358
20359         * tree.h (fold_real_zero_addition_p): Declare.
20360         * fold-const.c (fold_real_zero_addition_p): Export.
20361         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
20362         floating-point operations with zero and one.
20363
20364 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
20365
20366         * doc/install.texi: Correct references to CFLAGS, replacing them
20367         with BOOT_CFLAGS.  Document flags used during bootstrap for
20368         target libraries.
20369
20370 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
20371
20372         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
20373         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
20374         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
20375         insn constraint.
20376         (smin<mode>3): Ditto from similar patterns.
20377         (smax<mode>3): Ditto.
20378         (*ieee_smin<mode>3): Ditto.
20379         (*ieee_smax<mode>3): Ditto.
20380         * config/i386/sse.md (sse): New mode attribute.
20381         (mov<mode>): Macroize expander from movv4sf and movv2df using
20382         SSEMODEF2P mode iterator.
20383         (<sse>_movnt<mode>): Ditto from similar patterns. Use
20384         SSE_VEC_FLOAT_MODE_P as insn constraint.
20385         (storent<mode>): Ditto.
20386         (storent<mode>): Macroize expander from storentsf and storentdf using
20387         MODEF mode iterator.
20388         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
20389         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
20390         (abs<mode>2): Ditto from similar patterns.
20391         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
20392         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
20393         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
20394         (<sse>_vmsqrt<mode>2): Ditto.
20395         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
20396         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
20397         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
20398         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
20399         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
20400         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
20401         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
20402         insn constraint.
20403         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
20404         iterator and SSE_FLOAT_MODE_P as insn constraint.
20405         (<sse>_ucomi): Ditto from similar patterns.
20406         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
20407         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
20408         SSE_VEC_FLOAT_MODE_P as insn constraint.
20409         (vcond<mode>): Ditto from similar patterns.
20410         (and<mode>3, *and<mode>3): Ditto.
20411         (<sse>_nand<mode>3): Ditto.
20412         (ior<mode>3, *ior<mode>3): Ditto.
20413         (xor<mode>3, *xor<mode>3): Ditto.
20414         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
20415         iterator and SSE_FLOAT_MODE_P as insn constraint.
20416         (*nand<mode>3): Ditto from similar patterns.
20417         (*ior<mode>3): Ditto.
20418         (*xor<mode>3): Ditto.
20419
20420 2008-02-20  Ira Rosen  <irar@il.ibm.com>
20421
20422         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
20423         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
20424         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
20425
20426 2008-02-19  Jan Hubicka  <jh@suse.cz>
20427
20428         * predict.c (tree_bb_level_predictions): Remove variable next
20429         mistakely introduced by previous commit.
20430
20431 2008-02-19  Jan Hubicka  <jh@suse.cz>
20432
20433         * predict.c (predict_paths_leading_to): Rewrite.
20434         (predict_paths_for_bb): New.
20435         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
20436
20437 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20438
20439         PR bootstrap/35218
20440         * Makefile.in (build_file_translate): New.
20441         (gcc-vers.texi): Use it for translating $(abs_srcdir).
20442         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
20443         * configure.ac (build_file_translate): Substitute it.
20444         * configure: Regenerate.
20445
20446 2008-02-19  Jan Hubicka  <jh@suse.cz>
20447
20448         PR rtl-optimization/34408
20449         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
20450         invalid sharing.
20451
20452 2008-02-19  Jan Hubicka  <jh@suse.cz>
20453
20454         PR middle-end/28779
20455         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
20456         call_expr.
20457
20458 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
20459
20460         PR Ada/35186
20461         * config/i386/i386-modes.def: Revert the last DI alignment
20462         change until Ada people can look into it.
20463
20464 2008-02-19  Nick Clifton  <nickc@redhat.com>
20465
20466         * opts.c (print_specific_help): Fix typo in --help text.
20467
20468 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
20469
20470         PR target/35239
20471         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
20472         32-bit inline asm without asm alternatives for host GCC < 3.0.
20473
20474 2008-02-19  Richard Guenther  <rguenther@suse.de>
20475
20476         PR tree-optimization/34989
20477         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
20478         Allow propagation to INDIRECT_REF if we can simplify only.
20479
20480 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20481
20482         * c-common.c (warn_for_collisions_1): Use appropriate option when
20483         warning.
20484
20485 2008-02-19  Nick Clifton  <nickc@redhat.com>
20486
20487         PR other/31349
20488         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
20489         (handle_options): Fix indentation.
20490         (print_filtered_help): If no language-specific options were
20491         displayed tell the user how to list all the options supported by
20492         the language's front-end.
20493         (print_specific_help): Fix indentation and remove duplicate line.
20494         (common_handle_option): Handle the -v option.
20495         For --help enable the display of undocumented options if the -v
20496         switch has been included on the command line.
20497         For --help= check for overlaps in the arguments between the option
20498         classes and the language names and issue a warning when they
20499         cannot be disambiguated.
20500         * c.opt (v): Pass on to the common option handler.
20501
20502 2008-02-19  Revital Eres  <eres@il.ibm.com>
20503
20504         * modulo-sched.c (sms_schedule): Change dump message when
20505         create_ddg function fails.
20506         (try_scheduling_node_in_cycle): Rename row to cycle.
20507         (print_partial_schedule): Rename CYCLE to ROW.
20508
20509 2008-02-19  Christian Bruel  <christian.bruel@st.com>
20510             Zdenek Dvorak  <ook@ucw.cz>
20511
20512         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
20513
20514 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
20515
20516         PR target/33555
20517         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
20518         (*x86_movdicc_0_m1_se): Ditto.
20519
20520 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
20521
20522         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
20523         (CMPtype): Define as __gcc_CMPtype.
20524         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
20525         (CMPtype): Define as __gcc_CMPtype.
20526
20527 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
20528
20529         Support valgrind 3.3 for --enable-checking=valgrind.
20530         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
20531         here.
20532         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
20533         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
20534         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
20535         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
20536         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
20537         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
20538         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
20539         respectively.
20540         * ggc-zone.c: Similar.
20541         * ggc-page.c: Similar.
20542
20543 2008-02-19  Paul Brook  <paul@codesourcery.com>
20544
20545         PR target/35071
20546         * config/arm/ieee754-df.S: Fix do_it typo.
20547         * config/arm/ieee754-sf.S: Fix do_it typo.
20548
20549 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
20550
20551         PR target/35189
20552         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
20553         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
20554         (OPTION_MASK_ISA_SSE_SET): Likewise.
20555         (OPTION_MASK_ISA_SSE2_SET): Likewise.
20556         (OPTION_MASK_ISA_SSE3_SET): Likewise.
20557         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
20558         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
20559         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
20560         (OPTION_MASK_ISA_SSE4_SET): Likewise.
20561         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
20562         (OPTION_MASK_ISA_SSE5_SET): Likewise.
20563         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
20564         (OPTION_MASK_ISA_MMX_UNSET): Updated.
20565         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
20566         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
20567         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
20568         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
20569         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
20570         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
20571         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
20572         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
20573         (OPTION_MASK_ISA_SSE4): Removed.
20574         (ix86_handle_option): Turn on bits in ix86_isa_flags and
20575         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
20576         (override_options): Don't turn on implied SSE/MMX bits in
20577         ix86_isa_flags.
20578
20579 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
20580
20581         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
20582         32bit host.
20583
20584 2008-02-18  Joey Ye  <joey.ye@intel.com>
20585
20586         PR middle-end/34921
20587         * tree-nested.c (insert_field_into_struct): Set type alignment
20588         to field alignment if the former is less than the latter.
20589
20590 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
20591
20592         * BASE-VER: Set to 4.4.0.
20593
20594 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20595
20596         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
20597         * doc/cfg.texi: Likewise.
20598         * doc/extend.texi: Likewise.
20599         * doc/gty.texi: Likewise.
20600         * doc/invoke.texi: Likewise.
20601         * doc/loop.texi: Likewise.
20602         * doc/md.texi: Likewise.
20603         * doc/passes.texi: Likewise.
20604         * doc/rtl.texi: Likewise.
20605         * doc/sourcebuild.texi: Likewise.
20606         * doc/tm.texi: Likewise.
20607         * doc/tree-ssa.texi: Likewise.
20608
20609 2008-02-17  Richard Guenther  <rguenther@suse.de>
20610
20611         PR middle-end/35227
20612         * tree-complex.c (init_parameter_lattice_values): Handle parameters
20613         without default definition.
20614
20615 2008-02-17  Richard Guenther  <rguenther@suse.de>
20616
20617         PR tree-optimization/35231
20618         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
20619         if A | B != 1.
20620
20621 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
20622
20623         Revert:
20624         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20625         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
20626         libgcc_cmp_return mode.
20627
20628 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20629
20630         PR c/28368
20631         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
20632
20633 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
20634
20635         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
20636         multilibs.
20637
20638 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20639
20640         * doc/c-tree.texi: Use `@.' where appropriate.
20641         * doc/extend.texi: Likewise.
20642         * doc/install.texi: Likewise.
20643         * doc/invoke.texi: Likewise.
20644         * doc/loop.texi: Likewise.
20645         * doc/makefile.texi: Likewise.
20646         * doc/md.texi: Likewise.
20647         * doc/passes.texi: Likewise.
20648         * doc/standards.texi: Likewise.
20649         * doc/tm.texi: Likewise.
20650
20651 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
20652
20653         PR middle-end/35196
20654         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
20655         in entry_bb.
20656         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
20657         rather than in entry_bb.
20658
20659 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20660
20661         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
20662         libgcc_cmp_return mode.
20663
20664 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
20665
20666         PR middle-end/35130
20667         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
20668         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
20669
20670 2008-02-15  Richard Guenther  <rguenther@suse.de>
20671             Zdenek Dvorak  <ook@ucw.cz>
20672
20673         PR tree-optimization/35164
20674         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
20675         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
20676         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
20677         Only propagate addresses which do not have abnormal SSA_NAMEs
20678         in their operands.
20679
20680 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
20681
20682         PR target/35088
20683         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
20684
20685 2008-02-15  Jan Hubicka  <jh@suse.cz>
20686
20687         PR middle-end/35149
20688         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
20689
20690 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20691
20692         PR middle-end/34621
20693         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
20694         when calculating alignment_pad.
20695
20696 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20697
20698         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
20699         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
20700         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
20701         and STACK_BOUNDARY define.
20702
20703 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
20704
20705         PR preprocessor/35061
20706         * c-pragma.c (handle_pragma_pop_macro): Check that
20707         pushed_macro_table has been allocated.
20708
20709 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
20710
20711         PR middle-end/35136
20712         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
20713         (force_gimple_operand): Likewise.
20714         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
20715         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
20716         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
20717         (find_interesting_uses_address): Check addressability and alignment
20718         of the base expression only after substituting bases of IVs into it.
20719
20720 2008-02-14  Michael Matz  <matz@suse.de>
20721
20722         PR target/34930
20723         * function.c (instantiate_virtual_regs_in_insn): Reload address
20724         before falling back to reloading the whole operand.
20725
20726 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
20727
20728         * config/s390/s390.c (s390_mainpool_start): Emit the pool
20729         before the first section switch note.
20730
20731 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20732
20733         * doc/bugreport.texi: Update copyright years.
20734         * doc/c-tree.texi: Likewise.
20735         * doc/cfg.texi: Likewise.
20736         * doc/cpp.texi: Likewise.
20737         * doc/cppinternals.texi: Likewise.
20738         * doc/fragments.texi: Likewise.
20739         * doc/frontends.texi: Likewise.
20740         * doc/gcc.texi: Likewise.
20741         * doc/gty.texi: Likewise.
20742         * doc/hostconfig.texi: Likewise.
20743         * doc/implement-c.texi: Likewise.
20744         * doc/libgcc.texi: Likewise.
20745         * doc/loop.texi: Likewise.
20746         * doc/makefile.texi: Likewise.
20747         * doc/options.texi: Likewise.
20748         * doc/passes.texi: Likewise.
20749         * doc/rtl.texi: Likewise.
20750         * doc/sourcebuild.texi: Likewise.
20751         * doc/standards.texi: Likewise.
20752         * doc/tree-ssa.texi: Likewise.
20753         * doc/trouble.texi: Likewise.
20754
20755         * doc/extend.texi: Use @: or add comma where appropriate.
20756         * doc/invoke.texi: Likewise.
20757         * doc/tm.texi: Likewise.
20758
20759 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
20760
20761         PR target/34393
20762         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
20763         to a reg.
20764
20765 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
20766
20767         * doc/md.texi (clz, ctz): Add reference.
20768         * doc/rtl.texi (clz, ctz): Likewise.
20769
20770 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20771
20772         PR other/35148
20773         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
20774         srcdir.
20775
20776 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
20777
20778         * config/s390/s390.c (struct constant_pool): New field
20779         emit_pool_after added.
20780         (s390_mainpool_start): Set the emit_pool_after flag according
20781         to the section switch notes.
20782         (s390_mainpool_finish): Consider emit_pool_after when emitting
20783         the literal pool at the end of the function.
20784         (s390_chunkify_start): Force literal pool splits at section
20785         switch notes.
20786
20787 2008-02-13  Michael Matz  <matz@suse.de>
20788
20789         PR debug/35065
20790         * var-tracking.c (clobber_variable_part): Correctly traverse the
20791         list.
20792
20793 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20794
20795         PR 29673
20796         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
20797         Add -fdump-ipa-inline.
20798         * tree-dump.c (dump_files): Remove tree-inlined dump.
20799         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
20800
20801 2008-02-12  Richard Guenther  <rguenther@suse.de>
20802
20803         PR tree-optimization/35171
20804         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
20805         default defs.
20806
20807 2008-02-12  Richard Guenther  <rguenther@suse.de>
20808
20809         PR middle-end/35163
20810         * fold-const.c (fold_widened_comparison): Use get_unwidened in
20811         value-preserving mode.  Disallow final truncation.
20812
20813 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
20814
20815         PR middle-end/35136
20816         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
20817         code from here to...
20818         (force_gimple_operand): ...here.
20819
20820 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
20821
20822         PR c++/35144
20823         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
20824         non-compatible pointers.
20825         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
20826         different FIELD_DECLs, try harder by comparing field offsets, sizes
20827         and types.
20828
20829         PR inline-asm/35160
20830         * function.c (match_asm_constraints_1): Don't replace the same input
20831         multiple times.
20832
20833 2008-02-12  Anatoly Sokolov <aesok@post.ru>
20834
20835         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
20836         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
20837         (expand_epilogue): Restore RAMPZ register.
20838         * config/avr/avr.md (RAMPZ_ADDR): New constant.
20839
20840 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
20841
20842         * config/i386/cygwin.asm: (__alloca): Correct calling
20843         convention and alignment.
20844         (__chkstk): Force 8 byte stack alignment.
20845
20846 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
20847             Richard Guenther  <rguenther@suse.de>
20848
20849         PR tree-optimization/33992
20850         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
20851         the zero we compare against.
20852
20853 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
20854
20855         PR libfortran/35063
20856         * gthr-win32.h (__gthread_mutex_destroy_function): New function
20857         to CloseHandle after unlocking to prevent accumulation of handle
20858         count.
20859
20860 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20861
20862         PR middle_end/34150
20863         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
20864         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
20865         and update LABEL_NUSES during and after reload.
20866
20867 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
20868
20869         PR middle-end/34627
20870         * combine.c (simplify_if_then_else): Make sure the comparison is
20871         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
20872
20873 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
20874
20875         PR bootstrap/35051
20876         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
20877         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
20878         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
20879         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
20880         * tree.h (get_type_static_bounds): Likewise.
20881
20882 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20883
20884         * doc/invoke.texi (Option Summary, C++ Dialect Options)
20885         (Objective-C and Objective-C++ Dialect Options, Warning Options):
20886         Make -Wfoo language annotations match what the compiler outputs.
20887
20888 2008-02-08  Sa Liu  <saliu@de.ibm.com>
20889
20890         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
20891         intrinsics spu_convts, spu_convtu, spu_convtf.
20892
20893 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
20894
20895         * doc/extend.texi (Function Attributes) <noinline>: Mention
20896         asm ("") as method to keep calls.
20897
20898 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20899
20900         PR other/32754
20901         * doc/options.texi (Options): Replace references to opts.sh with
20902         optc-gen.awk.
20903         * opts-common.c: Likewise.
20904         * optc-gen.awk: Likewise.
20905
20906 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
20907
20908         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
20909
20910 2008-02-07  Richard Henderson  <rth@redhat.com>
20911
20912         PR rtl-opt/33410
20913         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
20914         EXPR_LIST for the REG_EQUAL instead of a comparison with a
20915         funny mode.
20916
20917 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
20918
20919         PR tree-optimization/35085
20920         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
20921         for operand entry oe2 in addition to operand entry oe3 in order to
20922         expose more opportunities for vectorizer sum reduction.
20923
20924 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20925
20926         PR other/35107
20927         * Makefile.in (LIBS): Remove $(GMPLIBS).
20928         (cc1-dummy, cc1): Add $(GMPLIBS).
20929
20930 2008-02-06  Jan Hubicka  <jh@suse.cz>
20931
20932         PR target/23322
20933         * i386.md (moddf_integer): Do not produce partial memory stalls for
20934         targets where it hurts.
20935
20936 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
20937
20938         PR target/35083
20939         * optabs.c (expand_float): Do not check for decimal modes when
20940         expanding unsigned integer through signed conversion.
20941
20942 2008-02-06  Nick Clifton  <nickc@redhat.com>
20943
20944         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
20945         inside the clobber with a match_operand and duplicated operand
20946         number in the constraint.
20947         (ineqbranchsi): Delete redundant comment.
20948
20949 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
20950
20951         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
20952         builtin_define ("__USE_INIT_FINI__").
20953         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
20954         -msx multilibs.
20955         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
20956
20957 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20958
20959         PR documentation/30330
20960         * doc/invoke.texi (C++ Dialect Options)
20961         (Objective-C and Objective-C++ Dialect Options, Warning Options):
20962         For each warning option -Wfoo that allows -Wno-foo, ensure both
20963         -Wfoo and -Wno-foo are listed in the option index.  Fix index
20964         entry of -Wswitch-default, index -Wnormalized= including the
20965         `=', and -Wlarger-than-@var{len} including @var{len}.
20966
20967 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
20968
20969         * config/i386/i386.md (floatunssisf2): Use
20970         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
20971         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
20972         Macroize expander using MODEF mode iterator.
20973
20974 2008-02-05  Diego Novillo  <dnovillo@google.com>
20975
20976         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
20977
20978         PR 33738
20979         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
20980
20981 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20982
20983         PR other/35070
20984         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
20985
20986 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
20987
20988         PR target/35084
20989         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
20990         to indicate if a message should be generated.
20991         (init_cumulative_args): Updated.
20992         (function_value_32): Likewise.
20993
20994 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
20995
20996         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
20997
20998 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
20999
21000         PR target/35083
21001         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
21002         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
21003
21004 2008-02-04  Diego Novillo  <dnovillo@google.com>
21005
21006         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
21007
21008         PR 33738
21009         * tree-vrp.c (vrp_evaluate_conditional): With
21010         -Wtype-limits, emit a warning when comparing against a
21011         constant outside the natural range of OP0's type.
21012
21013 2008-02-04  Richard Guenther  <rguenther@suse.de>
21014
21015         PR middle-end/33631
21016         * expr.c (count_type_elements): Give for unions instead of
21017         guessing.
21018
21019 2008-02-04  Richard Guenther  <rguenther@suse.de>
21020
21021         PR middle-end/35043
21022         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
21023         to TYPE_DOMAINs base type instead of using bitsizetype here.
21024
21025 2008-02-03  Jason Merrill  <jason@redhat.com>
21026
21027         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
21028
21029 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21030
21031         PR other/29972
21032         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
21033         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
21034         (RS/6000 and PowerPC Options): Fix typos and markup.
21035         * doc/passes.texi (Tree-SSA passes): Likewise.
21036
21037 2008-02-02  Michael Matz  <matz@suse.de>
21038
21039         PR target/35045
21040         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
21041         from record_last_reg_set_info.
21042         (record_last_reg_set_info): Take an RTX argument, iterate over all
21043         constituent hardregs.
21044         (record_last_set_info, record_opr_changes): Change calls to
21045         new signature or to record_last_reg_set_info_regno.
21046
21047 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
21048
21049         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
21050
21051 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
21052
21053         PR rtl-optimization/34773
21054         * reg-notes.def (EQUAL): Mention significance of combination of
21055         REG_EQUAL and REG_RETVAL.
21056         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
21057         insn that has a REG_RETVAL.
21058
21059 2008-02-01  Roger Sayle  <roger@eyesopen.com>
21060
21061         PR bootstrap/33781
21062         * configure.ac (--enable-fixed-point): Disable unless explicitly
21063         requested on IRIX.
21064         * configure: Regenerate.
21065
21066 2008-02-01  Richard Guenther  <rguenther@suse.de>
21067
21068         PR other/35042
21069         * invoke.texi (-finline-limit): Remove no longer true parts
21070         of the documentation.  Note that there is no default value.
21071
21072 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
21073             Mark Mitchell  <mark@codesourcery.com>
21074             Ben Elliston  <bje@au.ibm.com>
21075
21076         PR c/29326
21077         * doc/extend.texi (Other Builtins): Document.
21078
21079 2008-01-31  Tom Browder <tom.browder@gmail.com>
21080
21081         * doc/c-tree.texi (Types): Fix grammar.
21082         (Expression trees): Ditto.
21083         * doc/passes.texi (Tree-SSA passes): Ditto.
21084
21085         * doc/configterms.texi (Configure Terms): Fix typo.
21086         * doc/cpp.texi (Common Predefined Macros): Ditto.
21087         * doc/md.texi (Machine Constraints): Ditto.
21088
21089         * doc/makefile.texi (Makefile): Add comma.
21090
21091 2008-01-31  Tom Browder  <tom.browder@gmail.com>
21092             Gerald Pfeifer  <gerald@pfeifer.com>
21093
21094         * doc/sourcebuild.texi (Front End): Remove references to CVS
21095         and CVSROOT/modules.
21096         (Texinfo Manuals): Replace reference to CVS by one to SVN.
21097         (Back End): Remove reference to CVS.
21098
21099 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
21100
21101         PR target/34900
21102         * config/mips/mips.c (gen_load_const_gp): New function, taking a
21103         comment from...
21104         (mips16_gp_pseudo_reg): ...here.
21105         * config/mips/mips.md (load_const_gp): Replace with...
21106         (load_const_gp_<mode>): ...this :P-based insn.
21107
21108 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21109
21110         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
21111         options. Minor fixes.
21112         (-std): Move reference to standards closer to where language
21113         standards are first mentioned.
21114
21115 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
21116
21117         PR rtl-optimization/34995
21118         * reload.c (alternative_allows_const_pool_ref): Take an rtx
21119         parameter and return a bool.  If the rtx parameter is nonnull,
21120         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
21121         (find_reloads): Update call accordingly.  Pass the new operand
21122         if it needed no address reloads, otherwise pass null.
21123
21124 2008-01-30  Richard Henderson  <rth@redhat.com>
21125
21126         PR c/34993
21127         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
21128         for unbounded arrays.
21129
21130 2008-01-30  Silvius Rus  <rus@google.com>
21131
21132         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
21133
21134 2008-01-30  Jan Hubicka  <jh@suse.cz>
21135
21136         PR target/34982
21137         * i386.c (init_cumulative_args): Use real function declaration when
21138         calling locally.
21139
21140 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
21141
21142         PR rtl-optimization/34998
21143         * global.c (build_insn_chain): Treat non-subreg_lowpart
21144         SUBREGs of pseudos as clobbering all the words covered by the
21145         SUBREG, not just all the bytes.
21146         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
21147         original df_ref rather than an extract parameter.
21148         (global_conflicts): Update call accordingly.
21149
21150 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
21151
21152         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
21153         the overflow check to make it easier to read.
21154         (__fixtfdi): Change the type of the ll member in union
21155         long_double to UDItype_x.
21156
21157 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
21158
21159         PR middle-end/34969
21160         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
21161         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
21162         * tree-inline.c (fold_marked_statements): Call
21163         cgraph_update_edges_for_call_stmt if folding a call statement.
21164         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
21165         debug_generic_stmt calls, reset it back afterwards.
21166
21167         PR c/35017
21168         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
21169         static decls.
21170         * c-typeck.c (build_external_ref): Don't pedwarn about
21171         static vars in current function's scope.
21172
21173 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
21174
21175         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
21176
21177 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
21178
21179         PR c/35002
21180         * ipa-struct-reorg.c: Fix spelling.
21181         * params.def: Ditto.
21182
21183 2008-01-29  Richard Guenther  <rguenther@suse.de>
21184
21185         PR middle-end/35006
21186         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
21187         field.
21188         * tree-inline.c (remap_type): Increment remapping_type_depth
21189         around remapping types.
21190         (copy_body_r): Only add referenced variables if they are referenced
21191         from code, not types.
21192
21193 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
21194
21195         PR c++/34055
21196         PR c++/34103
21197         PR c++/34219
21198         PR c++/34606
21199         PR c++/34753
21200         PR c++/34754
21201         PR c++/34755
21202         PR c++/34919
21203         PR c++/34961
21204         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
21205         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
21206
21207 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
21208
21209         PR target/34412
21210         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
21211         pointer for tiny stack.
21212
21213 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
21214
21215         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
21216
21217 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
21218
21219         * config/vx-common.h: Fix typo in comment.
21220
21221 2008-01-28  Ian Lance Taylor  <iant@google.com>
21222
21223         PR c++/34862
21224         PR c++/33407
21225         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21226         coalesce pointers if they have different DECL_NO_TBAA_P values.
21227         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
21228         between variables with different DECL_NO_TBAA_P values.
21229
21230 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
21231
21232         PR 31535
21233         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
21234         are not legitimate small data references on SPE targets.
21235
21236 2008-01-28  David Daney  <ddaney@avtrex.com>
21237
21238         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
21239
21240 2008-01-28  David Daney  <ddaney@avtrex.com>
21241
21242         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
21243
21244 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
21245
21246         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
21247         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
21248         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
21249         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
21250         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
21251         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
21252         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
21253         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
21254
21255 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
21256
21257         * basic-block.h (condjump_equiv_p): Fix comment.
21258
21259 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
21260
21261         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
21262         print_generic_stmt_indented): Fix comment.
21263
21264 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
21265
21266         * configure.ac (__stack_chk_fail): Add detecion for availability
21267         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
21268         * configure: Regenerate.
21269
21270 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
21271
21272         PR middle-end/34688
21273         * final.c (output_addr_const): Handle TRUNCATE.
21274
21275 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
21276
21277         PR target/34711
21278         * tree-ssa-loop-ivopts.c (comp_cost): New type.
21279         (zero_cost, infinite_cost): New constants.
21280         (struct cost_pair): Change type of cost to comp_cost.
21281         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
21282         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
21283         New functions.
21284         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
21285         split_address_cost, ptr_difference_cost, difference_cost,
21286         get_computation_cost_at, get_computation_cost,
21287         determine_use_iv_cost_generic, determine_use_iv_cost_address,
21288         determine_use_iv_cost_condition, determine_use_iv_costs,
21289         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
21290         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
21291         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
21292         Change type of cost to comp_cost.
21293         (determine_iv_cost): Increase cost of non-original ivs, instead
21294         of decreasing the cost of original ones.
21295         (get_address_cost): Indicate the complexity of the addressing mode
21296         in comp_cost.
21297         (try_add_cand_for): Prefer using ivs not specific to some object.
21298         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
21299
21300 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
21301             Janis Johnson  <janis187@us.ibm.com>
21302
21303         PR target/34814
21304         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
21305         (TARGET_INSTANTIATE_DECLS): Likewise.
21306         * target.h (expand_to_rtl_hook): New target hook.
21307         (instantiate_decls): Likewise.
21308         * function.c (instantiate_decl): Make non-static.  Rename to...
21309         (instantiate_decl_rtl): ... this.
21310         (instantiate_expr): Use instantiate_decl_rtl.
21311         (instantiate_decls_1): Likewise.
21312         (instantiate_decls): Likewise.
21313         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
21314         * function.h (instantiate_decl_rtl): Add prototype.
21315         * cfgexpand.c (target.h): New include.
21316         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
21317         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
21318         (TARGET_INSTANTIATE_DECLS): Likewise.
21319         (TARGET_INITIALIZER): New target hooks added.
21320         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
21321         New prototype.
21322         * config/rs6000/rs6000.c (tree-flow.h): New include.
21323         (machine_function): Add sdmode_stack_slot field.
21324         (rs6000_alloc_sdmode_stack_slot): New function.
21325         (rs6000_instantiate_decls): Likewise.
21326         (rs6000_secondary_memory_needed_rtx): Likewise.
21327         (rs6000_check_sdmode): Likewise.
21328         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
21329         (TARGET_INSTANTIATE_DECLS): Likewise.
21330         (rs6000_hard_regno_mode_ok): Allow SDmode.
21331         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
21332         (rs6000_emit_move): Handle SDmode.
21333         (function_arg_advance): Likewise.
21334         (function_arg): Likewise.
21335         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
21336         SDmode var args for 32-bit compiles.
21337         (rs6000_secondary_reload_class): Handle SDmode.
21338         (rs6000_output_function_epilogue): Likewise.
21339         (rs6000_function_value): Simplify if statement.
21340         (rs6000_libcall_value): Likewise.
21341         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
21342         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
21343         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
21344         (movsd_hardfloat): New define_insn.
21345         (movsd_softfloat): Likewise.
21346         (movsd_store): Likewise.
21347         (movsd_load): Likewise.
21348         (extendsddd2): Likewise.
21349         (extendsdtd2): Likewise.
21350         (truncddsd2): Likewise.
21351         (movdd_hardfloat64): Fixup comment.
21352         (UNSPEC_MOVSD_LOAD): New constant.
21353         (UNSPEC_MOVSD_STORE): Likewise.
21354
21355 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
21356
21357         PR c++/34965
21358         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
21359         TRUTH_XOR_EXPR.
21360         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
21361         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
21362         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
21363         and TRUTH_XOR_EXPR.
21364
21365 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
21366
21367         PR target/34794
21368         * config.gcc: Separate AIX 5.3 from AIX 6.1.
21369         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
21370         __LONGDOUBLE128 too.
21371         * config/rs6000/aix61.h: New file.
21372
21373 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
21374
21375         PR rtl-optimization/34959
21376         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
21377         popcount and parity rtxes the same mode as their operand.
21378         Truncate or extend the result to the return value's mode
21379         if necessary.
21380
21381 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
21382
21383         PR target/34981
21384         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
21385         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
21386         to GOT_VERSION_REGNUM.
21387         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
21388         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
21389         * config/mips/mips.c (mips_emit_call_insn): New function.
21390         (mips_call_tls_get_addr): Call mips_expand_call directly.
21391         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
21392         emit_call_insn.
21393         (mips16_build_call_stub): Likewise.  Return the call insn or null.
21394         (mips_expand_call): Update the call to mips16_build_call_stub
21395         accordingly and a remove redundant condition.  Assert that MIPS16
21396         stubs do not use lazy binding.  Use mips_emit_call_insn and return
21397         the call insn.
21398         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
21399         TARGET_USE_GOT.
21400         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
21401         (mips_avoid_hazard): Remove hazard_set handling.
21402         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
21403         (UNSPEC_RESTORE_GP): ...this.
21404         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
21405         (FAKE_CALL_REGNO): Rename to...
21406         (GOT_VERSION_REGNUM): ...this.
21407         (type): Add "ghost" value.  Add an associated insn reservation.
21408         (hazard_set): Remove.
21409         (exception_receiver): Rename to...
21410         (restore_gp): ...this and update the unspec identifier accordingly.
21411         (exception_receiver, nonlocal_got_receiver): New expanders.
21412         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
21413         FAKE_CALL_REGNO.  Remove hazard_set attribute.
21414         (set_got_version, update_got_version): New patterns.
21415
21416 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
21417
21418         PR target/34970
21419         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
21420
21421 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
21422
21423         PR other/31955
21424         * doc/install.texi2html: Generate gcc-vers.texi.
21425
21426 2008-01-25  DJ Delorie  <dj@redhat.com>
21427
21428         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
21429
21430 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
21431
21432         * config/c4x: Remove directory.
21433         * config.gcc (crx-*, mt-*): Mark obsolete.
21434         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
21435         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
21436         sh-*-rtemscoff*): Remove cases.
21437         * defaults.h (C4X_FLOAT_FORMAT): Remove.
21438         * real.c (encode_c4x_single, decode_c4x_single,
21439         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
21440         c4x_extended_format): Remove.
21441         * real.h (c4x_single_format, c4x_extended_format): Remove.
21442         * doc/extend.texi (interrupt, naked): Remove mention of attributes
21443         on C4x.
21444         (Pragmas): Remove comment about c4x pragmas.
21445         * doc/install.texi (c4x): Remove target-specific instructions.
21446         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
21447         * doc/md.texi (Machine Constraints): Remove C4x documentation.
21448         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
21449         refer to C4x source files as examples.
21450         (C4X_FLOAT_FORMAT): Remove documentation.
21451
21452 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
21453
21454         * config/bfin/bfin.c (override_options): Reorder tests so that
21455         flag_pic gets enabled for -msep-data.
21456
21457 2008-01-25  Richard Guenther  <rguenther@suse.de>
21458
21459         PR middle-end/32244
21460         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
21461         to its bitfield precision if required.
21462
21463 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
21464
21465         PR middle-end/33880
21466         * tree-nested.c (walk_omp_for): New function.
21467         (convert_nonlocal_reference, convert_local_reference): Call
21468         walk_omp_for on OMP_FOR.
21469         (convert_call_expr): Call walk_body on OMP_FOR's
21470         OMP_FOR_PRE_INIT_BODY.
21471
21472 2008-01-25  Richard Guenther  <rguenther@suse.de>
21473
21474         PR tree-optimization/34966
21475         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
21476         default defs and PHI_NODEs we have to insert after the
21477         defining statement.
21478
21479 2008-01-24  Nick Clifton  <nickc@redhat.com>
21480
21481         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
21482         Provide a default definition.
21483         (LIBGCC2_UNITS_PER_WORD): Likewise.
21484
21485         * config/stormy16/stormy16.c: Include df.h for the prototype
21486         for df_regs_ever_live_p.
21487         (xstormy16_expand_builtin_va_start): Convert the stack offset
21488         into a component_ref and then use POINTER_PLUS_EXPR to add it
21489         to the incoming_virtual_args_rtx.
21490         (xstormy16_gimplify_va_arg_expr): Rename to
21491         xstormy16_gimplify_va_arg_expr.
21492         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
21493         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
21494         xstormy16_gimplify_va_arg_expr.
21495         Fix up some formatting issues.
21496
21497         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
21498         Move to predicates.md.
21499         (xs_hi_general_operand): Likewise.
21500         (xs_hi_nonmemory_operand): Likewise.
21501         * config/stormy16/predicates.md:
21502         (xstormy16_carry_plus_operand): New predicate.
21503         (xs_hi_general_operand): New predicate.
21504         (xs_hi_nonmemory_operand): New predicate.
21505         * config/stormy16/stormy16-protos.h:
21506         (xstormy16_carry_plus_operand): Delete prototype.
21507         (xs_hi_general_operand): Likewise.
21508         (xs_hi_nonmemory_operand): Likewise.
21509
21510         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
21511         modifiers as they are no longer needed and they can trigger
21512         reload spill failures.
21513
21514         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
21515         with a match_operand in order to help reload.
21516
21517         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
21518         constraint with 'e' for the 8th alternative as this version of
21519         the mov.w instruction only accepts the lower 8 registers.
21520
21521 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
21522
21523         PR target/34856
21524         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
21525         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
21526         vector elements.
21527
21528 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
21529
21530         PR middle-end/33333
21531         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
21532
21533 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
21534
21535         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
21536         New functions.
21537         (remove_structure): Update allocations list before removing structure.
21538
21539 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
21540
21541         * ipa-struct-reorg.c (is_safe_cond_expr,
21542         create_new_stmts_for_cond_expr): Use integer_zerop function,
21543         that recognize not only zero-pointer, but zero-integer too.
21544
21545 2008-01-25  Ben Elliston  <bje@au.ibm.com>
21546
21547         PR other/22232
21548         * fixproto: Escape "." in sed expression that strips leading "./".
21549
21550 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
21551
21552         PR driver/34904
21553         * gcc.c (SWITCH_OK): Removed.
21554         (SWITCH_LIVE): Changed to bit.
21555         (SWITCH_FALSE): Likewise.
21556         (SWITCH_IGNORE): Likewise.
21557         (switchstr): Change live_cond to unsigned int.
21558         (process_command): Replace SWITCH_OK with 0.
21559         (do_self_spec): Likewise.
21560         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
21561         (give_switch): Likewise.
21562         (used_arg): Likewise.
21563         (do_spec_1): Set the SWITCH_IGNORE bit.
21564         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
21565         bits.  Set the SWITCH_LIVE bit.
21566
21567 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
21568
21569         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
21570
21571 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
21572
21573         PR tree-optimization/34472
21574         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
21575         parameter to a "bool *" and set *DATA to false if there is
21576         an unsafe access.  Do not delete the structure here.
21577         (check_cond_exprs): Delete it here instead.
21578         (check_cond_exprs, exclude_cold_structs): Do not increase
21579         I when removing a structure.
21580
21581 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
21582
21583         PR target/34856
21584         * config/i386/i386.c (ix86_expand_vector_init): Consider only
21585         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
21586
21587 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
21588
21589         PR middle-end/34934
21590         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
21591         a fixed vector for stack.
21592
21593 2008-01-24  Ben Elliston  <bje@au.ibm.com>
21594
21595         PR c++/25701
21596         * doc/gcc.texi (Software development): Add a direntry for g++.
21597
21598 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
21599
21600         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
21601         stale and straggling -fforce-addr comments above.
21602
21603         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
21604         define.
21605         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
21606         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
21607
21608 2008-01-23  Michael Matz  <matz@suse.de>
21609
21610         PR debug/34895
21611         * dwarf2out.c (force_type_die): Use modified_type_die instead of
21612         gen_type_die.
21613
21614 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
21615
21616         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
21617         malloc result type.
21618
21619 2008-01-23 Anatoly Sokolov <aesok@post.ru>
21620
21621         * config/avr/avr.c (avr_current_arch): New variable.
21622         (avr_arch_types): Add 'avr31' and 'avr51' entries.
21623         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
21624         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
21625         (avr_override_options): Init 'avr_current_arch'.
21626         (base_arch_s): Move from here...
21627         * config/avr/avr.h (base_arch_s): ... here. Add new members
21628         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
21629         'mega' to 'have_jmp_call'.
21630         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
21631         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
21632         macros.
21633         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
21634         architectures.
21635         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
21636         MULTILIB_MATCHES): Ditto.
21637
21638 2008-01-23  Richard Guenther  <rguenther@suse.de>
21639
21640         PR middle-end/31529
21641         * cgraphunit.c (cgraph_reset_node): Always mark the node
21642         not reachable if it is not queued already.
21643
21644 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
21645
21646         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
21647         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
21648         (cputype_selected): New static variable.
21649         (bfin_handle_option): Set it if -mcpu is used.
21650         (override_option): Select default set of workarounds if no cpu type
21651         selected on the command line.
21652         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
21653
21654         From  Michael Frysinger  <michael.frysinger@analog.com>
21655         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
21656         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
21657
21658         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
21659         for bf547, bf523, bf524, and bf526.
21660         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
21661         bf526.
21662         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
21663         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
21664         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
21665         __ADSPBF547__ and __ADSPBF54x__ for bf547.
21666         * doc/invoke.texi (Blackfin Options): Document that
21667         -mcpu now accept bf547, bf523, bf524, and bf526.
21668
21669 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
21670
21671         PR rtl-optimization/34628
21672         * combine.c (try_combine): Stop and undo after the first combination
21673         if an autoincrement side-effect on the first insn has effectively
21674         been lost.
21675
21676 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
21677
21678         PR target/34529
21679         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
21680         Offset addresses are not valid for Altivec or paired float modes.
21681
21682 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
21683
21684         PR c++/34607
21685         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
21686         if DECL_INITIAL (decl) is error_mark_node.
21687
21688         PR c++/34914
21689         * c-common.c (handle_vector_size_attribute): Only allow
21690         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
21691         the same way as pointer, array etc. types.
21692         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
21693
21694         PR c++/34917
21695         * tree.c (build_type_attribute_qual_variant): Call
21696         build_qualified_type if attributes are equal, but quals are not.
21697
21698 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21699
21700         PR 32102
21701         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
21702         * flags.h (warn_strict_aliasing): Remove.
21703         (warn_strict_overflow): Remove.
21704         * opts.c (warn_strict_aliasing): Remove.
21705         (warn_strict_overflow): Remove.
21706         * c-opts.c (c_common_handle_option): -Wall only sets
21707         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
21708         (c_common_post_options): Give default values to -Wstrict-aliasing
21709         and -Wstrict-overflow if they are uninitialized.
21710         * common.opt (Wstrict-aliasing): Specify Var and Init.
21711         (Wstrict-overflow): Likewise.
21712
21713 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
21714
21715         PR rtl-optimization/26854
21716         PR rtl-optimization/34400
21717         PR rtl-optimization/34884
21718         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
21719         DF_RD->gen.
21720         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
21721         (df_rd_bb_info.expanded_lr_out): Deleted
21722         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
21723         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
21724         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
21725         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
21726         Removed code to allocate, initialize or free expanded_lr_out.
21727         (df_rd_bb_local_compute_process_def): Restructured to make more
21728         understandable.
21729         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
21730         sets if the sets are being trimmed.
21731
21732 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
21733
21734         PR bootstrap/32287
21735         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
21736         (as_vers): Likewise.
21737         * configure: Regenerated.
21738
21739 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21740
21741         PR middle-end/33092
21742         * tree-pass.h (pass_build_alias): New pass.
21743         * tree-ssa-alias.c (gate_build_alias): New.
21744         (pass_build_alias): New.
21745         * passes.c (init_optimization_passes): Add pass_build_alias after
21746         pass_create_structure_vars.
21747
21748 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
21749
21750         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
21751         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
21752         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
21753         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
21754         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
21755         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
21756         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
21757         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
21758         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
21759         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
21760         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
21761         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
21762         * config/s390/s390.md (FP_ALL): New mode iterator.
21763         (_d): New mode attribute.
21764         ("*signbit<mode>2>"): Changed mode of first operand.
21765         ("isinf<mode>2"): Changed mode of first operand.
21766         ("*TDC_insn"): Adaptation for DFP modes.
21767
21768 2008-01-22  Ben Elliston  <bje@au.ibm.com>
21769
21770         * tree.c (check_qualified_type): Improve function description.
21771
21772 2008-01-21  Jason Merrill  <jason@redhat.com>
21773
21774         PR c++/34196
21775         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
21776         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
21777         if it is set.
21778
21779 2008-01-21  DJ Delorie  <dj@redhat.com>
21780
21781         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
21782         return zero.
21783
21784 2008-01-21  Richard Guenther  <rguenther@suse.de>
21785
21786         PR middle-end/34856
21787         * tree-cfg.c (verify_expr): Allow all invariant expressions
21788         instead of just constant class ones as reference argument.
21789         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
21790         like any other constant.
21791         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21792
21793 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
21794
21795         * regmove.c (fixup_match_1): Update call crossed frequencies.
21796
21797 2008-01-21  Richard Guenther  <rguenther@suse.de>
21798
21799         PR c/34885
21800         * tree-inline.c (setup_one_parameter): Deal with mismatched
21801         types using a VIEW_CONVERT_EXPR.
21802
21803 2008-01-21  Alon Dayan  <alond@il.ibm.com>
21804             Olga Golovanevsky  <olga@il.ibm.com>
21805
21806         PR tree-optimization/34701
21807         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
21808         when the structure size is not a power of 2.
21809
21810 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
21811
21812         * doc/install.texi: Add doc for --enable-checking=df.
21813
21814 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
21815
21816         PR rtl-optimization/34808
21817         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
21818
21819 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
21820
21821         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
21822         input.
21823
21824 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
21825
21826         PR rtl-optimization/26854
21827         PR rtl-optimization/34400
21828         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
21829         DF_RD->gen.
21830         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
21831         (df_rd_bb_info.expanded_lr_out): New.
21832         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
21833         * loop_iv.c (iv_analysis_loop_init): Ditto.
21834         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
21835         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
21836         Added code to allocate, initialize or free expanded_lr_out.
21837         (df_rd_bb_local_compute_process_def): Restructured to make
21838         more understandable.
21839         (df_rd_confluence_n): Add code to do nothing with fake edges and
21840         code to no apply invalidate_by_call sets if the sets are being trimmed.
21841         (df_lr_local_finalize): Renamed to df_lr_finalize.
21842         (df_live_local_finalize): Renamed to df_live_finalize.
21843
21844 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
21845
21846         PR target/34831
21847         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
21848         deciding whether to use reciprocal instructions.
21849
21850 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
21851
21852         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
21853         dwarf2out_note_section_used if cold_text_section is NULL.
21854
21855 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
21856
21857         PR gcov-profile/34610
21858         * tree-cfg.c (make_edges): Mark both outgoing edges from
21859         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
21860         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
21861         from OMP_FOR and OMP_CONTINUE outgoing edges.
21862
21863         * tree-profile.c (tree_profiling): Return early if
21864         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
21865         at the end.
21866         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
21867         from cfun to child_cfun.
21868         * function.h (struct function): Add after_tree_profile bit.
21869
21870 2008-01-19 Anatoly Sokolov <aesok@post.ru>
21871
21872         * config/avr/avr.S (_exit): Disable interrupt.
21873
21874 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
21875             Steven Bosscher  <stevenb.gcc@gmail.com>
21876
21877         PR rtl-optimization/26854
21878         PR rtl-optimization/34400
21879         * df-problems.c (df_live_scratch): New scratch bitmap.
21880         (df_live_alloc): Allocate df_live_scratch when doing df_live.
21881         (df_live_reset): Clear the proper bitmaps.
21882         (df_live_bb_local_compute): Only process the artificial defs once
21883         since the order is not important.
21884         (df_live_init): Init the df_live sets only with the variables
21885         found live by df_lr.
21886         (df_live_transfer_function): Use the df_lr sets to prune the
21887         df_live sets as they are being computed.
21888         (df_live_free): Free df_live_scratch.
21889
21890 2008-01-18  Ian Lance Taylor  <iant@google.com>
21891
21892         * common.opt: Add fmerge-debug-strings.
21893         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
21894         flag_merge_debug_strings rather than flag_merge_constants.
21895         * doc/invoke.texi (Option Summary): Mention
21896         -fmerge-debug-strings.
21897         (Debugging Options): Document -fmerge-debug-strings.
21898
21899 2008-01-18  Ian Lance Taylor  <iant@google.com>
21900
21901         PR c++/33407
21902         * tree.h (DECL_IS_OPERATOR_NEW): Define.
21903         (struct tree_function_decl): Add new field operator_new_flag.
21904         * tree-inline.c (expand_call_inline): When inlining a call to
21905         operator new, force the return value to go into a variable, and
21906         set DECL_NO_TBAA_P on that variable.
21907         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
21908
21909 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
21910
21911         PR debug/34484
21912         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
21913         DWARF2_DEBUGGING_INFO.
21914         (dwarf2out_note_section_used): Ditto.  Add prototype.
21915         (have_multiple_function_sections, text_section_used,
21916         cold_text_section_used, *cold_text_sections): Move declarations
21917         before their uses.
21918
21919 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
21920
21921         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
21922         field and add signal_ra.
21923         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
21924         assignments to frame state pc.  Move end of stack check after
21925         MD_FALLBACK_FRAME_STATE_FOR.
21926         (uw_update_context_1): Use frame state signal_regs if set, instead
21927         of checking signal_frame flag.
21928         (uw_update_context): Use frame state signal_ra if set.
21929         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
21930         * config/xtensa/linux-unwind.h: New file.
21931
21932 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
21933
21934         * modulo-sched.c (get_sched_window): Fix comment typo.
21935
21936 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
21937
21938         PR tree-optimization/34648
21939         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
21940
21941 2008-01-17  Anatoly Sokolov <aesok@post.ru>
21942
21943         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
21944         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
21945
21946 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
21947
21948         PR rtl-optimization/34400
21949         * df-core.c (df_worklist_dataflow_overeager,
21950         df_worklist_dataflow_doublequeue): New functions.
21951         (df_worklist_dataflow): Two different worklist solvers.
21952         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
21953         New param.
21954
21955 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
21956
21957         PR testsuite/34821
21958         * doc/invoke.texi: Document the dependence on pthread for fopenmp
21959         and ftree-parallelize-loops.
21960
21961 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
21962
21963         PR rtl-optimization/34826
21964         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
21965
21966 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
21967
21968         * global.c (find_reg): Mark the eh regs as used if necessary.
21969         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
21970         * ra.h (struct allocno): no_eh_reg field added.  Changed
21971         no_stack_reg type to bitfield.
21972
21973 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
21974
21975         * tree.c (substitute_in_expr): Add missing 'break'.
21976
21977 2008-01-17  Richard Guenther  <rguenther@suse.de>
21978
21979         PR tree-optimization/34825
21980         * tree-ssa-math-opts.c (is_division_by): Do not recognize
21981         x / x as division to handle.
21982
21983 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21984
21985         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
21986         "-pthread" is specified.
21987         * pa-hpux11.h (LIB_SPEC): Likewise.
21988
21989 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
21990             Peter Bergner  <bergner@vnet.ibm.com>
21991
21992         PR rtl-optimization/33796
21993         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
21994
21995 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21996
21997         PR libgfortran/34699
21998         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
21999         static links.
22000         * pa-hpux10.h (LINK_SPEC): Likewise.
22001         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
22002
22003 2008-01-16  Richard Guenther  <rguenther@suse.de>
22004
22005         PR middle-end/32628
22006         * fold-const.c (fold_convert_const_int_from_int): Do not
22007         set overflow if that occured only because of a sign extension
22008         change when converting from/to a sizetype with the same
22009         precision and signedness.
22010
22011 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
22012
22013         PR debug/34249
22014         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
22015         location address to the correct place.  Update copyright year.
22016
22017 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22018
22019         * lambda-code.c (lambda_transform_legal_p): Handle the case of
22020         no dependences in the dependence_relations vector.
22021
22022 2008-01-16  Jan Hubicka  <jh@suse.cz>
22023
22024         PR rtl-optimization/31396
22025         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
22026         * cfg.c (dump_reg_info): Print it.
22027         * regs.h (struct reg_info_t): add freq_calls_crossed.
22028         (REG_FREQ_CALLS_CROSSED): New macro.
22029         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
22030         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
22031         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
22032         regmove_optimize): Update call crossed frequencies.
22033         * local-alloc.c (struct qty): Add freq_calls_crossed.
22034         (alloc_qty): Copute freq_calls_crossed.
22035         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
22036         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
22037         * ra.h (struct allocno): Add freq_calls_crossed.
22038
22039 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22040
22041         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
22042         libgomp when compiling with ftree-parallelize-loops.
22043         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
22044
22045 2008-01-16  Richard Guenther  <rguenther@suse.de>
22046
22047         PR tree-optimization/34769
22048         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
22049         * tree.c (int_cst_value): Instead make this function more
22050         permissive in what it accepts as valid input.  Document this
22051         function always sign-extends the value.
22052
22053 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
22054             Richard Guenther  <rguenther@suse.de>
22055
22056         PR c/34668
22057         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
22058         (gimple_fold_indirect_ref_rhs): ... this.
22059         (gimple_fold_indirect_ref): New function with foldings
22060         that preserve lvalueness.
22061         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
22062         * tree-flow.h (gimple_fold_indirect_ref): Declare.
22063         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
22064         to fold an INDIRECT_REF, fall back to the old use of
22065         fold_indirect_ref_1.
22066
22067 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22068
22069         * tree-data-ref.c (subscript_dependence_tester_1): Call
22070         free_conflict_function.
22071         (compute_self_dependence): Same.
22072
22073 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
22074
22075         PR debug/34249
22076         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
22077         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
22078         function global.
22079         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
22080         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
22081         for DWARF2_UNWIND_INFO targets.
22082
22083 2008-01-16  Richard Guenther  <rguenther@suse.de>
22084
22085         PR c/34768
22086         * c-typeck.c (common_pointer_type): Do not merge inconsistent
22087         type qualifiers for function types.
22088
22089 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
22090
22091         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
22092         loop_iterator li from previous commit.
22093
22094 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
22095
22096         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
22097
22098 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
22099
22100         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
22101         (parallelize_loops): Don't parallelize irreducible components.
22102
22103 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22104
22105         PR c++/24924
22106         * c-opts (c_common_post_options): Do not enable CPP
22107         flag_pedantic_errors by default.
22108
22109 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
22110
22111         PR rtl-optimization/31944
22112         * cse.c (remove_pseudo_from_table): New function.
22113         (merge_equiv_classes): Use above function to remove pseudo-registers.
22114         (invalidate): Likewise.
22115
22116 2008-01-13  Richard Guenther  <rguenther@suse.de>
22117
22118         PR middle-end/34601
22119         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
22120         instead of TYPE_MODE to deal with calls from expand_one_error_var.
22121
22122 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
22123
22124         * gcse.c (cprop_jump): Call validate_unshare_change instead of
22125         validate_change to unshare the source of the PC set.
22126
22127 2008-01-12  Jan Hubicka  <jh@suse.cz>
22128
22129         PR middle-end/32135
22130         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
22131         references above array bounds.  This might trigger bounds checks for
22132         pointers to arrays.
22133
22134 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
22135
22136         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
22137         new_replaceable_dependencies.
22138
22139 2008-01-12  Doug Kwan  <dougkwan@google.com>
22140
22141         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
22142         instead of OPT_Wreturn_type in warning due to ignored return type
22143         qualifiers.
22144         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
22145         options included in -Wextra.
22146         * c.opt: New option -Wignored_qualifiers.
22147         * doc/invoke.texi (Warning Options, -Wextra): Add new option
22148         -Wignore_qualifiers.
22149         (-Wignored-qualifiers): Document.
22150         (-Wreturn-type): Remove description of functionality now handled
22151         by -Wignored-qualifiers.
22152
22153 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
22154
22155         PR ada/33788
22156         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
22157         NOP_EXPR if it is between integral types with the same precision.
22158
22159 2008-01-12  Jan Hubicka  <jh@suse.cz>
22160
22161         PR other/28023
22162         * invoke.texi (max-inline-recursive-depth): Fix default value.
22163
22164 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
22165
22166         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
22167         correct type.
22168
22169 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
22170
22171         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22172
22173 2008-01-11  James E. Wilson  <wilson@specifix.com>
22174
22175         PR target/26015
22176         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
22177
22178 2008-01-11  Anatoly Sokolov <aesok@post.ru>
22179
22180         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
22181         save/restore frame pointer register and don't use 'call-prologues'
22182         optimization in function with "OS_task" attribute.
22183
22184 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
22185
22186         PR middle-end/31309
22187         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
22188         when copying to memory.
22189
22190 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
22191
22192         PR rtl-optimization/30905
22193         * cfgcleanup.c: Include dce.h
22194         (crossjumps_occured): New global variable.
22195         (try_crossjump_bb): Exit loop after finding a fallthru edge.
22196         If something changed, set crossjumps_occured to true.
22197         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
22198         Don't add/remove fake edges to exit here...
22199         (cleanup_cfg): ...but do it here, when crossjumping.
22200         Run a fast DCE when successful crossjumps occured in the latest
22201         iteration of try_optimize_cfg.
22202
22203 2008-01-11  Richard Guenther  <rguenther@suse.de>
22204
22205         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
22206         (struct vn_unary_op_s): Likewise.
22207         (vn_reference_insert): Free old reference on hash collision.
22208
22209 2008-01-10  Raksit Ashok  <raksit@google.com>
22210
22211         PR rtl-optimization/27971
22212         * combine.c (find_split_point): Split PLUS expressions which are
22213         inside a MEM rtx, and whose first operand is complex.
22214
22215 2008-01-10  DJ Delorie  <dj@redhat.com>
22216
22217         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
22218         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
22219         (m32c_hard_regno_ok): Call the underlying function.
22220
22221 2008-01-10  Richard Guenther  <rguenther@suse.de>
22222
22223         PR middle-end/34683
22224         * tree-cfg.c (tree_merge_blocks): Do not go through the
22225         full-blown folding and stmt updating path if we just deal
22226         with virtual operands.
22227         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
22228         test for abnormal SSA_NAMEs.
22229
22230 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
22231
22232         PR middle-end/34641
22233         * reload.c (push_reload): Add assertions.  All constants from
22234         reg_equiv_constant should have been used for replacing the respective
22235         pseudo earlier.
22236         (find_reloads_address): Invoke find_reloads_address_part for
22237         constant taken from the reg_equiv_constant array.
22238
22239 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
22240
22241         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
22242         field (valnum) the first in the struct.  Replace bools with
22243         unit bit fields.
22244
22245 2008-01-10  Richard Guenther  <rguenther@suse.de>
22246
22247         PR tree-optimization/34651
22248         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
22249         types and ordering for masking and converting.
22250
22251 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
22252
22253         PR tree-optimization/34017
22254         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
22255         also for PHI_NODE expressions.
22256
22257 2008-01-09  Jan Hubicka  <jh@suse.cz>
22258
22259         PR tree-optimization/34708
22260         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
22261         based on number of case labels.
22262         (init_inline_once): Remove switch_cost.
22263         * tree-inline.h (eni_weights_d): Remove switch_cost.
22264
22265 2008-01-09  Richard Guenther  <rguenther@suse.de>
22266         Andrew Pinski  <andrew_pinski@playstation.sony.com>
22267
22268         PR middle-end/30132
22269         * gimplify.c (gimplify_cond_expr): Do not create an addressable
22270         temporary if an rvalue is ok or an lvalue is not required.
22271
22272 2008-01-09  Richard Guenther  <rguenther@suse.de>
22273
22274         PR middle-end/34458
22275         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
22276         adjust return type.
22277
22278 2008-01-09  Richard Guenther  <rguenther@suse.de>
22279
22280         PR middle-end/34679
22281         * tree.c (host_integerp): Check for sizetype only if the
22282         type is an integer type.
22283
22284 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
22285
22286         PR debug/26364
22287         * opts.c (decode_options): Disable inlining of functions called
22288         once if not in unit-at-a-time mode.
22289
22290 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
22291
22292         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
22293
22294 2008-01-08  Richard Guenther  <rguenther@suse.de>
22295
22296         PR middle-end/31863
22297         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
22298         out early if the result will be unused.
22299
22300 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
22301
22302         PR target/34709
22303         Revert:
22304
22305         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
22306         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22307         for TARGET_RECIP.
22308
22309 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
22310
22311         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
22312         for vectorization tuned.
22313
22314 2008-01-08  Richard Guenther  <rguenther@suse.de>
22315
22316         PR tree-optimization/34683
22317         * tree-ssa-operands.c (operand_build_cmp): Export.
22318         * tree-ssa-operands.h (operand_build_cmp): Declare.
22319         * tree-vn.c (vuses_compare): Remove.
22320         (sort_vuses): Use operand_build_cmp.
22321         (sort_vuses_heap): Likewise.
22322         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
22323         to re-use old VEC if available.  Do not sort already sorted VUSEs.
22324         (vdefs_to_vec): Do not sort already sorted VDEFs.
22325
22326 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
22327
22328         PR middle-end/34694
22329         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
22330
22331 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
22332
22333         PR target/34702
22334         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
22335         limitations of reciprocal sequences on x86 targets.
22336
22337 2008-01-08  Richard Guenther  <rguenther@suse.de>
22338
22339         PR tree-optimization/34683
22340         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
22341
22342 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
22343
22344         PR target/34622
22345         * config/darwin.c (darwin_mergeable_string_section): Don't use
22346         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
22347
22348 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
22349
22350         PR target/34682
22351         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
22352         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
22353         predicates of op0 and op1 to register_operand.
22354         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
22355         expander using X87MODEF mode iterator.  Change predicates of
22356         op0 and op1 to register_operand.
22357         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
22358         corresponding patterns and macroize using MODEF macro.  Change
22359         predicates of op0 and op1 to register_operand and remove
22360         "m" constraint. Disparage "r" alternative with "!".
22361         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
22362         macroize using X87MODEF macro.  Change predicates of op0 and op1
22363         to register_operand and remove "m" constraint.  Disparage "r"
22364         alternative with "!".
22365         (absneg splitter with memory operands): Remove.
22366         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
22367         patterns and macroize using X87MODEF mode iterator.
22368         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
22369         Change predicate of op1 to register_operand.
22370         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
22371         for memory operands.
22372
22373 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
22374
22375         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
22376
22377 2008-01-07  Richard Guenther  <rguenther@suse.de>
22378
22379         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
22380         fields.
22381
22382 2008-01-07  Richard Guenther  <rguenther@suse.de>
22383
22384         PR tree-optimization/34683
22385         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
22386         VOPs of the needed size to save memory.  Use VEC_quick_push
22387         to save compile-time.
22388         (vdefs_to_vec): Likewise.
22389
22390 2008-01-07  Sa Liu  <saliu@de.ibm.com>
22391
22392         * config/spu/spu.md (divdf3): Genetate inline code for double
22393         division.  The implementation doesn't handle INF or NAN, therefore it
22394         only applies when -ffinite-math-only is given.
22395
22396 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
22397
22398         PR libstdc++/34680
22399         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
22400         * doc/cpp.texi ([Common Predefined Macros]): Document.
22401
22402 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
22403
22404         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
22405         order to use commutative addition instead of subtraction.
22406
22407 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22408             Mircea Namolaru  <namolaru@il.ibm.com>
22409             Vladimir Yanovsky  <yanov@il.ibm.com>
22410             Revital Eres  <eres@il.ibm.com>
22411
22412         PR tree-optimization/34263
22413         * tree-outof-ssa.c (process_single_block_loop_latch,
22414         contains_tree_r): New functions.
22415         (analyze_edges_for_bb): Call process_single_block_loop_latch
22416         function to empty single-basic-block latch block if possible.
22417
22418 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
22419
22420         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22421         for TARGET_RECIP.
22422         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
22423
22424 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
22425
22426         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
22427
22428 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
22429
22430         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
22431
22432 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
22433
22434         PR tree-optimization/34618
22435         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
22436         flag from T.
22437
22438 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
22439
22440         PR target/34673
22441         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
22442         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
22443         Update copyright year.
22444
22445         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
22446         Update copyright year.
22447         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
22448         using NR fixup.
22449
22450 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
22451
22452         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
22453         edge does not point to current bb before changing need_assert.
22454
22455 2008-01-04  Richard Guenther  <rguenther@suse.de>
22456
22457         PR middle-end/34029
22458         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
22459         for verifying purposes if they are is_gimple_min_invariant.
22460
22461 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
22462
22463         PR tree-optimization/34448
22464         PR tree-optimization/34465
22465         * gimplify.c (gimplify_init_constructor): Add new parameter
22466         notify_temp_creation.  Use it.
22467         (gimplify_modify_expr_rhs): Take volatiles into account when
22468         optimizing constructors.
22469         Do not optimize constructors if gimplify_init_constructor will dump to
22470         memory.
22471         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
22472         * gcc.c-torture/compile/pr34448.c: New.
22473
22474 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
22475
22476         PR gcov-profile/34609
22477         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
22478         return_slot if result is TREE_ADDRESSABLE.
22479
22480 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
22481
22482         * config/mips/mips.md (sqrt_condition): Tweak comment.
22483         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
22484
22485 2008-01-03  Tom Tromey  <tromey@redhat.com>
22486
22487         PR c/34457
22488         * c-common.c (c_type_hash): Handle VLAs.
22489
22490 2008-01-03  Jan Hubicka  <jh@suse.cz>
22491
22492         PR tree-optimization/31081
22493         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
22494         0 when inlining and not inlining to first basic block.
22495         (remap_decl): When var is initialized to 0, don't set default_def.
22496         (expand_call_inline): Set entry_bb.
22497         * tree-inline.h (copy_body_data): Add entry_bb.
22498
22499 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
22500
22501         PR c++/34619
22502         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
22503         before returning.
22504
22505         PR tree-optimization/29484
22506         * tree-inline.c (inline_forbidden_p_2): New function.
22507         (inline_forbidden_p): Disallow inlining if some static var
22508         has an address of a local LABEL_DECL in its initializer.
22509         * doc/extend.texi (Labels as Values): Document &&foo behaviour
22510         vs. inlining.
22511
22512 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
22513
22514         PR tree-optimization/34635
22515         * tree-data-ref.c (add_other_self_distances): Make sure that the
22516         evolution step is constant.
22517
22518 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
22519
22520         PR middle-end/34608
22521         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
22522
22523 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
22524
22525         * tree-sra.c (scalarize_init): Insert the generate_element_init
22526         statements after the generate_element_zero statements.
22527
22528 2008-01-02  Richard Guenther  <rguenther@suse.de>
22529
22530         PR middle-end/34093
22531         PR middle-end/31976
22532         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
22533         for very large number of operands instead of ICEing.
22534
22535 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
22536
22537         PR target/34013
22538         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
22539         while stack probing.
22540
22541 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
22542
22543         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
22544         in C++0x mode.
22545
22546 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
22547
22548         PR libmudflap/26442
22549         * tree-mudflap.c (mx_register_decls): Guard warning by
22550         !DECL_ARTIFICIAL check.
22551
22552 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
22553
22554         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
22555         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
22556         sse5_perm<mode>): Fix constraints.