OSDN Git Service

624f65175439e1c31aeb75c44dc75b62252c77ec
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
2
3         * c-decl.c (warn_variable_length_array): New function.
4         Refactored from grokdeclarator to handle warn_vla
5         and handle unnamed array case.
6         (grokdeclarator): Refactored VLA warning case.
7         * c.opt (Wvla): New flag.
8
9 2007-03-12  Richard Henderson  <rth@redhat.com>
10
11         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
12         (TARGET_SECTION_TYPE_FLAGS): New.
13
14 2007-03-12  Richard Henderson  <rth@redhat.com>
15
16         * config/darwin.c (machopic_reloc_rw_mask): New.
17         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
18         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
19
20 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
21
22         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
23         * cppdefault.h (cpp_PREFIX): Document.
24         (cpp_PREFIX_len): Likewise.
25         (cpp_EXEC_PREFIX): New variable.
26         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
27         * c-incpath.c (add_standard_paths): Correct logic for relocating
28         paths within prefix.
29
30 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
31
32         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
33         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
34         mode macro.
35         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
36         fix_truncdfdi_sse using SSEMODEF mode macro.
37         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
38         fix_truncdfsi_sse using SSEMODEF mode macro.
39         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
40         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
41
42 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
43
44         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
45         elfos.h to tm_file.
46
47 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
48   
49         * tree.h : Add multiple_of_p declaration.
50         * fold-const.c (multiple_of_p): Make multiple_of_p public. 
51         * ipa-type-escape.c (results_of_malloc): Redundant.
52         (visited_stmts): New. Visited stmt for walk_use_def_chains.
53         (cast_type): Extended with new members.
54         (check_cast): Returns cast_type.
55         (cast): New structure for data of walk_use_def_chains.
56         (is_malloc_result, is_cast_from_non_pointer_1,
57         is_cast_from_non_pointer, 
58         is_array_access_through_pointer_and_index): New functions.
59         (look_for_casts): Returns cast types.
60         (check_call): Returns void.
61         (okay_pointer_operation): Use support of pointer plus index,
62         pointer plus constant and allow all multiplications.
63         
64 2007-03-11  Richard Guenther  <rguenther@suse.de>
65
66         PR tree-optimization/31115
67         * tree-vrp.c (extract_range_from_binary_expr): Make sure
68         the shift count is positive and non-anti-range for RSHIFT_EXPR.
69         A shift count of zero is not special as with *_DIV_EXPR.
70         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
71         direction.
72
73 2007-03-11  Ian Lance Taylor  <iant@google.com>
74
75         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
76         the *_DIV_EXPR codes correctly with overflow infinities.
77
78 2007-03-11  Ira Rosen  <irar@il.ibm.com>
79
80         * tree-data-ref.c (analyze_offset): Add a return value (bool) to 
81         indicate success/failure of the analysis. Add negation to subtrahend
82         in case of subtraction. Fail if both operands contain constants.
83         (create_data_ref): Fail if analyze_offset fails.
84
85 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
86
87         * config/i386/i386.md (frndintxf2): Rename to ...
88         (rintxf2): ... this. Remove expander having same name.
89         (rintsf2, rintdf2): Implement using SSEMODEF macro.
90         (roundsf2, rounddf2): Ditto.
91         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
92         (lround<mode>di2, lround<mode>si2): Ditto.
93
94 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
95
96         * lower-subreg.c: Include except.h.
97         (decompose_multiword_subregs): Verify that the only control flow
98         insns we can split are loads to multi-words pseudos.
99         Handle breaking such blocks after splitting, instead of calling
100         find_many_sub_basic_blocks.
101
102         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
103         on the new basic block.  Add a lengthy comment explaining why we
104         thought this was necessary.
105         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
106
107 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
108
109         PR c++/30924
110         * tree.c (walk_type_fields): Recurse into the element type of
111         ARRAY_TYPEs if there is a pointer set.
112
113 2007-03-10  Dirk Mueller  <dmueller@suse.de>
114
115         * c-common.c (warn_logical_operator): Fix condition.
116
117 2007-03-10  Tobias Schl├╝ter  <tobi@gcc.gnu.org>
118
119         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
120         quotation mark.
121         * config/darwin.c (machopic_select_section): Remove superfluous
122         argument in call to categorize_decl_for_section.  Remove unused
123         variable shlib.
124
125 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
126
127         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
128         defined.
129         * configure: Regenerate.
130
131 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
132
133         PR target/31101
134         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
135         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
136         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
137         Add LABEL_NUSES to emitted label.
138         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
139         branch probability value to emitted jump insn.
140         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
141         Do not check life information and do not re-arrange input operands
142         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
143
144 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
145
146         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
147         the change of decode_asm_operands.
148
149 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
150
151         * mode-switching.c (create_pre_exit): Skip blockage insn.
152
153 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
154
155         * tree-pass.h (TODO_update_smt_usage): Remove.
156         Update all users.
157         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
158         argument SOME.
159         Update all users.
160
161 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
162
163         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
164         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
165         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
166         SOM target.
167
168 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
169
170         * gcc.c: Document %{, in big comment at top.
171         (input_suffix_matches): Remove special handling for .s and
172         .S.
173         (input_spec_matches): New.
174         (handle_braces): Handle %{,.
175         (validate_switches): ',' indicates a value which is not a switch.
176         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
177         to detect assembler input.
178         * config/i386/sol2.h (CPP_SPEC): Likewise.
179         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
180         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
181         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
182         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
183         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
184         -m64 causes deployment target to default to 10.5.
185         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
186
187 2007-03-09  Richard Henderson  <rth@redhat.com>
188
189         PR target/26090
190         * target.h (targetm.asm.out.reloc_rw_mask): New.
191         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
192         (TARGET_ASM_OUT): Use it.
193         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
194         * varasm.c (categorize_decl_for_section): Remove shlib argument;
195         use the new reloc_rw_mask target hook instead.
196         (default_section_type_flags_1): Merge into...
197         (default_section_type_flags): ... here.
198         (decl_readonly_section_1): Merge into...
199         (decl_readonly_section): ... here.
200         (default_elf_select_section_1): Merge into...
201         (default_elf_select_section): ... here.
202         (default_unique_section_1): Merge into...
203         (default_unique_section): ... here.
204         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
205         (default_select_rtx_section): Use it.
206         (default_elf_select_rtx_section): Likewise.
207         * output.h: Update to match.
208         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
209         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
210         (TARGET_ASM_RELOC_RW_MASK): New.
211         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
212         to categorize_decl_for_section.
213         (x86_64_elf_unique_section): Likewise.
214         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
215         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
216         (TARGET_ASM_RELOC_RW_MASK): New.
217         * config/ia64/ia64.c (ia64_rwreloc_select_section,
218         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
219         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
220         (TARGET_RWRELOC): Remove.
221         (ia64_section_type_flags): Adjust call to default_section_type_flags.
222         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
223         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
224         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
225         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
226         (rs6000_xcoff_select_section): Use decl_readonly_section.
227         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
228         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
229         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
230         (TARGET_SECTION_TYPE_FLAGS): Remove.
231         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
232
233 2007-03-09  Roger Sayle  <roger@eyesopen.com>
234
235         * fold-const.c (fold_comparison): Remove compile-time evaluation of
236         complex constant equality/inequality comparisons for here.
237         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
238         known at compile-time or can be simplified to a scalar comparison.
239         (fold_relational_const): Move compile-time evaluation of complex
240         constant equality/inequality comparisons to here.
241
242 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
243
244         PR rtl-optimization/30643
245         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
246         dest_addr_elt.
247         (fold_rtx): Recurse, like before 2006-11-03.
248
249 2007-03-09  DJ Delorie  <dj@redhat.com>
250
251         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
252         m32c-pragma.o.
253
254 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
255
256         PR tree-optimization/30375
257         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
258         LHS of statements is not the same.
259         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
260
261 2007-03-09  Chao-ying Fu  <fu@mips.com>
262
263         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
264         REV 2.
265         * doc/invoke.texi (-mdspr2): Document new option.
266         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
267         New unspec for DSP REV 2.
268         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
269         these instructions are extended in DSP REV 2.
270         (mips-dspr2.md): Include.
271         * config/mips/mips.opt (mdspr2): New option.
272         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
273         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
274         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
275         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
276         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
277         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
278         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
279         and 2 builtins.
280         (bdesc_map): Add one field of unsupported_target_flags.
281         (bdesc_arrays):  Update entries to have extra fields.  Add
282         dsp_32only_bdesc.
283         (mips_init_builtins): Initialize new function types.
284         Check unsupported_target_fileds to filter out builtins.
285         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
286         TARGET_DSPR2.
287         (ASM_SPEC): Pass mdspr2 to the assembler.
288         * config/mips/mips-dspr2.md: New file.
289
290 2007-03-09  Sa Liu  <saliu@de.ibm.com>
291
292         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
293
294 2007-03-09  Ian Lance Taylor  <iant@google.com>
295
296         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
297         argument) like -Wstrict-overflow=2.
298         * doc/invoke.texi (Warning Options): Update documentation.
299
300 2007-03-09  Dirk Mueller  <dmueller@suse.de>
301
302         PR c++/17946
303         * doc/invoke.texi (-Wlogical-op): Document.
304         * common.opt (-Wlogical-op): New.
305         * c-common.h (warn_logical_operator): Declare.
306         * c-common.c (warn_logical_operator): Define.
307         * c-typeck.c (parser_build_binary_op): Call
308         warn_logical_operator.
309
310 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
311
312         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
313         * final.c (final_scan_insn): Test for non-"" file name.
314
315 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
316
317         * doc/loop.texi: Document the Omega linear constraints solver.
318         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
319         omega-max-geqs, omega-max-eqs, omega-max-wild-cards, 
320         omega-hash-table-size, omega-max-keys, and 
321         omega-eliminate-redundant-constraints.
322         * tree-pass.h (pass_check_data_deps): Declared.
323         * omega.c: New.
324         * omega.h: New.
325         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
326         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps, 
327         pass_check_data_deps): New.
328         * tree-data-ref.c (init_data_ref): Remove declaration.
329         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
330         (analyze_array): Renamed init_array_ref, move up initializations.
331         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
332         Removed arguments that are set to NULL.
333         (analyze_indirect_ref): Correct indentation, correct call to 
334         init_pointer_ref.
335         (object_analysis): Call init_array_ref instead of analyze_array.
336         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
337         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
338         of DR_ACCESS_FNS_ADDR.
339         (init_omega_eq_with_af, omega_extract_distance_vectors, 
340         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
341         ddr_consistent_p): New.
342         (compute_affine_dependence): Check consistency of ddrs when 
343         flag_check_data_deps is passed.
344         (analyze_all_data_dependences): Uncomment.
345         (tree_check_data_deps): New.
346         * tree-data-ref.h: Include omega.h.
347         (DR_ACCESS_FNS_ADDR): Removed.
348         (data_dependence_relation): Add inner_loop.
349         (DDR_INNER_LOOP): New.
350         * common.opt (fcheck-data-deps): New.
351         * tree-flow.h (tree_check_data_deps): Declare.
352         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
353         (OBJS-common): Depend on omega.o.
354         (omega.o): Define.
355         * passes.c (pass_check_data_deps): Scheduled.
356         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, 
357         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
358         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
359         PARAM_VECT_MAX_VERSION_CHECKS,
360         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
361
362 2007-03-09  Richard Guenther  <rguenther@suse.de>
363
364         PR tree-optimization/30904
365         PR middle-end/31058
366         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
367         the same way as *_DIV_EXPR.
368
369 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
370
371         * recog.c (decode_asm_operands): No mixed declarations and code.
372
373 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
374
375         * rtl.def (ASM_INPUT): Add location.
376         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
377         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
378         (decode_asm_operands): Add loc operand.
379         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
380         * stmt.c (expand_asm): Rename to...
381         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
382         gen_rtx_ASM_INPUT_loc.
383         (expand_asm_expr): Adjust.
384         * recog.c (decode_asm_operands): Add loc operand.
385         (check_asm_operands, extract_insn): Adjust.
386         * reload1.c (maybe_fix_stack_asms): Likewise.
387         * final.c (asm_insn_count): Likewise.
388         (final_scan_insn): Output # line before and after asm.
389
390 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
391
392         * tree-ssa-structalias.c (variable_info): Remove
393         finished_solution.
394         (new_var_info): Ditto.
395         (shared_bitmap_info_t): New structure.
396         (shared_bitmap_table): New variable.
397         (shared_bitmap_hash): New function.
398         (shared_bitmap_eq): Ditto
399         (shared_bitmap_lookup): Ditto.
400         (shared_bitmap_add): Ditto.
401         (merge_smts_into): Change to take bitmap directly.
402         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
403         (init_alias_vars): Init shared bitmap hashtable.
404         (delete_points_to_sets): Delete shared bitmap hashtable.
405         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
406         is_aliased removal as a change that was still necessary was
407         deleted.
408
409 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
410
411         * config/i386/i386.h (override_options): Conditionally disable
412         x86_sahf for 64bit targets only.
413
414 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
415
416         PR C/31072
417         * c-decl.c (merge_decls): Don't call make_var_volatile.
418         * varasm.c (make_var_volatile): Remove.
419         * output.h (make_var_volatile): Remove.
420
421 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
422
423         PR tree-optimization/31085
424         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
425
426 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
427
428         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
429         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
430         ATTR_CONST_NOTHROW_LIST.
431         
432         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
433         FIX_TRUNC_EXPR.
434
435 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
436
437         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
438
439 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
440
441         PR 31013
442         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
443         is declared.
444         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
445         passed, use shared libgcc.
446
447 2007-03-08  Roger Sayle  <roger@eyesopen.com>
448
449         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
450         instead of calling build2 with a GIMPLE_MODIFY_STMT.
451         (honor_protect_cleanup_actions, lower_try_finally_switch):
452         Likewise.
453         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
454         ifc_temp_var): Likewise.
455         * tree-inline.c (setup_one_parameter): Likewise.
456         * tree-mudflap.c (mf_decl_cache_locals,
457         mf_build_check_statement_for): Likewise.
458         * tree-nested.c (init_tmp_var, save_tmp_var,
459         finalize_nesting_tree_1): Likewise.
460         * tree-outof-ssa.c (insert_copy_on_edge,
461         insert_backedge_copies): Likewise.
462         * tree-profile.c (tree_gen_edge_profiler,
463         tree_gen_ic_profiler): Likewise.
464         * tree-scalar-evolution.c (scev_const_prop): Likewise.
465         * tree-sra.c (sra_build_assignment): Likewise.
466         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
467         * tree-ssa-math-opts.c (insert_reciprocals,
468         execute_cse_sincos_1): Likewise.
469         * tree-tailcall.c (adjust_accumulator_values,
470         adjust_return_value): Likewise.
471         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
472         * tree-vect-transform.c (vect_create_data_ref_ptr,
473         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
474         vect_create_epilog_for_reduction, vectorizable_reduction,
475         vectorizable_call, vectorizable_conversion,
476         vectorizable_assignment, vectorizable_operation,
477         vectorizable_type_demotion, vect_gen_widened_results_half,
478         vect_permute_store_chain, vectorizable_store,
479         vect_setup_realignment, vect_permute_load_chain,
480         vectorizable_load, vectorizable_condition,
481         vect_create_cond_for_align_checks): Likewise.
482         * tree-vrp.c (build_assert_expr_for): Likewise.
483
484 2007-03-08  Ian Lance Taylor  <iant@google.com>
485
486         * tree-vrp.c: Include "intl.h".
487         (usable_range_p): New static function.
488         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
489         overflowed values, juts set *strict_overflow_p.
490         (compare_values): Only return -2 if one of the operands is not a
491         constant.
492         (compare_ranges): Call usable_range_p.
493         (compare_range_with_value): Likewise.
494         (vrp_evaluate_conditional_warnv): Rename from
495         vrp_evaluate_conditional.  Make static.  Change all callers.
496         (vrp_evaluate_conditional): New function.
497         (simplify_div_or_mod_using_ranges): Issue warning about reliance
498         on signed overflow.
499         (simplify_abs_using_ranges): Likewise.
500         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
501         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
502         within_stmt parameter.
503         * tree-ssa-propagate.c (fold_predicate_in): Update call to
504         vrp_evaluate_conditional.
505         * tree-ssa-threadedge.c
506         (record_temporary_equivalences_from_stmts_at_dest): Change
507         simplify parameter to take a second tree parameter.
508         (simplify_control_stmt_condition): Likewise.
509         (thread_across_edge): Likewise.
510         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
511         (thread_across_edge): Likewise.
512         * gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
513
514 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
515
516         * config/i386/i386.h (TARGET_SAHF): New define.
517         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
518         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
519         (x86_sahf): New global variable.
520         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
521         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
522         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
523         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
524         for 64-bit.
525         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
526         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
527         when expanding fcomi/sahf based tests.
528         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
529         expanding sahf based alternative. Emit sahf based sequence when
530         optimizing for code size.
531         * config/i386/i386.md (x86_sahf_1): Do not disable for
532         TARGET_64BIT, enable for TARGET_SAHF. 
533
534 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
535
536         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
537         spurious whitespace from error message.
538
539 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
540
541         PR c++/30852
542         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
543
544 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
545
546         * c-decl.c (grokdeclarator): Disable warnings for anonymous
547         bitfields.
548         * tree-sra.c (instantiate_element): Propagate disabled warnings
549         from the element itself to the created variable.
550
551 2007-03-07  Richard Henderson  <rth@redhat.com>
552
553         PR target/30848
554         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
555         silently fix up the stack in the case of a missing register.
556
557 2007-03-07  Paul Brook  <paul@codesourcery.com>
558
559         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
560
561 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
562
563         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
564         New.
565         (phase1_vrs): Use them.
566         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
567         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
568         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
569         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
570         __gnu_Unwind_Restore_WMMXC if required.
571         (_Unwind_VRS_Pop): Implement iWMMXt support.
572         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
573         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
574         gnu_Unwind_Save_WMMXC): Define.
575
576 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
577
578         * config/vxworks.h (vxworks_override_options): Declare.
579         (VXWORKS_OVERRIDE_OPTIONS): Use it.
580         * config/vxworks.c: Include target.h and toplev.h.
581         (vxworks_override_options): New function.
582         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
583
584 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
585
586         * config/s390/s390.c (override_options): Don't emit an error when
587         -mstack-size is used without providing -mstack-guard.
588         (s390_emit_prologue): Choose stack_guard value automatically if not
589         provided via command line.
590         * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
591
592 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
593
594         * config/i386/i386.c (output_set_got): Add a GOT initialization
595         sequence for VxWorks PIC.
596         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
597         around labels as well as symbols.  Use gotoff_operand instead
598         of local_symbolic_operand.
599         (legitimize_pic_address): Use gotoff_operand instead of
600         local_symbolic_operand.  Use @GOT accesses for labels as
601         well as symbols.
602         (ix86_output_addr_diff_elt): Use PC-relative rather than
603         GP-relative offsets for VxWorks PIC.
604         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
605         no_new_pseudos.  Check whether the returned register is op0.
606         * config/i386/i386.md (tablejump): Use PC-relative rather than
607         GP-relative offsets for VxWorks PIC.
608         * config/i386/predicates.md (gotoff_operand): New predicate.
609
610 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
611
612         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
613         before defining.
614         * config/vxworks-dummy.h: New file.
615         * config/i386/i386.h: Include it.
616
617 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
618
619         * dwarf2out.c (is_inlined_entry_point): New
620         (add_high_low_attributes): Emit DW_AT_entry_pc along with
621         DW_AT_ranges if the first subblock is the entry point.
622
623 2007-03-06  David Daney  <ddaney@avtrex.com>
624
625         * doc/install.texi (mips-*-*): Change recommended binutils
626         version.
627
628 2007-03-06  Anatoly Sokolov <aesok@post.ru>
629
630         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
631         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 
632         devices.
633         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
634         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
635
636 2007-03-06  Jan Hubicka  <jh@suse.cz>
637
638         * errors.h (warning, error, fatal, internal_error): Mark as cold.
639         * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
640         are hot.
641         (probably_cold_bb_p): Cold functions are cold.
642         (probably_never_executed_bb_p): Cold functions are cold.
643         (tree_bb_level_predictions): Predict calls to cold functions as not
644         taken.
645         (compute_function_frequency): Check hot/cold attributes.
646         * function.h (function_frequency): Update comments.
647         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
648         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
649         (c_common_att): Add cold and hot.
650
651         * doc/extend.texi (hot,cold attributes): Document.
652
653 2007-03-06  Andrew Haley  <aph@redhat.com>
654
655         * function.c (expand_function_end): Move blockage to just after we
656         emit the label for the naked return from the function.
657
658 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
659
660         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
661         before redefining.
662
663 2007-03-06  Jan Hubicka  <jh@suse.cz>
664
665         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
666         loaded for constant large models.  Non-large 64bit PIC can do.
667         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
668         * cmodel.h: Add LARGE PIC.
669         * i386.md (UNSPEC_PLTOFF): New.
670         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
671         needed.
672         (*call_1_rex64): Disable for large models.
673         (*call_1_rex64_large): New.
674         (*call_value_1_rex64): Disable for large models.
675         (*call_value_1_rex64_large): New.
676         (set_rip_rex4): New.
677         (set_got_offset_rex64): New.
678         * predicates.md (constant_call_address_operand): For large model
679         constant calls are not possible.
680         * i386-protos.h (construct_plt_address): Declare.
681         * i386.c (override_options): Accept large models.
682         (ix86_expand_prologue): Expand large PIC GOT pointer load.
683         (legitimate_constant_p): Add new UNSPECs.
684         (legitimate_pic_operand_p): Likewise.
685         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
686         (legitimize_pic_address): Do easy RIP relative way for TLS only for
687         non-large model.
688         (output_pic_addr_const): Add PLTOFF.
689         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
690         (ix86_expand_move): Legitimize pic address when in PIC mode.
691         (construct_plt_address): New function.
692         (ix86_expand_call): Offload the address to register and use GOT pointer
693         for large model.
694         * invoke.texi (mcmodel=large): Update documentation.
695
696 2007-03-06  Richard Henderson  <rth@redhat.com>
697
698         * config/i386/i386.c (x86_use_leave, x86_push_memory,
699         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
700         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
701         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
702         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
703         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
704         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix, 
705         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
706         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
707         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, 
708         x86_partial_reg_dependency, x86_memory_mismatch_stall, 
709         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
710         x86_sse_partial_reg_dependency, x86_sse_split_regs, 
711         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
712         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
713         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
714         x86_schedule, x86_use_bt, x86_pad_returns,
715         x86_use_xchgb): Merge into ...
716         (ix86_tune_features): ... here.  New array.
717         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
718         x86_bswap): Merge into ...
719         (ix86_arch_features): ... here.  New array.
720         (x86_3dnow_a): Remove.
721         (x86_accumulate_outgoing_args): Make static.
722         (x86_arch_always_fancy_math_387): Make static.
723         (ix86_tune_mask, ix86_arch_mask): Move ...
724         (override_options): ... to local variables here.  Apply the
725         appropriate mask to each element of ix86_arch_features and
726         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
727         as were done in the old macros.
728         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
729         * config/i386/i386.h (x86_use_leave, x86_push_memory,
730         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
731         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
732         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
733         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
734         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
735         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
736         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
737         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
738         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
739         x86_partial_reg_dependency, x86_memory_mismatch_stall,
740         x86_accumulate_outgoing_args, x86_prologue_using_move,
741         x86_epilogue_using_move, x86_decompose_lea,
742         x86_arch_always_fancy_math_387, x86_shift1,
743         x86_sse_partial_reg_dependency, x86_sse_split_regs,
744         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,        
745         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
746         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
747         x86_use_incdec, x86_pad_returns, x86_bswap,
748         x86_partial_flag_reg_stall): Remove.
749         (enum ix86_tune_indices): New.
750         (ix86_tune_features): New.
751         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
752         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
753         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
754         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
755         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
756         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
757         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
758         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
759         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
760         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
761         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
762         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
763         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
764         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
765         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
766         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
767         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
768         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
769         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
770         TARGET_EXT_80387_CONSTANTS): Use it.
771         (enum ix86_arch_indices): New.
772         (ix86_arch_features): New.
773         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
774         TARGET_BSWAP): Use it.
775         (ix86_tune_mask, ix86_arch_mask): Remove.
776
777 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
778
779         PR bootstrap/31020
780         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
781         Define using $${sysroot_headers_suffix}.
782         * configure: Regenerate.
783         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
784         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
785         defined.
786         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
787         * gcc.c (print_sysroot_headers_suffix): New.
788         (option_map): Include --print-sysroot-headers-suffix.
789         (display_help): Mention -print-sysroot-headers-suffix.
790         (process_command): Handle -print-sysroot-headers-suffix.
791         (do_spec_1): Append multilib directory to include-fixed path if
792         sysroot suffixes in use.
793         (main): Handle -print-sysroot-headers-suffix.
794         * Makefile.in (start.encap): Don't depend on xlimits.h
795         (xlimits.h): Remove.
796         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
797         limits.h for each multilib in fixinc_list.
798         (fixinc_list, s-fixinc_list): New.
799         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
800         generate them for each multilib in fixinc_list.
801         (stmp-fixproto): Use include-fixed.  Run fixproto for each
802         multilib in fixinc_list.
803         (mostlyclean): Don't remove xlimits.h.
804         (clean): Remove include-fixed.
805         (real-install-headers-tar, real-install-headers-cpio,
806         real-install-headers-cp): Don't copy include, only include-fixed.
807         (install-mkheaders): Depend on fixinc_list.  Don't depend on
808         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
809         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
810         SYSTEM_HEADER_DIR setting in mkheaders.conf.
811
812 2007-03-06  Jan Hubicka  <jh@suse.cz>
813
814         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
815         NANs easilly.
816
817 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
818
819         * configure.ac: Allow tm_file to contain build-directory files.
820         * configure: Regenerate.
821         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
822         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
823         * config/m68k/print-sysroot-suffix.sh: New file.
824
825 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
826
827         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
828         of pic_offset_table_rtx if reload_completed.
829         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
830         PIC_OFFSET_TABLE_REGNUM.
831         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
832         return true.
833         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
834         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
835
836 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
837
838         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
839         functions that call eh_return.
840
841 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
842
843         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
844         functions that need a constant pool.
845
846 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
847
848         PR target/28181
849         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
850         (m68k_preferred_reload_class): Likewise.
851         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
852         (SECONDARY_RELOAD_CLASS): Define.
853         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
854         (LIMIT_RELOAD_CLASS): Delete.
855         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
856         registers from storing bytes.
857         (m68k_secondary_reload_class): New function.
858         (m68k_preferred_reload_class): Likewise.
859
860 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
861
862         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
863         leaf functions.
864         (m68k_expand_prologue): Likewise.
865
866 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
867
868         * config/m68k/m68k-protos.h (output_sibcall): Declare.
869         (mips_expand_epilogue): Add a bool parameter.
870         (m68k_legitimize_sibcall_address): Declare.
871         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
872         (m68k_expand_epilogue): Add a parameter to select between sibling
873         and normal epilogues.  Only generate a return for the latter.
874         (m68k_ok_for_sibcall_p): New function.
875         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
876         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
877         (sibcall_value, *sibcall_value): Likewise.
878         (*call, *call_value): Require !SIBLING_CALL_P.
879         (epilogue): Update call to m68k_expand_epilogue.
880         (sibcall_epilogue): New pattern.
881         * config/m68k/predicates.md (const_call_operand): Say that this
882         predicate applies to sibling calls too.
883         (sibcall_operand): New predicate.
884
885 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
886
887         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
888         alternatives as movsi_cf.
889         (movsf_cf_hard): Add commentary.
890
891 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
892             Richard Sandiford  <richard@codesourcery.com>
893
894         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
895         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
896         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
897         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
898         as being live on exit from an interrupt function.
899         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
900         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
901         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
902         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
903         (m68k_interrupt_function_p): Globalize.
904         (m68k_compute_frame_layout): Remove reverse mask code.
905         (m68k_emit_movem, m68k_set_frame_related): New functions.
906         (m68k_output_function_prologue): Delete in favor of...
907         (m68k_expand_prologue): ...this new function.
908         (m68k_output_function_epilogue): Delete in favor of...
909         (m68k_expand_epilogue): ...this new function.
910         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
911         functions.
912         (print_operand): Handle %?.
913         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
914         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
915         (prologue, epilogue): New patterns.
916         (return): Turn into a define_expand.
917         (*return): New pattern, derived from old "return" pattern.  Use rte
918         rather than rts for interrupt functions.  Only use rtd if the pop
919         count is nonzero.
920         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
921         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
922         (link, *link, unlink, *unlink, load_got): Likewise.
923
924 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
925
926         PR target/23482
927         PR target/17114
928         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
929         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
930         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
931         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
932         and m68k_matches_u_p.
933         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
934         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
935         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
936         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
937         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
938         (REG_STRICT_P): New macro.
939         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
940         PCREL_GENERAL_OPERAND_OK.
941         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
942         m68k_legitimate_base_reg_p.
943         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
944         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
945         (PIC_CASE_VECTOR_ADDRESS): Update comment.
946         * config/m68k/m68k.c (m68k_address): New structure.
947         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
948         (m68k_decompose_index, m68k_legitimate_constant_address_p)
949         (m68k_jump_table_ref_p, m68k_decompose_address)
950         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
951         (m68k_matches_u_p): New functions.
952         (print_operand_address): Rewrite to use m68k_decompose_index.
953
954 2007-03-05  David Taylor  <dtaylor@emc.com>
955
956         * gcc.c: Correct copyright date in --version output.
957
958 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
959
960         * pa.md: In unamed move patterns, disparge copies between general
961         and floating point registers using '?' modifier.  Don't include 'f'
962         constraint for register preferences in DImode, SImode, HImode and
963         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
964         Remove constraints for copies between general and floating registers
965         in soft-float DFmode pattern.
966         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
967         floating register.
968         (movsf): Likewise. 
969
970 2007-03-05  Mike Stump  <mrs@apple.com>
971
972         * c-common.c (targetcm): Add.
973         * c-opts.c (c_common_handle_option): Handle language specific
974         target options.
975         * opts.c (handle_option): Verify language for target options, if
976         any are given.
977         * opth-gen.awk: Add CL_LANG_ALL.
978         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
979         (TARGETCM_INITIALIZER): Add.
980         * target.h (struct gcc_targetcm): Add.
981         (targetcm): Add.
982         * targhooks.c (default_handle_c_option): Add.
983         * targhooks.h (default_handle_c_option): Add.
984         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
985
986         * config/darwin.opt (iframework): Add.
987         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
988         * config/darwin-c.c (handle_c_option): Add.
989         (TARGET_HANDLE_C_OPTION): Add.
990         (targetcm): Add.
991         * doc/invoke.texi (Darwin Options): Add -iframework.
992
993 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
994
995         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
996         conversion.
997
998 2007-03-05  Ian Lance Taylor  <iant@google.com>
999
1000         * c.opt (fgnu89-inline): New option.
1001         * c-opts.c (c_common_post_options): Set default value for
1002         flag_gnu89_inline.
1003         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
1004         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
1005         inline functions.
1006         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
1007         (grokdeclarator, start_function): Likewise.
1008         * c-cppbuiltin.c (c_cpp_builtins): Define either
1009         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
1010         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
1011         (C Dialect Options): Document -fgnu89-inline.
1012         * doc/extend.texi (Function Attributes): Explain what the
1013         gnu_inline attribute does.
1014         * doc/cpp.texi (Common Predefined Macros): Document
1015         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
1016
1017 2007-03-05  Ian Lance Taylor  <iant@google.com>
1018
1019         PR tree-optimization/31034
1020         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
1021         half-range if the other side is an overflow infinity.
1022
1023 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1024
1025         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
1026         (bfin*-linux-uclibc*): New configuration.
1027         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
1028         defining.
1029         * config/bfin/linux.h: New file.
1030         * config/bfin/libgcc-bfin.ver: New file.
1031         * config/bfin/t-bfin-uclinux: New file.
1032         * config/bfin/t-bfin-linux: New file.
1033         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
1034         (TARGET_OS_CPP_BUILTINS): New macro.
1035
1036 2007-03-05  Richard Guenther  <rguenther@suse.de>
1037
1038         * fold-const.c (fold_binary): Remove duplicate folding
1039         of comparison of non-null ADDR_EXPR against null.
1040
1041 2007-03-05  Richard Guenther  <rguenther@suse.de>
1042             Dorit Nuzman  <dorit@il.ibm.com>
1043
1044         PR tree-optimization/26420
1045         * tree-vectorizer.c (vectorize_loops): Bail out early if there
1046         are no loops in the function.  Only print the number of
1047         vectorized loops if it is greater than zero or we are supposed
1048         to print information about unvectorized loops.
1049
1050 2007-03-05  Revital Eres  <eres@il.ibm.com>
1051
1052         * gcc.dg/var-expand1.c: New test.
1053         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
1054         when an accumulator is expanded.
1055
1056 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1057
1058         PR other/30465
1059         * c-common.c (convert_and_check): Don't give warnings for
1060         conversion if 'expr' already overflowed.
1061         
1062 2007-03-04  Roger Sayle  <roger@eyesopen.com>
1063
1064         PR middle-end/30744
1065         * fold-const.c (fold_comparison): Enforce type consistency when
1066         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
1067
1068 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
1069
1070         * tree-ssa-address.c (create_mem_ref): Do not put an expression
1071         containing a cast to the base of TARGET_MEM_REF.
1072
1073 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
1074
1075         * tree.c (tree_contains_struct_check_failed): Remove spurious
1076         whitespace from error message.
1077
1078 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
1079
1080         PR target/30406
1081         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
1082         instead of precision.
1083
1084 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
1085             Nathan Sidwell  <nathan@codesourcery.com>
1086
1087         * emit-rtl.c (find_auto_inc): New.
1088         (try_split): recreate REG_INC notes,
1089         Use regular for loops rather than whiles.
1090
1091 2007-03-03  Andreas Schwab  <schwab@suse.de>
1092
1093         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
1094         * configure: Regenerate.
1095
1096 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1097
1098         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
1099         flag_rounding_math, not flag_unsafe_math_optimizations.
1100
1101         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
1102         fold_build2.
1103         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
1104         alpha_fold_vector_minmax): Likewise.
1105         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1106         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1107
1108 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1109
1110         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
1111         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
1112         if the lhs has side-effects.
1113         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
1114
1115 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
1116
1117         * config/i386/i386.h (TUNEMASK): Remove define.
1118         (ARCHMASK): Remove define.
1119         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
1120          Use ix86_arch_mask variable instead of ARCHMASK.
1121         * config/i386/i386.c (override_options): Ditto.
1122         (standard_80387_constant_p): Ditto.
1123
1124 2007-03-02  Ian Lance Taylor  <iant@google.com>
1125
1126         Used signed infinities in VRP.
1127         * tree-vrp.c (uses_overflow_infinity): New static function.
1128         (supports_overflow_infinity): New static function.
1129         (make_overflow_infinity): New static function.
1130         (negative_overflow_infinity): New static function.
1131         (positive_overflow_infinity): New static function.
1132         (is_negative_overflow_infinity): New static function.
1133         (is_positive_overflow_infinity): New static function.
1134         (is_overflow_infinity): New static function.
1135         (overflow_infinity_range_p): New static function.
1136         (compare_values_warnv): New function split out of compare_values.
1137         (compare_value): Call it.
1138         (set_value_range_to_nonnegative): Add overflow_infinity
1139         parameter.  Change caller.
1140         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
1141         Change callers.
1142         (vrp_expr_computes_nonzero): Likewise.
1143         (compare_ranges, compare_range_with_value): Likewise.
1144         (compare_name_with_value, compare_names): Likewise.
1145         (vrp_evaluate_conditional): Likewise.
1146         (set_value_range): Handle infinity
1147         (vrp_operand_equal_p, operand_less_p): Likewise.
1148         (extract_range_from_assert): Likewise.
1149         (vrp_int_const_binop): Likewise.
1150         (extract_range_from_binary_expr): Likewise.
1151         (extract_range_from_unary_expr): Likewise.
1152         (extract_range_from_comparison): Likewise.
1153         (extract_range_from_expr): Likewise.
1154         (dump_value_range): Likewise.
1155         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
1156         (test_for_singularity): Likewise.
1157         (vrp_int_const_binop): Remove inline qualifier.
1158         (adjust_range_with_scev): Add comment.
1159         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
1160
1161 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
1162
1163         * tree-ssa-structalias.c (could_have_pointers): Tidy.
1164         (get_constraint_for): Likewise.
1165         (do_structure_copy): Likewise.
1166         (find_func_aliases): Fix references to MODIFY_EXPR.
1167         (intra_create_variable_infos): Tidy.
1168         * tree-ssa-operands.c (add_virtual_operand): Add argument
1169         IS_CALL_SITE.
1170         When adding members of alias sets, if IS_CALL_SITE is true and
1171         the symbol is not call-clobbered, skip it.
1172         Adjust all callers.
1173
1174 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1175
1176         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1177         entry by means of emit_insn_at_entry.
1178
1179 2007-03-02  Richard Henderson  <rth@redhat.com>
1180
1181         * expr.h (promoted_input_arg): Remove decl.
1182         * function.c (promoted_input_arg): Merge into ...
1183         * combine.c (setup_incoming_promotions): ... only caller.
1184         Rearrange to avoid double loop.
1185
1186 2007-03-02  Ben Elliston  <bje@au.ibm.com>
1187             Peter Bergner  <bergner@vnet.ibm.com>
1188             Janis Johnson  <janis187@us.ibm.com>
1189
1190         * config/rs6000/dfp.md: New file.
1191         * config/rs6000/rs6000.md: Include dfp.md.
1192         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
1193         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
1194         and TDmode decimal float modes in FP registers.
1195         (num_insns_constant): Likewise.
1196         (rs6000_legitimate_offset_address_p): Likewise.
1197         (rs6000_legitimize_address): Likewise.
1198         (rs6000_legitimize_reload_address): Likewise.
1199         (rs6000_legitimate_address): Likewise.
1200         (rs6000_emit_move): Likewise.
1201         (function_arg_boundary): Likewise.
1202         (function_arg_advance): Likewise.
1203         (rs6000_darwin64_record_arg_recurse): Likewise.
1204         (function_arg): Likewise.
1205         (rs6000_gimplify_va_arg): Likewise.
1206         (rs6000_split_multireg_move): Likewise.
1207         (rs6000_output_function_epilogue): Likewise.
1208         (rs6000_output_function_epilogue): Likewise.
1209         (rs6000_register_move_cost): Likewise.
1210         (rs6000_function_value): Likewise.
1211         (rs6000_libcall_value): Likewise.
1212
1213 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
1214
1215         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
1216
1217 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
1218
1219         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
1220         Use $MULTIDIR to choose between the kernel and RTP headers,
1221         and use $WIND_BASE and $WIND_USR to locate them.
1222
1223 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
1224
1225         * config/i386/i386.c (override_options): Put initialization of
1226         ix86_tune_mask and ix86_arch_mask to the correct place.
1227
1228 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
1229             Michael Meissner  <michael.meissner@amd.com>
1230
1231         PR target/31019
1232         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
1233         (ARCHMASK): Define.
1234         (TARGET_CMOVE): Use ARCHMASK.
1235         (TARGET_CMPXCHG): Ditto.
1236         (TARGET_CMPXCHG8B): Ditto.
1237         (TARGET_XADD): Ditto.
1238         (TARGET_BSWAP): Ditto.
1239         * config/i386/i386.c (ix86_tune_mask): New global variable.
1240         (ix86_arch_mask): Ditto.
1241         (override_options): Initialize ix86_tune_mask and
1242         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
1243         target_flags.
1244
1245 2007-03-02  Ben Elliston  <bje@au.ibm.com>
1246
1247         PR 30992
1248         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
1249
1250 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
1251
1252         * target.h (init_dwarf_reg_sizes_extra): New target hook.
1253         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
1254         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
1255         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
1256         hook.
1257         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
1258         rs6000_init_dwarf_reg_sizes_extra): New.
1259         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
1260         SPE register high parts.
1261
1262 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1263
1264         * Makefile.in: Add install-pdf target as
1265         copied from automake v1.10 rules.
1266         * configure.ac: Add install-pdf to target list.
1267         * configure: Regenerate.
1268
1269 2007-03-01  Paul Brook  <paul@codesourcery.com>
1270
1271         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
1272         modes to LDRD for DImode.
1273         (output_move_double): Fixup out of range ldrd/strd.
1274         (vfp_secondary_reload_class): Rename...
1275         (coproc_secondary_reload_class): ... to this.  Add wb argument.
1276         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
1277         coproc_secondary_reload_class for CLASS_IWMMXT.
1278         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
1279         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
1280
1281 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
1282
1283         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the unroll
1284         factor by the estimated number of iterations.
1285         (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
1286         prefetch latency.
1287
1288         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
1289         decode_caches_intel, detect_caches_intel): New functions.
1290         (host_detect_local_cpu): Use detect_caches_amd and
1291         detect_caches_intel.
1292
1293 2007-03-01  Richard Henderson  <rth@redhat.com>
1294
1295         * expr.c (emit_move_complex_push): Export.
1296         (emit_move_complex_parts): Split out from ...
1297         (emit_move_complex): ... here.
1298         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
1299         * config/i386/i386.md (movcdi): New.
1300
1301 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
1302
1303         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
1304         size of mode1 to check for tieable modes in MMX case.
1305
1306 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
1307
1308         * Makefile.in (rtlanal.o): Depend on tree.h.
1309         * rtl.h (offset_within_section_p, split_const): Declare.
1310         * rtlanal.c: Include tree.h.
1311         (offset_within_block_p): New function, taken from
1312         mips_offset_within_object_p.
1313         (split_const): New function, taken from mips_split_const.
1314         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
1315         Declare.
1316         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
1317         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
1318         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
1319         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
1320         (m68k_illegitimate_symbolic_constant_p): New function.
1321         * config/m68k/m68k.md (movsi): Remove misleading predicates.
1322         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
1323         symbolic constant that might be outside the symbol's section,
1324         move the symbol first and then add the offset.
1325         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
1326         Override.
1327         * config/mips/mips.c (mips_split_const): Delete.
1328         (mips_offset_within_object_p): Delete.
1329         (mips_symbolic_constant_p): Use offset_within_section_p and
1330         split_const instead of mips_offset_within_object_p and
1331         mips_split_const.
1332         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
1333         (mips_legitimize_const_move, print_operand_reloc)
1334         (mips_dangerous_for_la25_p): Use split_const instead of
1335         mips_split_const.
1336
1337 2007-02-28  Eric Christopher  <echristo@apple.com>
1338
1339         * Makefile.in (install-include-dir): Don't rm -rf include.
1340
1341 2007-02-28  Richard Guenther  <rguenther@suse.de>
1342
1343         PR middle-end/30364
1344         * fold-const.c (fold_binary): Do not associate expressions
1345         with more than one variable for integer types that do not wrap.
1346
1347 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
1348
1349         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
1350         Delete, and replace with...
1351         (fold_builtin_call_array): This.  Update callers to use it.
1352         * fold-const.c (fold_build_call_list): Delete, and replace with...
1353         (fold_build_call_array): This.
1354         (fold_build_call_list_initializer): Delete, and replace with...
1355         (fold_build_call_array_initializer): This.
1356         * tree.h: Update declarations to reflect above changes.
1357
1358         * c-typeck.c (build_function_call): Store converted arguments
1359         in a stack-allocated array instead of building a list.
1360         (convert_arguments): Store arguments in the array passed in as an
1361         argument, and return the actual number of arguments.
1362         * c-format.c: (check_function_format): Pass arguments in an
1363         array instead of a list.
1364         * c-common.c (check_function_nonnull): Likewise.
1365         (check_function_sentinel): Likewise.
1366         (check_function_arguments): Likewise.
1367         * c-common.h: Update declarations to reflect above changes.
1368
1369 2007-02-28  Jan Hubicka  <jh@suse.cz>
1370
1371         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
1372         PRED_NEGATIVE_RETURN): Update outcomes.
1373
1374 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
1375
1376         * calls.c (emit_library_call_value_1): Handle partial registers
1377         correctly when building up CALL_INSN_FUNCTION_USAGE.
1378
1379 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1380
1381         * pa/predicates.md (move_src_operand): Allow zero for mode.
1382         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
1383         move pattern.
1384
1385 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
1386
1387         PR target/30970
1388         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
1389         *movv2df_internal): Enable pattern only for valid operand
1390         combinations.
1391         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
1392         tie only 128bit modes. For MMX registers, tie only 64bit modes.
1393
1394 2007-02-27  Mike Stump  <mrs@apple.com>
1395
1396         * config/darwin-crt3.c: Avoid compilation when compiling for a
1397         kext multilib.
1398
1399 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
1400
1401         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
1402         FIXED_INCLUDE_DIR.
1403         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
1404         for fixed headers and limits.h.
1405         (install-include-dir, install-headers-tar, install-headers-cpio,
1406         install-headers-cp, real-install-headers-tar,
1407         real-install-headers-cpio, real-install-headers-cp): Handle
1408         include-fixed as well as include.
1409         (install-mkheaders): Don't install files that go only in include
1410         not include-fixed.
1411         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
1412         from GCC_INCLUDE_DIR.
1413         * gcc.c (process_command): Remove special -BstageN/ handling.
1414         (do_spec_1): Add include-fixed directories.
1415
1416 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1417
1418         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
1419         _smulsi3_highpart.
1420         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
1421         New functions.
1422         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
1423         patterns.
1424
1425 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
1426
1427         * c-common.c (get_priority): Add check for
1428         SUPPORTS_INIT_PRIORITY.
1429
1430 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1431
1432         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
1433
1434         * config/bfin/bfin.c: Include "cfglayout.h".
1435         (MAX_LSETUP_DISTANCE): New macro.
1436         (struct loop_info): New members incoming, incoming_src and
1437         incoming_dest.  Delete member predecessor.
1438         (length_for_loop): New function.
1439         (bfin_optimize_loop): Handle more different loop structures.
1440         (bfin_discover_loop): Rework detection of predecessor blocks by
1441         examining incoming edges.
1442         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
1443         bfin_reorg_loops.
1444         (bfin_reorder_loops): New function.
1445         (bfin_reorg_loops): Use these three new functions.
1446
1447         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
1448         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
1449         (CONSTRAINT_LEN): Add entry for 'q'.
1450         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
1451         Add 'q' constraints.
1452         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
1453         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
1454
1455         * config/bfin/bfin.md (add_with_carry): New pattern.
1456         (s_or_u, su_optab, su_modifier): New code macros/attrs.
1457         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
1458         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
1459         support unsigned multiplies too.  Removed incorrect commutativity from
1460         operand 1 constraint where appropriate.
1461         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
1462         patterns.
1463         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
1464         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
1465         New patterns.
1466         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
1467         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
1468         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
1469         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
1470         usmulhisi_hh_huh): New patterns.
1471
1472         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
1473         lshifthi3): Fix output template to use half reg for operand 2.
1474
1475         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
1476         instead of R2.
1477
1478         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
1479
1480 2007-02-27  Andreas Schwab  <schwab@suse.de>
1481
1482         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
1483
1484 2007-02-27  Jan Hubicka  <jh@suse.cz>
1485
1486         * predict.c (last_basic_block_p): Remove.
1487         (tree_estimate_probability): Update return heuristic for commonized
1488         return blocks.
1489
1490 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1491
1492         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
1493
1494 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1495
1496         * doc/include/gcc-common.texi (versionsubtitle): New macro.
1497         * doc/cpp.texi: Standardize title page.
1498         * doc/cppinternals.texi: Likewise.
1499         * doc/gcc.texi: Standardize title page, remove version number
1500         from copyright page.
1501         * doc/gccint.texi: Likewise.
1502         * doc/install.texi: Standardize title page, add table of
1503         contents.
1504
1505 2007-02-26  Jan Hubicka  <jh@suse.cz>
1506
1507         * predict.def: Set outcomes according to more recent results.
1508         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
1509         Remove dead predictors.
1510         * predict.c (return_prediction): Fix pasto.
1511
1512 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1513
1514         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
1515         change; avoid a memory leak when returning early.
1516
1517 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
1518
1519         * c-decl.c (static_ctors): Move to c-common.c.
1520         (static_dtors): Likewise.
1521         (finish_function): Use c_record_cdtor_fn.
1522         (build_cdtor): Move to c-common.c.
1523         (c_write_global_declarations): Use c_build_cdtor_fns.
1524         * c-common.h (static_ctors): Declare.
1525         (static_dtors): Likewise.
1526         (c_record_cdtor_fn): Likewise.
1527         (c_build_cdtor_fns): Likewise.
1528         * c-common.c (static_ctors): New variable.
1529         (static_dtors): Likewise.
1530         (c_record_cdtor_fn): New function.
1531         (build_cdtor): Move from c-decl.c
1532         (c_build_cdtor_fns): New function.
1533
1534         * output.h (assemble_addr_to_section): Declare.
1535         (get_cdtor_priority_section): Likewise.
1536         * varasm.c (assemble_addr_to_section): New function.
1537         (get_cdtor_priority_section): Likewise.
1538         (default_named_section_asm_out_destructor): Use them.
1539         (destor_dtor_section_asm_out_destructor): Likewise.
1540         (default_named_section_asm_out_constructor): Likewise.
1541         (default_ctor_section_asm_out_constructor): Likewise.
1542         * config.gcc (*-*-vxworks*): Include vxworks.o.
1543         * config/t-vxworks (vxworks.o): New target.
1544         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
1545         (TARGET_ASM_CONSTRUCTOR): Define.
1546         (TARGET_ASM_DESTRUCTOR): Likewise.
1547         (vxworks_asm_out_constructor): Declare.
1548         (vxworks_asm_out_destructor): Likewise.
1549
1550         * c-common.c (get_priority): Check that we have not just an
1551         INTEGER_CST, but an integer constant with integeral type.
1552
1553 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
1554
1555         PR tree-optimization/30938
1556         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
1557         use &dt[nargs-1] instead of &dt[nargs] in the call to
1558         vect_is_simple_use().
1559
1560 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
1561
1562         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
1563         from register elimination as PRE_MODIFY / POST_MODIFY increments.
1564         Do not attempt to handle MEM inside auto-inc expressions.
1565         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
1566         of a register modified by an auto-inc expression.  However, do handle
1567         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
1568         (elimination_effects): Prohibit elimination of a register modified
1569         by an auto-inc expression.  Disable register elimination rules whose
1570         target register is modified by an auto-inc expression with variable
1571         increment.
1572
1573 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
1574
1575         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
1576         off-by-one error.
1577         (array_at_struct_end_p): New function.
1578         (idx_infer_loop_bounds): Use it.
1579         (estimate_numbers_of_iterations_loop): Export.
1580         * predict.c (predict_loops): Use estimated_loop_iterations_int.
1581         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
1582         (tree_estimate_probability): Call record_loop_exits.
1583         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
1584         (estimated_loop_iterations, estimated_loop_iterations_int,
1585         estimated_loop_iterations_tree): New functions.
1586         (analyze_siv_subscript_cst_affine,
1587         compute_overlap_steps_for_affine_1_2,
1588         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
1589         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
1590         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
1591         (PRED_LOOP_ITERATIONS_GUESSED): New.
1592         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
1593         * cfgloop.h (estimate_numbers_of_iterations_loop,
1594         estimated_loop_iterations_int): Declare.
1595
1596 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
1597
1598         * doc/extend.texi: Document optional priority argument to
1599         constructors and destructors.
1600         * tree.c (init_priority_for_decl): Adjust GTY markers.
1601         (init_ttree): Use priority-info hash functions for
1602         init_priority_for_decl.
1603         (tree_map_eq): Rename to ...
1604         (tree_map_base_eq): ... this.
1605         (tree_map_marked_p): Rename to ...
1606         (tree_map_base_marked_p): ... this.
1607         (tree_map_base_hash): New function.
1608         (decl_init_priority_lookup): Rework.
1609         (decl_fini_priority_lookup): New function.
1610         (decl_priority_info): New function.
1611         (decl_init_priority_insert): Use it.
1612         (decl_fini_priority_insert): Likewise.
1613         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
1614         hierarchy.
1615         (decl_restrict_base_insert): Likewise.
1616         (decl_debug_expr_insert): Likewise.
1617         (decl_value_expr_lookup): Likewise.
1618         (decl_value_expr_insert): Likewise.
1619         * tree.h (priority_type): New type.
1620         (decl_init_priority_lookup): Use priority_type.
1621         (decl_fini_priority_lookup): New function.
1622         (decl_init_priority_insert): Use priority_type.
1623         (decl_fini_priority_insert): New function.
1624         (DECL_HAS_INIT_PRIORITY): Tweak comments.
1625         (DECL_INIT_PRIORITY): Likewise.
1626         (SET_DECL_INIT_PRIORITY): Add comment.
1627         (DECL_FINI_PRIORITY): New macro.
1628         (SET_DECL_FINI_PRIORITY): Likewise.
1629         (DEFAULT_INIT_PRIORITY): Document.
1630         (MAX_INIT_PRIORITY): Likewise.
1631         (MAX_RESERVED_INIT_PRIORITY): Likewise.
1632         (tree_map_base): New type.
1633         (tree_map_base_eq): New function.
1634         (tree_map_base_hash): Likewise.
1635         (tree_map_base_marked_p): Likewise.
1636         (tree_map): Inherit from tree_map_base.
1637         (tree_map_eq): Make it a macro.
1638         (tree_map_marked_p): Likewise.
1639         (tree_int_map): Inherit from tree_map_base.
1640         (tree_int_map_eq): Make it a macro.
1641         (tree_int_map_hash): Likewise.
1642         (tree_int_map_marked_p): Likewise.
1643         (tree_priority_map): New type.
1644         (tree_priority_map_eq): New macro.
1645         (tree_priority_map_hash): Likewise.
1646         (tree_priority_map_marked_p): Likewise.
1647         * varasm.c (emults_decl): Adjust for refactoring of tree_map
1648         hierarchy.
1649         (emutls_common_1): Likewise.
1650         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
1651         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
1652         of tree_map hierarchy.
1653         * tree-cfg.c (move_stmt_r): Likewise.
1654         (new_label_mapper): Likewise.
1655         * c-tree.h (c_expand_body): Move to ...
1656         * c-common.h (c_expand_body): ... here.
1657         * c-decl.c (c_expand_body): Move to ...
1658         * c-common.c (c_expand_body): ... here.
1659         (c_common_attribute_table): Allow 1 argument for the constructor
1660         and destructor attributes.
1661         (get_priority): New function.
1662         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
1663         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
1664
1665 2007-02-24  Jan Hubicka  <jh@suse.cz>
1666
1667         PR middle-end/30509
1668         * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
1669
1670 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
1671             Jan Hubicka  <jh@suse.cz>
1672
1673         PR target/30778
1674         * i386.c (counter_mode): New function.
1675         (expand_set_or_movmem_via_loop): Use it.
1676         (expand_movmem_epilogue): Likewise; fix pasto.
1677         (ix86_expand_movmem): Do emit guard even for constant counts.
1678         (ix86_expand_setmem): Likewise.
1679
1680 2007-02-25  Nick Clifton  <nickc@redhat.com>
1681
1682         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
1683         (JUMP_TABLES_IN_TEXT_SECTION): Define.
1684
1685 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
1686
1687         PR target/30770
1688         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
1689         count argument with 0x10, not with 0x16.
1690         (expand_setmem_epilogue): Ditto.
1691
1692 2007-02-24  Mike Stump  <mrs@apple.com>
1693
1694         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1695         symbols.
1696
1697 2007-02-24  Richard Guenther  <rguenther@suse.de>
1698
1699         PR middle-end/30951
1700         * fold-const.c (fold_binary): Fold x +- CST op x for
1701         EQ_EXPR and NE_EXPR.
1702
1703 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1704
1705         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
1706
1707 2007-02-24  Jan Hubicka  <jh@suse.cz>
1708
1709         * cgraphunit.c (decide_is_function_needed): Honor
1710         -fkeep-inline-functions.
1711
1712 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1713
1714         * builtins.c (fold_builtin_modf): New.
1715         (fold_builtin_2): Use it.
1716
1717 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1718
1719         * loop-iv.c (implies_p): Detect additional cases where A implies B.
1720         (determine_max_iter): Take additional LOOP arg; all callers changed.
1721         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
1722         one using simplifications.
1723         (simplify_using_initial_values): Return if the expression becomes
1724         invalid due to altered regs.
1725
1726 2007-02-23  DJ Delorie  <dj@redhat.com>
1727
1728         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
1729
1730 2007-02-23  Mike Stump  <mrs@apple.com>
1731
1732         * tlink.c (scan_linker_output): Parse linker messages from
1733         darwin9's linker better.
1734
1735 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
1736
1737         PR debug/29614
1738         * varpool.c (varpool_assemble_pending_decls):  Set
1739         varpool_last_needed_node to null.
1740
1741 2007-02-23  DJ Delorie  <dj@redhat.com>
1742
1743         * config/i386/i386.c (ix86_data_alignment): Don't specify an
1744         alignment bigger than the object file can handle.
1745
1746 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
1747
1748         PR target/30825
1749         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
1750         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
1751         (*movsf_1): Penalize MMX moves.
1752
1753 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
1754
1755         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
1756         2^32-1 or more times unless flag_unsafe_loop_optimizations.
1757
1758         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
1759
1760 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1761
1762         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
1763         (fold_builtin_1): Use them.
1764         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
1765         BUILT_IN_SIGNIFICAND.
1766
1767 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
1768
1769         * config/i386/i386.c (bdesc_1arg): Initialize
1770         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
1771         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
1772         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
1773         and IX86_BUILTIN_MOVSLDUP.
1774
1775 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
1776
1777         PR rtl-optimization/30841
1778         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
1779
1780 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1781
1782         * builtins.c (fold_builtin_frexp): New.
1783         (fold_builtin_2): Use it.
1784
1785 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
1786
1787         * doc/invoke.texi (Spec Files): Document getenv spec function.
1788
1789         * gcc.c (getenv_spec_function): New function.
1790         (static_spec_functions): Add it.
1791         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
1792         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
1793         header files.
1794
1795 2007-02-22  Michael Matz  <matz@suse.de
1796
1797         PR c++/29433
1798         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
1799         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
1800
1801 2007-02-22  Ian Lance Taylor  <iant@google.com>
1802
1803         PR debug/30898
1804         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
1805         (mem_loc_descriptor): Call it.
1806
1807 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
1808             Ira Rosen  <irar@il.ibm.com>
1809
1810         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
1811
1812 2007-02-22  Ira Rosen  <irar@il.ibm.com>
1813
1814         PR tree-optimization/30843
1815         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
1816         stores only after all the group is vectorized.
1817
1818 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
1819
1820         PR tree-optimization/30858
1821         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
1822         in the reduction cycle have a single use in the loop.
1823         * tree-vectorizer.h (relevant): Add documentation.
1824
1825 2007-02-20  Mike Stump  <mrs@apple.com>
1826
1827         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
1828         * configure: Regenerate.
1829
1830 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1831
1832         Change the defaults of some parameters and options.
1833         * config/spu/spu-protos.h (spu_optimization_options): Declare.
1834         * config/spu/spu.c (spu_optimization_options): Add.
1835         (spu_override_options): Change params in spu_optimization_options.
1836         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
1837
1838         Register 127 is only 16 byte aligned when used as a frame pointer.
1839         * config/spu/spu-protos.h (spu_init_expanders): Declare.
1840         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
1841         HARD_FRAME_POINTER_REGNUM.
1842         (spu_legitimate_address):  Use regno_aligned_for_reload.
1843         (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
1844         aligned when frame_pointer_needed is true.
1845         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
1846         to 8 bits.
1847         * config/spu/spu.h (INIT_EXPANDERS): Define.
1848
1849         Make sure shift and rotate instructions have valid immediate operands.
1850         * config/spu/predicates.md (spu_shift_operand): Remove.
1851         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
1852         * config/spu/constraints.md (W, O): Extend range.
1853         * config/spu/spu.md (umask, nmask): Define.
1854         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
1855         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
1856         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
1857         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
1858         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
1859         (lshr<mode>3_reg):  Fix rtl description.
1860
1861         Make sure mulhisi immediate operands are valid.
1862         * config/spu/predicates.md (imm_K_operand): Add.
1863         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
1864
1865         Generate constants using fsmbi and andi.
1866         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
1867         (print_operand, spu_split_immediate, classify_immediate,
1868         fsmbi_const_p): Handle IC_FSMBI2.
1869
1870         Correctly handle a CONST_VECTOR containing symbols.
1871         * config/spu/spu.c (print_operand): Handle HIGH correctly.
1872         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
1873         (immediate_load_p): Allow symbols that use 2 instructions to create.
1874         (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
1875         with symbols when flag_pic is set.
1876         (const_vector_immediate_p): New.
1877         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
1878         accept a CONST_VECTOR with symbols.
1879         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
1880         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
1881         correctly.
1882         * config/spu/spu.md (high, low): Delete.
1883         (low_<mode>): Define.
1884
1885         Remove INTRmode and INTR_REGNUM, which didn't work.
1886         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
1887         of INTR_REGNUM.
1888         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
1889         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
1890         peephole2 pattern): Don't use INTR or 131.
1891         (movintrcc): Delete.
1892         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
1893         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
1894         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
1895         (UNSPEC_SET_INTR): Add.
1896         * config/spu/spu-modes.def (INTR): Remove.
1897
1898         More accurate warnings about run-time relocations.
1899         * config/spu/spu.c (reloc_diagnostic): Test in_section.
1900
1901         Correctly warn about immediate arguments to specific intrinsics.
1902         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
1903         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
1904         the instruction predicate.
1905
1906         Fix tree check errors with latest update.
1907         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
1908         CALL_EXPR_ARG.
1909         (spu_expand_builtin): Use CALL_EXPR_FN.
1910
1911         Add missing specific intrinsics.
1912         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
1913         si_bislede.
1914         * config/spu/spu_internals.h: Ditto.
1915
1916         Fix incorrect operand modifiers.
1917         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
1918         * config/spu/spu.md (xor<mode>3):  Change %S to %J.
1919
1920         Optimize one case of zero_extend of a vec_select.
1921         * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
1922
1923         Accept any immediate for hbr.
1924         * config/spu/spu.md (hbr):  Change s constraints to i.
1925
1926 2007-02-21  Paul Brook  <paul@codesourcery.com>
1927
1928         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
1929         condexec_count when skipping USE and CLOBBER.
1930
1931 2007-02-21  Nick Clifton  <nickc@redhat.com>
1932
1933         * common.opt (Warray-bounds): Add Warning attribute.
1934         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
1935         Likewise.
1936         (fsized-zeroes): Add Optimization attribute.
1937         (fsplit-wide-types, ftree-scev-cprop): Likewise.
1938         * c.opt (Wc++0x-compat): Add Warning attribute.
1939
1940 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1941
1942         PR middle-end/30761
1943         * reload1.c (eliminate_regs_in_insn): In the single_set special
1944         case, attempt to re-recognize the insn before falling back to
1945         having reload fix it up.
1946
1947 2007-02-20  Eric Christopher  <echristo@gmail.com>
1948
1949         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
1950         Rewrite accordingly.
1951         (frv_read_iacc_argument): Ditto.
1952         (frv_expand_set_builtin): Take a call instead of arglist, update for
1953         above changes.
1954         (frv_expand_unop_builtin): Ditto.
1955         (frv_expand_binop_builtin): Ditto.
1956         (frv_expand_cut_builtin): Ditto.
1957         (frv_expand_binopimm_builtin): Ditto.
1958         (frv_expand_voidbinop_builtin): Ditto.
1959         (frv_expand_int_void2arg): Ditto.
1960         (frv_expand_prefetches): Ditto.
1961         (frv_expand_voidtriop_builtin): Ditto.
1962         (frv_expand_voidaccop_builtin): Ditto.
1963         (frv_expand_load_builtin): Ditto.
1964         (frv_expand_store_builtin): Ditto.
1965         (frv_expand_mdpackh_builtin): Ditto.
1966         (frv_expand_mclracc_builtin): Ditto.
1967         (frv_expand_mrdacc_builtin): Ditto.
1968         (frv_expand_mwtacc_builtin): Ditto.
1969         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
1970         calls for above.
1971
1972 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
1973
1974         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
1975         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
1976         cmpb instruction.
1977         (HAVE_GAS_DFP): Check for assembler support of decimal floating
1978         point instructions.
1979         * configure: Regenerate.
1980         * config.in: Regenerate.
1981         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
1982         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
1983         masks to power6 and power6x and to POWERPC_MASKS.
1984         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1985         _ARCH_PWR6.
1986         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
1987         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
1988         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1989         Access PROTOTYPE as variable, not mask.
1990
1991 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
1992
1993         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
1994         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
1995         * combine.c (adjust_for_new_dest): Use it.
1996         * postreload.c (reload_combine): Likewise.
1997
1998 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
1999
2000         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
2001         notes on an insn with multiple sets, even if single_set returns
2002         non-NULL for that insn.
2003
2004 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2005
2006         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
2007         scalbn and scalbln.
2008
2009 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
2010
2011         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
2012         if user didn't pass it.
2013         * config/i386/darwin.h (CC1_SPEC): Likewise.
2014         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
2015         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
2016         -mmacosx-version-min.
2017
2018 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2019             Uros Bizjak  <ubizjak@gmail.com>
2020
2021         * optabs.h (enum optab_index): Add new OTI_scalb.
2022         (scalb_optab): Define corresponding macro.
2023         * optabs.c (init_optabs): Initialize scalb_optab.
2024         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
2025         patterns.
2026         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
2027         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
2028         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
2029         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
2030         flag_unsafe_math_optimizations is set.
2031
2032         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
2033         to implement scalbf, scalb and scalbl built-ins as inline x87
2034         intrinsics.
2035
2036 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2037             DJ Delorie <dj@redhat.com>
2038
2039         PR other/30824
2040         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
2041         (diagnostic_report_diagnostic): ... here, and turn them into real
2042         errors. If warnings are inhibited, no need to do anything.
2043
2044 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
2047         better code generation.
2048
2049 2007-02-20  Ben Elliston  <bje@au.ibm.com>
2050
2051         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
2052
2053 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
2054
2055         * config/alpha/alpha.c, config/alpha/alpha.md,
2056         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
2057         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
2058         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
2059         config/arm/lib1funcs.asm: Follow spelling conventions.
2060
2061         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
2062         config/fr30/fr30.md, config/i386/i386.h,
2063         config/iq2000/iq2000.h, config/iq2000/predicates.md,
2064         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
2065         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2066         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
2067         config/rs6000/altivec.md, config/rs6000/rs6000.c,
2068         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
2069         config/sparc/sparc.c, config/sparc/sparc.h,
2070         config/sparc/sparc.md, config/spu/constraints.md,
2071         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
2072         conventions.
2073
2074 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
2075
2076         PR target/29943
2077         * varasm.c (use_blocks_for_decl_p): Return false for decls with
2078         alias attribute.
2079
2080 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
2081
2082         * doc/invoke.texi (-ftree-lrs): Remove.
2083
2084 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
2085
2086         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
2087         NULL.
2088
2089 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
2090
2091         * config/ia64/ia64.c (ia64_expand_builtin): Use the
2092         new CALL_EXPR_FN macro for retrieving the function
2093         declaration of the input expression.
2094
2095 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2096
2097         * c.opt (Waddress): New.
2098         * common.opt (Walways-true): Delete.
2099         (Wstring-literal-comparison): Delete.
2100         * doc/invoke.texi (Warning Options): Delete -Walways-true and
2101         -Wstring-literal-comparison. Add -Waddress.
2102         (Waddress): New.
2103         (Walways-true): Delete.
2104         (Wstring-literal-comparison): Delete.
2105         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
2106         consistently instead of -Walways-true in example.
2107         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
2108         * c-typeck.c (parser_build_binary_op): Replace
2109         -Wstring-literal-comparison and -Walways-true with -Waddress.
2110         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
2111         with -Waddress.
2112
2113 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
2114
2115         * tree-cfg.c (dump_function_to_file): Be prepared for functions
2116         without DECL_STRUCT_FUNCTION initialized.
2117
2118 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
2119
2120         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
2121         due to calls to functions taking pointers as parameters.
2122
2123 2007-02-19  Richard Henderson  <rth@redhat.com>
2124
2125         PR debug/29558
2126         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
2127         in memory.
2128
2129 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2130
2131         * config/s390/s390.c (s390_call_saved_register_used,
2132         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
2133         accessed to the new scheme.
2134
2135 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2136
2137         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
2138         (cris_print_index, cris_print_operand, cris_print_operand_address)
2139         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
2140         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
2141         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
2142         GET_CODE () == xxx.
2143         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
2144         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
2145         GO_IF_LEGITIMATE_ADDRESS): Ditto.
2146         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
2147         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
2148         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
2149         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
2150         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
2151         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
2152         (uminsi3, call, call_value): Ditto.
2153         (define_split: indir_to_reg_split, unnamed): Ditto.
2154
2155 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
2156
2157         PR tree-optimization/30975
2158         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
2159         wrong assert.
2160
2161 2007-02-18  Eric Christopher  <echristo@gmail.com>
2162
2163         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
2164         Remove use of arglist.
2165         (mips_expand_builtin): Remove use of arglist, pass in expr.
2166         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
2167         (mips_expand_builtin_movtf): Ditto.
2168         (mips_expand_builtin_compare): Ditto.
2169
2170 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
2171
2172         * tree-sra.c (sra_build_assignment): Replace assertion
2173         checking with a comment explaining why it can't be done.
2174
2175 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
2176
2177         PR middle-end/30833
2178         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
2179         during CALL_EXPR representation conversion.
2180         * tree-ssa-propagate.c (set_rhs): Likewise.
2181
2182 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
2183
2184         * tree-sra.c (sra_build_assignment): Disable assertion checking
2185         for now.
2186
2187 2007-02-18  Roger Sayle  <roger@eyesopen.com>
2188
2189         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
2190         instead of calling build2 with a GIMPLE_MODIFY_STMT.
2191         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
2192         Likewise.
2193         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
2194         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
2195         gimplify_init_ctor_eval_range, gimple_push_cleanup,
2196         gimplify_omp_for, gimplify_omp_atomic_pipeline,
2197         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
2198         force_gimple_operand): Likewise.
2199         * ipa-cp.c (constant_val_insert): Likewise.
2200         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
2201         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
2202         perfect_nestify): Likewise.
2203         * langhooks.c (lhd_omp_assignment): Likewise.
2204         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
2205         lower_copyprivate_clauses, lower_send_clauses,
2206         lower_send_shared_vars, expand_parallel_call,
2207         expand_omp_for_generic, expand_omp_for_static_nochunk,
2208         expand_omp_for_static_chunk, expand_omp_sections,
2209         lower_omp_single_copy, lower_omp_for_lastprivate,
2210         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
2211         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
2212         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
2213         Likewise.
2214
2215 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
2216
2217         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
2218         config/sh/sh.md: Follow spelling conventions.
2219
2220         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
2221         config/frv/predicates.md: Follow spelling conventions.
2222
2223         * config/m68k/linux-unwind.h: Fix a comment typo.
2224         * target.h: Follow spelling conventions.
2225
2226 2007-02-18  Roger Sayle  <roger@eyesopen.com>
2227
2228         PR rtl-optimization/28173
2229         * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
2230         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
2231         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
2232         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
2233         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
2234
2235 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2236
2237         * builtins.c (fold_builtin_load_exponent): New.
2238         (fold_builtin_2): Use it.
2239
2240 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
2241
2242         PR rtl-optimization/30773
2243         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
2244         if we fail to attach a REG_EQUIV note.
2245
2246 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
2247             Roger Sayle  <roger@eyesopen.com>
2248
2249         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
2250
2251 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
2252
2253         * calls.c (initialize_argument_information): Pass original EXP
2254         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
2255         code to split complex arguments here, as part of initializing the
2256         ARGS array.
2257         (expand_call): Remove code that builds a list of arguments and
2258         inserts implicit arguments into it.  Instead, just count how many
2259         implicit arguments there will be so we can determine the size of
2260         the ARGS array, and let initialize_argument_information do the work.
2261         (split_complex_values): Delete unused function.
2262
2263 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
2264
2265         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
2266
2267 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
2268
2269         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
2270         for arg pointer based indexed addressing.
2271
2272 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2273
2274         * config/ia64/ia64.h, config/ia64/ia64.md,
2275         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
2276         spelling conventions.
2277
2278 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
2279
2280         * config/m68k/m68k.c (split_di): New.
2281         * config/m68k/m68k-protos.h: Declare split_di.
2282         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
2283           Improve predicate handling and split constant shifts.
2284
2285 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
2286
2287         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
2288         parameter for register bitfield operations, general predicates
2289         cleanup
2290
2291 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
2292
2293         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
2294         * config/m68k/linux-unwind.h: New file.
2295
2296 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2297
2298         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
2299         config/i386/athlon.md, config/ia64/ia64.md,
2300         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
2301         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
2302         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
2303         tree-ssa-loop-niter.c, tree-vect-analyze.c,
2304         tree-vect-transform.c: Fix comment typos.
2305
2306 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
2307
2308         * sched-deps.c (find_insn_list): Remove.
2309         * sched-int.h: Remove the prototype for find_insn_list.
2310
2311 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
2312
2313         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
2314         to linker.
2315         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
2316         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
2317         darwin_rs6000_override_options.
2318         (C_COMMON_OVERRIDE_OPTIONS): Expect
2319         darwin_macosx_version_min to be non-NULL always.
2320         (TARGET_C99_FUNCTIONS): Likewise.
2321         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
2322         (DARWIN_MINVERSION_SPEC): New.
2323         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
2324         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
2325         to cc1*.
2326         (DARWIN_MINVERSION_SPEC): New.
2327         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
2328         value.
2329         * config/darwin-c.c (darwin_cpp_builtins): Expect
2330         darwin_macosx_version_min to be non-NULL always.
2331
2332         * config/rs6000/rs6000.c: Clean up trailing whitespace.
2333
2334 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
2335
2336         * config/i386/i386.h (x86_use_xchgb): New.
2337         (TARGET_USE_XCHGB): New macro.
2338         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
2339         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
2340         Split after reload into bswaphi for shifts of 8.
2341         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
2342         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
2343         or when optimizing for size.
2344
2345 2007-02-16  Richard Guenther  <rguenther@suse.de>
2346             Christian Bruel  <christian.bruel@st.com>
2347
2348         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
2349         DECLs but prefer SSA_NAMEs over DECLs.
2350
2351 2007-02-16  Richard Guenther  <rguenther@suse.de>
2352
2353         * tree-flow-inline.h (single_imm_use_p): Remove.
2354         (zero_imm_uses_p): Likewise.
2355         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
2356         instead of single_imm_use_p.
2357         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
2358         zero_imm_uses_p.
2359
2360 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2361
2362         PR other/27843
2363         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
2364         nested double- and backquotes.
2365
2366 2007-02-15  Roger Sayle  <roger@eyesopen.com>
2367
2368         PR middle-end/30391
2369         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
2370         should be unreachable.
2371         (build2_stat): Allow construction of MODIFY_EXPR at any time.
2372         For the time being redirect GIMPLE_MODIFY_STMT to the new
2373         (renamed) build_gimple_modify_stmt_stat.
2374         (build2_gimple_stat): Rename to...
2375         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
2376         Always build a GIMPLE_MODIFY_STMT node.
2377         * tree.h (build2_gimple, build2_gimple_stat): Delete.
2378         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
2379         declarations.
2380
2381         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
2382         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
2383         * tree-complex.c (set_component_ssa_name, expand_complex_move,
2384         expand_complex_div_wide): Likewise.
2385         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
2386         * tree-ssa-loop-im.c (schedule_sm): Likewise.
2387         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
2388         * tree-ssa-loop-manip.c (create_iv): Likewise.
2389         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
2390         abs_replacement): Likewise.
2391         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
2392         realify_fake_stores): Likewise.
2393
2394         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
2395         node rather than a GIMPLE_MODIFY_STMT node.
2396         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
2397         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
2398         Likewise.
2399         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
2400         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
2401         GIMPLE_MODIFY_STMT.
2402
2403 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2404
2405         PR middle-end/30433
2406         * fold-const.c (fold_comparison): Add back the
2407         folding of constant complex comparisions.
2408
2409 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2410
2411         PR middle-end/30729
2412         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
2413         effects unknown to this function, return early.
2414
2415 2007-02-15  Ian Lance Taylor  <iant@google.com>
2416
2417         * lower-subreg.c (move_eh_region_note): New static function.
2418         (resolve_simple_move): Call it.
2419         (decompose_multiword_subregs): Track blocks for which we resolve a
2420         simple move which is also a control flow insn.  Pass them to
2421         find_many_sub_basic_blocks.
2422         (pass_lower_subreg): Add TODO_verify_flow.
2423         (pass_lower_subreg2): Likewise.
2424
2425 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2426             Brooks Moses  <brooks.moses@codesourcery.com>
2427             Lee Millward  <lee.millward@codesourcery.com>
2428
2429         * tree.h (enum tree_code_class): Add tcc_vl_exp.
2430         (VL_EXP_CLASS_P): New.
2431         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
2432         TREE_CODE_LENGTH.
2433         (TREE_OPERAND_CHECK_CODE): Likewise.
2434         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
2435         (TREE_RTL_OPERAND_CHECK): Likewise.
2436         (tree_operand_check_failed): Make second parameter the whole tree
2437         instead of its code.  Fixed callers.
2438         (VL_EXP_CHECK): New.
2439         (TREE_OPERAND_LENGTH): New.
2440         (VL_EXP_OPERAND_LENGTH): New.
2441         (CALL_EXPR_FN): New.
2442         (CALL_EXPR_STATIC_CHAIN): New.
2443         (CALL_EXPR_ARGS): New.
2444         (CALL_EXPR_ARG): New.
2445         (call_expr_nargs): New.
2446         (CALL_EXPR_ARGP): New.
2447         (build_nt_call_list): Declare.
2448         (build_vl_exp_stat): Declare.
2449         (build_vl_exp): New.
2450         (build_call_list): Declare.
2451         (build_call_nary): Declare.
2452         (build_call_valist): Declare.
2453         (build_call_array): Declare.
2454         (call_expr_arg): Declare.
2455         (call_expr_argp): Declare.
2456         (call_expr_arglist): Declare.
2457         (fold_build_call_list): Declare.
2458         (fold_build_call_list_initializer): Declare.
2459         (fold_call_expr): Declare to replace fold_builtin.
2460         (fold_builtin_fputs): Update to agree with modified definition.
2461         (fold_builtin_strcpy): Likewise.
2462         (fold_builtin_strncpy): Likewise.
2463         (fold_builtin_memory_chk): Likewise.
2464         (fold_builtin_stxcpy_chk): Likewise.
2465         (fold_builtin_strncpy_chk): Likewise.
2466         (fold_builtin_next_arg): Likewise.
2467         (fold_build_call_expr): Declare.
2468         (fold_builtin_call_list): Declare.
2469         (fold_builtin_call_valist): Declare.
2470         (build_call_expr): Declare.
2471         (validate_arglist): Update to agree with modified definition.
2472         (tree_operand_length): New.
2473         (call_expr_arg_iterator): New.
2474         (init_call_expr_arg_iterator): New.
2475         (next_call_expr_arg): New.
2476         (first_call_expr_arg): New.
2477         (more_call_expr_args_p): New.
2478         (FOR_EACH_CALL_EXPR_ARG): New.
2479
2480         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
2481         and tcc_gimple_stmt.
2482         (tree_code_size): Update documentation.  Use sizeof (tree) rather
2483         than sizeof (char *).
2484         (tree_size): Likewise.  Add case for tcc_vl_exp.
2485         (tree_node_structure): Add case for tcc_vl_exp.
2486         (contains_placeholder_p): Likewise.
2487         (substitute_in_expr): Likewise.
2488         (substitute_placeholder_in_expr): Likewise.
2489         (stabilize_reference_1): Likewise.
2490         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
2491         to diagnose breakage of this interface for constructing CALL_EXPRs.
2492         (build_nt): Add similar assertion here.
2493         (build_nt_call_list): New.
2494         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
2495         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
2496         TREE_CODE_LENGTH.
2497         (get_callee_fndecl): Use new CALL_EXPR accessors.
2498         (tree_operand_check_failed): Change parameters to pass entire node
2499         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
2500         (process_call_operands): New.
2501         (build_vl_exp_stat): New.
2502         (build_call_list): New.
2503         (build_call_nary): New.
2504         (build_call_valist): New.
2505         (build_call_array): New.
2506         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2507         (call_expr_arglist): New.
2508
2509         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
2510         tcc_vl_exp instead of a fixed-size tcc_expression.
2511
2512         * doc/c-tree.texi (CALL_EXPR): Document new representation and
2513         accessors for CALL_EXPRs.
2514         (AGGR_INIT_EXPR): Likewise.
2515
2516 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2517             Brooks Moses  <brooks.moses@codesourcery.com>
2518             Lee Millward  <lee.millward@codesourcery.com>
2519
2520         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
2521         (expand_builtin_nonlocal_goto): Change parameter to be entire
2522         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
2523         (expand_builtin_prefetch): Likewise.
2524         (expand_builtin_classify_type): Likewise.
2525         (mathfn_built_in): Return NULL_TREE instead of 0.
2526         (expand_errno_check): Use new CALL_EXPR accessors.
2527         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
2528         Return NULL_RTX instead of 0.
2529         (expand_builtin_mathfn_2): Likewise.
2530         (expand_builtin_mathfn_3): Likewise.
2531         (expand_builtin_interclass_mathfn): Likewise.
2532         (expand_builtin_sincos): Likewise.
2533         (expand_builtin_cexpi): Likewise.
2534         (expand_builtin_int_roundingfn): Likewise.
2535         (expand_builtin_int_roundingfn_2): Likewise.
2536         (expand_builtin_pow): Likewise.
2537         (expand_builtin_powi): Likewise.
2538         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
2539         of arglist, fixing callers appropriately.  Use new CALL_EXPR
2540         accessors and constructors.  Return NULL_RTX instead of 0.
2541         (expand_builtin_strstr): Likewise.
2542         (expand_builtin_strchr): Likewise.
2543         (expand_builtin_strrchr): Likewise.
2544         (expand_builtin_strpbrk): Likewise.
2545         (expand_builtin_memcpy): Likewise.
2546         (expand_builtin_mempcpy): Likewise.
2547         (expand_builtin_mempcpy_args): New.
2548         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
2549         (expand_builtin_memmove_args): New.
2550         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
2551         (expand_movstr): Likewise.
2552         (expand_builtin_strcpy): Likewise.
2553         (expand_builtin_strcpy_args): New.
2554         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
2555         (expand_builtin_strncpy): Likewise.
2556         (expand_builtin_memset): Likewise.
2557         (expand_builtin_memset_args): New.
2558         (expand_builtin_bzero): Similarly to expand_builtin_memset.
2559         (expand_builtin_memcmp): Likewise.
2560         (expand_builtin_strcmp): Likewise.
2561         (expand_builtin_strncmp): Likewise.
2562         (expand_builtin_strcat): Likewise.
2563         (expand_builtin_strncat): Likewise.
2564         (expand_builtin_strspn): Likewise.
2565         (expand_builtin_strcspn): Likewise.
2566         (expand_builtin_args_info): Likewise.
2567         (expand_builtin_va_start): Likewise.
2568         (gimplify_va_arg_expr): Likewise.
2569         (expand_builtin_va_end): Likewise.
2570         (expand_builtin_va_copy): Likewise.
2571         (expand_builtin_frame_address): Likewise.
2572         (expand_builtin_alloca): Likewise.
2573         (expand_builtin_bswap): Likewise.
2574         (expand_builtin_unop): Likewise.
2575         (expand_builtin_fputs): Likewise.
2576         (expand_builtin_expect): Likewise.
2577         (expand_builtin_fabs): Likewise.
2578         (expand_builtin_copysign): Likewise.
2579         (expand_builtin_printf): Likewise.
2580         (expand_builtin_fprintf): Likewise.
2581         (expand_builtin_sprintf): Likewise.
2582         (expand_builtin_init_trampoline): Likewise.
2583         (expand_builtin_signbit): Likewise.
2584         (expand_builtin_fork_or_exec): Likewise.
2585         (expand_builtin_sync_operation): Likewise.
2586         (expand_builtin_compare_and_swap): Likewise.
2587         (expand_builtin_lock_test_and_set): Likewise.
2588         (expand_builtin_lock_release): Likewise.
2589         (expand_builtin): Likewise.
2590         (builtin_mathfn_code): Likewise.
2591
2592         (fold_builtin_constant_p): Pass call arguments individually instead
2593         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
2594         accessors and constructors.  Return NULL_TREE instead of 0.
2595         (fold_builtin_expect): Likewise.
2596         (fold_builtin_classify_type): Likewise.
2597         (fold_builtin_strlen): Likewise.
2598         (fold_builtin_nan): Likewise.
2599         (integer_valued_real_p): Likewise.
2600         (fold_trunc_transparent_mathfn): Likewise.
2601         (fold_fixed_mathfn): Likewise.
2602         (fold_builtin_cabs): Likewise.
2603         (fold_builtin_sqrt): Likewise.
2604         (fold_builtin_cbrt): Likewise.
2605         (fold_builtin_cos): Likewise.
2606         (fold_builtin_cosh): Likewise.
2607         (fold_builtin_tan): Likewise.
2608         (fold_builtin_sincos): Likewise.
2609         (fold_builtin_cexp): Likewise.
2610         (fold_builtin_trunc): Likewise.
2611         (fold_builtin_floor): Likewise.
2612         (fold_builtin_ceil): Likewise.
2613         (fold_builtin_round): Likewise.
2614         (fold_builtin_int_roundingfn): Likewise.
2615         (fold_builtin_bitop): Likewise.
2616         (fold_builtin_bswap): Likewise.
2617         (fold_builtin_logarithm): Likewise.
2618         (fold_builtin_hypot): Likewise.
2619         (fold_builtin_pow): Likewise.
2620         (fold_builtin_powi): Likewise.
2621         (fold_builtin_exponent): Likewise.
2622         (fold_builtin_memset): Likewise.
2623         (fold_builtin_bzero): Likewise.
2624         (fold_builtin_memory_op): Likewise.
2625         (fold_builtin_bcopy): Deleted; call site changed to invoke
2626         fold_builtin_memory_op directly.
2627         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
2628         (fold_builtin_strncpy): Likewise.
2629         (fold_builtin_memcmp): Likewise.
2630         (fold_builtin_strcmp): Likewise.
2631         (fold_builtin_strncmp): Likewise.
2632         (fold_builtin_signbit): Likewise.
2633         (fold_builtin_copysign): Likewise.
2634         (fold_builtin_isascii): Likewise.
2635         (fold_builtin_toascii): Likewise.
2636         (fold_builtin_isdigit): Likewise.
2637         (fold_builtin_fabs): Likewise.
2638         (fold_builtin_abs): Likewise.
2639         (fold_builtin_fmin_fmax): Likewise.
2640         (fold_builtin_carg): Likewise.
2641         (fold_builtin_classify): Likewise.
2642         (fold_builtin_unordered_cmp): Likewise.
2643
2644         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
2645         New functions split out from fold_builtin_1.
2646         (fold_builtin_n): New.
2647         (fold_builtin_varargs): New.
2648         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
2649         instead.
2650         (fold_call_expr): New.
2651         (build_function_call_expr): Rewrite to use new helper function.
2652         (fold_builtin_call_list): New.
2653         (build_call_expr): New.
2654         (fold_builtin_call_valist): New.
2655         (rewrite_call_expr): New.
2656         (validate_arg): New.
2657         (validate_arglist): Change parameter to be entire CALL_EXPR instead
2658         of an arglist.  Change return type to bool.  Use new CALL_EXPR
2659         accessors.
2660
2661         (fold_builtin_strstr):  Pass call arguments individually instead
2662         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
2663         accessors and constructors.  Return NULL_TREE instead of 0.
2664         (fold_builtin_strchr): Likewise.
2665         (fold_builtin_strrchr): Likewise.
2666         (fold_builtin_strpbrk): Likewise.
2667         (fold_builtin_strcat): Likewise.
2668         (fold_builtin_strncat): Likewise.
2669         (fold_builtin_strspn): Likewise.
2670         (fold_builtin_strcspn): Likewise.
2671         (fold_builtin_fputs): Likewise.
2672         (fold_builtin_next_arg): Likewise.
2673         (fold_builtin_sprintf): Likewise.
2674
2675         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
2676         NULL_RTX instead of 0.
2677         (expand_builtin_memory_chk): Likewise.
2678         (maybe_emit_chk_warning): Likewise.
2679         (maybe_emit_sprintf_chk_warning): Likewise.
2680
2681         (fold_builtin_object_size): Pass call arguments individually instead
2682         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
2683         accessors and constructors.  Return NULL_TREE instead of 0.
2684         (fold_builtin_memory_chk): Likewise.
2685         (fold_builtin_stxcpy_chk): Likewise.
2686         (fold_builtin_strncpy_chk): Likewise.
2687         (fold_builtin_strcat_chk): Likewise.
2688         (fold_builtin_strcat_chk): Likewise.
2689         (fold_builtin_strncat_chk): Likewise.
2690         (fold_builtin_sprintf_chk): Likewise.
2691         (fold_builtin_snprintf_chk): Likewise.
2692         (fold_builtin_printf): Likewise.
2693         (fold_builtin_vprintf): Likewise.
2694
2695         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
2696         constructors.
2697         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
2698         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2699         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
2700         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
2701         (fold_unary): Likewise.
2702         (fold_binary): Likewise.
2703         (fold_ternary): Remove CALL_EXPR case, since they are no longer
2704         ternary expressions.
2705         (fold): Add logic for tcc_vl_exp.
2706         (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
2707         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2708         (fold_build3_stat): Add assertion to flag broken interface for
2709         constructing CALL_EXPRs.
2710         (fold_build_call_list): New.
2711         (fold_build_call_list_initializer): New.
2712         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
2713         constructors.
2714         (fold_strip_sign_ops): Likewise.
2715
2716 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2717             Brooks Moses  <brooks.moses@codesourcery.com>
2718             Lee Millward  <lee.millward@codesourcery.com>
2719
2720         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
2721         accessors and dump arguments explicitly.
2722
2723         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
2724         TREE_CODE_LENGTH.
2725         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
2726         explicitly.
2727         (print_call_name): Use new CALL_EXPR accessors.
2728
2729         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
2730         CALL_EXPR arguments explicitly instead of as a list.  Use
2731         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2732
2733         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
2734         (vrp_visit_stmt): Likewise.
2735
2736         * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
2737         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
2738         TREE_CODE_LENGTH.
2739         (force_move_till_expr): Likewise.
2740
2741         * targhooks.c (default_external_stack_protect_fail): Use
2742         build_call_expr instead of build_function_call_expr.
2743         (default_hidden_stack_protect_fail): Likewise.
2744
2745         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
2746         build the call.
2747
2748         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
2749         and walk arguments explicitly.
2750
2751         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
2752         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2753         (expand_simple_operations): Likewise.
2754         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
2755
2756         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
2757         of TREE_CODE_LENGTH.
2758         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
2759
2760         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
2761         instead of TREE_CODE_LENGTH.
2762
2763         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
2764         (tree_ic_transform): Likewise.
2765         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
2766         parameter instead of arglist.  Fix callers.
2767         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
2768         (tree_stringops_transform): Likewise.
2769         (tree_indirect_call_to_profile): Likewise.
2770         (tree_stringops_values_to_profile): Likewise.
2771
2772         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
2773         (eliminate_tail_call): Likewise.
2774
2775         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
2776
2777         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2778         Use TREE_OPERAND_LENGTH and generalize to handle any number of
2779         operands.
2780         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
2781
2782         * omp-low.c (build_omp_barrier): Use build_call_expr.
2783         (lower_rec_input_clauses): Likewise.
2784         (lower_reduction_clauses): Likewise.
2785         (expand_parallel_call): Likewise.
2786         (maybe_catch_exception): Likewise.
2787         (expand_omp_for_generic): Likewise.
2788         (expand_omp_for_static_nochunk): Likewise.
2789         (expand_omp_sections): Likewise.
2790         (lower_omp_single_simple): Likewise.
2791         (lower_omp_single_copy): Likewise.
2792         (lower_omp_master): Likewise.
2793         (lower_omp_ordered): Likewise.
2794         (lower_omp_critical): Likewise.
2795
2796         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
2797         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
2798
2799         * tree-gimple.c (is_gimple_call_addr): Fix doc.
2800         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
2801         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
2802
2803         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
2804         and generalize to handle any number of operands.
2805         (chrec_contains_undetermined): Likewise.
2806         (tree_contains_chrecs): Likewise.
2807         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
2808
2809         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
2810
2811         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
2812         fold_call_expr instead of fold_builtin.
2813         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
2814         match declarations there.
2815         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
2816         updates.
2817
2818         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
2819         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2820
2821         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
2822         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
2823
2824         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
2825         accessors.
2826
2827         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
2828         (execute_cse_sincos): Use new CALL_EXPR accessors.
2829
2830         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
2831
2832         * gimple-low.c (lower_function_body): Use build_call_expr.
2833         (lower_builtin_setjmp): Likewise.
2834
2835         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
2836         (set_storage_via_libcall): Likewise.
2837         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
2838         instead of TREE_CODE_LENGTH.
2839         (expand_expr_real_1): Use new CALL_EXPR accessors.
2840
2841         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
2842         generalize to handle any number of operands.
2843         (TB_parent_eq): Likewise.
2844
2845         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
2846         (strip_builtin_expect): Likewise.
2847
2848         * function.c (gimplify_parameters): Use build_call_expr.
2849
2850         * tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
2851         instead of TREE_CODE_LENGTH.
2852
2853         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
2854         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
2855
2856         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
2857         iterators.
2858
2859         * gimplify.c (build_stack_save_restore): Use build_call_expr.
2860         (gimplify_decl_expr): Likewise.
2861         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
2862         Use new CALL_EXPR iterators.
2863         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
2864         (gimplify_modify_expr_to_memset): Likewise.
2865         (gimplify_variable_sized_compare): Likewise.
2866         (gimplify_omp_atomic_fetch_op): Likewise.
2867         (gimplify_omp_atomic_pipeline): Likewise.
2868         (gimplify_omp_atomic_mutex): Likewise.
2869         (gimplify_function_tree): Likewise.
2870
2871         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
2872         (call_expr_flags): Likewise.
2873         (expand_call): Likewise.
2874
2875         * except.c (expand_builtin_eh_return_data_regno): Pass entire
2876         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
2877         accessors.
2878
2879         * coverage.c (create_coverage): Use build_call_expr.
2880
2881         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
2882         (temp_call_expr_obstack): New.
2883         (pool_copy_list): Delete.
2884         (temp_copy_call_expr): New.
2885         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
2886         CALL_EXPR accessors.  Get rid of special goo for copying argument
2887         lists and use temp_copy_call_expr instead.
2888         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
2889         CALL_EXPR accessors.
2890         (create_expression_by_pieces): Likewise.  Use build_call_array
2891         to construct the result instead of fold_build3.
2892         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
2893         dealing with argument lists.
2894         (init_pre): Remove references to expression_node_pool and
2895         list_node_pool.  Init temp_call_expr_obstack instead.
2896         (fini_pre): Remove references to expression_node_pool and
2897         list_node_pool.
2898
2899         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
2900         and walk arguments explicitly instead of as a list.
2901
2902         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
2903         (mx_register_decls): Likewise.
2904         (mudflap_register_call): Likewise.
2905         (mudflap_finish_file): Likewise.
2906
2907         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
2908         (ipa_callsite_compute_param): Likewise.
2909
2910         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
2911         accessors and constructor.
2912
2913         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
2914         accessors and constructor.
2915         (convert_tramp_reference): Likewise.
2916         (convert_call_expr): Likewise.
2917         (finalize_nesting_tree_1): Likewise.
2918
2919         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
2920         accessors.
2921
2922         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
2923
2924         * tree-inline.c (initialize_inlined_parameters): Pass entire
2925         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
2926         accessors.
2927         (estimate_num_insns_1): Use new CALL_EXPR accessors.
2928         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
2929
2930         * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
2931         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2932         (vectorizable_reduction): Likewise.
2933         (vectorizable_call): Use new CALL_EXPR iterators.
2934         (vectorizable_conversion): Use build_call_expr.
2935         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
2936         (vect_gen_widened_results_half): Use build_call_expr.
2937         (vect_setup_realignment): Likewise.
2938         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
2939
2940         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
2941         (pass_through_call): Likewise.
2942         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
2943         fold_builtin.
2944
2945         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
2946         (tree_gen_pow2_profiler): Likewise.
2947         (tree_gen_one_value_profiler): Likewise.
2948         (tree_gen_ic_func_profiler): Likewise.
2949         (tree_gen_average_profiler): Likewise.
2950         (tree_gen_ior_profiler): Likewise.
2951
2952         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
2953         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
2954         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2955
2956         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
2957         of TREE_CODE_LENGTH.
2958
2959         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
2960         of TREE_CODE_LENGTH.
2961
2962         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
2963         constructor.
2964         (convert_to_integer): Likewise.
2965
2966         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
2967         accessors.
2968
2969 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2970             Brooks Moses  <brooks.moses@codesourcery.com>
2971             Lee Millward  <lee.millward@codesourcery.com>
2972
2973         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
2974         accessors.
2975         * config/frv/frv.c (frv_expand_builtin): Likewise.
2976         * config/s390/s390.c (s390_expand_builtin): Likewise.
2977
2978         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
2979         (sparc_expand_builtin): Use new CALL_EXPR accessors.
2980
2981         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
2982         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
2983         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
2984         (ix86_expand_store_builtin): Likewise.
2985         (ix86_expand_unop_builtin): Likewise.
2986         (ix86_expand_unop1_builtin): Likewise.
2987         (ix86_expand_sse_compare): Likewise.
2988         (ix86_expand_sse_comi): Likewise.
2989         (ix86_expand_vec_init_builtin): Likewise.
2990         (ix86_expand_vec_ext_builtin): Likewise.
2991         (ix86_expand_vec_set_builtin): Likewise.
2992         (ix86_expand_builtin): Use new CALL_EXPR accessors.
2993
2994         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
2995         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
2996
2997         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
2998         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
2999         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
3000
3001         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
3002         build_call_expr.
3003         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3004         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
3005         arglist.  Use new CALL_EXPR accessors.  Fix callers.
3006         (altivec_expand_abs_builtin): Likewise.
3007         (rs6000_expand_binop_builtin): Likewise.
3008         (altivec_expand_predicate_builtin): Likewise.
3009         (altivec_expand_lv_builtin): Likewise.
3010         (spe_expand_stv_builtin): Likewise.
3011         (altivec_expand_stv_builtin): Likewise.
3012         (rs6000_expand_ternop_builtin): Likewise.
3013         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
3014         (altivec_expand_st_builtin): Likewise.
3015         (altivec_expand_dst_builtin): Likewise.
3016         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
3017         arglist.  Use new CALL_EXPR accessors.  Fix callers.
3018         (altivec_expand_vec_set_builtin): Likewise.
3019         (altivec_expand_vec_ext_builtin): Likewise.
3020         (altivec_expand_builtin): Use new CALL_EXPR accessors.
3021         (spe_expand_builtin): Likewise.
3022         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
3023         arglist.  Use new CALL_EXPR accessors.  Fix callers.
3024         (spe_expand_evsel_builtin): Likewise.
3025         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
3026         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
3027
3028         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
3029         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
3030         (arm_expand_unop_builtin): Likewise.
3031         (arm_expand_builtin): Use new CALL_EXPR accessors.
3032
3033         * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
3034         accessors.
3035
3036         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
3037         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
3038         (bfin_expand_unop_builtin): Likewise.
3039         (bfin_expand_builtin): Use new CALL_EXPR accessors.
3040
3041 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
3042             Brooks Moses  <brooks.moses@codesourcery.com>
3043             Lee Millward  <lee.millward@codesourcery.com>
3044
3045         * c-semantics.c (build_stmt): Add internal diagnostic check.
3046
3047         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
3048         accessors.  Print arguments explicitly instead of as a list.
3049
3050         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
3051
3052         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
3053         (c_finish_omp_flish): Likewise.
3054
3055         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
3056         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
3057         instead of TREE_CODE_LENGTH.
3058         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
3059         (c_warn_unused_result): Likewise.
3060
3061 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3062
3063         PR c/26494
3064         * doc/invoke.texi (Warning Options): Remove
3065         -Werror-implicit-function-declaration.
3066         (Wimplicit-function-declaration): Update description.
3067         * opts.c (common_handle_option): Move handling of -Werror=* to...
3068         (enable_warning_as_error): ...here.
3069         * opts.h (enable_warning_as_error): Declare.
3070         * c-decl.c (implicit_decl_warning): Unless
3071         -Wno-implicit-function-declaration is given, emit a pedwarn if
3072         -std=c99 or emit a warning if -Wimplicit-function-declaration.
3073         * c.opt (Wimplicit-function-declaration): Replace
3074         mesg_implicit_function_declaration with
3075         warn_implicit_function_declaration.
3076         * c-opts.c (c_common_handle_option):
3077         -Werror-implicit-function-declaration is exactly equal as
3078         -Werror=implicit-function-declaration.
3079         (set_Wimplicit): Replace mesg_implicit_function_declaration with
3080         warn_implicit_function_declaration.
3081         (c_common_post_options): -Wimplict-function-declaration is enabled
3082         by default by -std=c99, otherwise is disabled by default.
3083         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
3084
3085 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
3086
3087         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
3088         DECL on the rhs to a DECL on the lhs for debug info purposes if the
3089         former is ignored but not the latter.
3090
3091 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
3092
3093         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
3094         is made and the reference doesn't use the alias set of its type,
3095         do not create the temporary using that type.
3096
3097 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
3098
3099         * jump.c: Remove prototypes for delete_computation and
3100         delete_prior_computation.
3101
3102 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
3103
3104         * jump.c (get_label_after): Delete.
3105         (get_label_before, delete_computation, delete_jump,
3106         delete_prior_computation, follow_jumps): Move...
3107         * reorg.c (delete_computation, delete_prior_computation): ... here...
3108         (get_label_before, delete_jump): ... making these static ...
3109         (follow_jumps): ... and simplifying this since it only runs after
3110         reload.
3111         * rtl.h (get_label_after, get_label_before, delete_jump,
3112         follow_jumps): Delete prototypes.
3113
3114 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
3115
3116         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
3117
3118 2007-02-15  Nick Clifton  <nickc@redhat.com>
3119
3120         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
3121         order to prevent it from being munged by the target.
3122
3123 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
3124
3125         * config/i386/i386.md: Remove misleading comment.
3126
3127 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3128
3129         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
3130         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
3131         invalid patterns.
3132
3133 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3134
3135         * tree-sra.c (instantiate_missing_elements): Canonicalize
3136         bit-field types.
3137         (sra_build_assignment): New.
3138         (generate_copy_inout, generate_element_copy,
3139         generate_element_zero, generate_one_element_init): Use it.
3140
3141 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3142
3143         * tree-sra.c (instantiate_missing_elements): Canonicalize
3144         bit-field types.
3145         (sra_build_assignment): New.
3146         (generate_copy_inout, generate_element_copy,
3147         generate_element_zero, generate_one_element_init): Use it.
3148
3149 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3150
3151         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
3152         limbo die nodes.
3153
3154 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
3155
3156         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
3157         types as aggregates not scalars.
3158         * function.c (assign_stack_temp_for_type): Likewise.
3159
3160 2007-02-14  Roger Sayle  <roger@eyesopen.com>
3161             Zdenek Dvorak  <dvorakz@suse.cz>
3162
3163         * tree-dump.c (dump_switch_p_1): Require exact match of the option
3164         name.
3165
3166 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
3167
3168         * passes.c (next_pass_1): Clear the next field of the copied
3169         pass structure.
3170
3171 2007-02-14  Richard Henderson  <rth@redhat.com>
3172
3173         * tree-sra.c (early_sra): New.
3174         (decl_can_be_decomposed_p): Deny va_list if early_sra.
3175         (tree_sra_early, pass_sra_early): New.
3176         * tree-pass.h (pass_sra_early): Declare.
3177         * passes.c (init_optimization_passes): Use it.
3178
3179 2007-02-14  Richard Guenther  <rguenther@suse.de>
3180
3181         * flags.h (issue_strict_overflow_warning): Convert to a macro.
3182
3183 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
3184
3185          PR tree-optimization/30771
3186         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
3187         also phi nodes.
3188         (vect_analyze_operations): Induction phis can now be marked as
3189         used_in_loop.
3190         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
3191         Update documentation accordingly.
3192
3193 2007-02-14  Nick Clifton  <nickc@redhat.com>
3194
3195         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
3196         most 3 arguments are supported.
3197         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
3198
3199 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
3200
3201         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
3202         Ensure dst->current is valid.
3203
3204 2007-02-13  Paul Brook  <paul@codesourcery.com>
3205
3206         * config.gcc: Add arm*-*-uclinux-*eabi.
3207         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3208         (SUBTARGET_EXTRA_LINK_SPEC): Define.
3209         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
3210         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
3211         (LINK_SPEC): Define.
3212         (LIB_SPEC): Define.
3213         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
3214         register.
3215         * config/arm/uclinux-eabi.h: New file.
3216         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
3217         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
3218         based targets.
3219
3220 2007-02-13  Ian Lance Taylor  <iant@google.com>
3221
3222         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
3223         * flags.h (warn_strict_overflow): Declare.
3224         (enum warn_strict_overflow_code): Define.
3225         (issue_strict_overflow_warning): New static inline function.
3226         * opts.c (warn_strict_overflow): New variable.
3227         (common_handle_option): Handle OPT_Wstrict_overflow and
3228         OPT_Wstrict_overflow_.
3229         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
3230         OPT_Wall.
3231         * fold-const.c: Include intl.h.
3232         (fold_deferring_overflow_warnings): New static variable.
3233         (fold_deferred_overflow_warning): New static variable.
3234         (fold_deferred_overflow_code): New static variable.
3235         (fold_defer_overflow_warnings): New function.
3236         (fold_undefer_overflow_warnings): New function.
3237         (fold_undefer_and_ignore_overflow_warnings): New function.
3238         (fold_deferring_overflow_warnings_p): New function.
3239         (fold_overflow_warning): New static function.
3240         (make_range): Add strict_overflow_p parameter.  Change all
3241         callers.
3242         (extract_muldiv, extract_muldiv_1): Likewise.
3243         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
3244         tree_expr_nonnegative_p.
3245         (fold_negate_expr): Call fold_overflow_warning.
3246         (fold_range_test): Likewise.
3247         (fold_comparison): Likewise.
3248         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
3249         instead of tree_expr_nonnegative_p.
3250         (tree_expr_nonnegative_warnv_p): Rename from
3251         tree_expr_nonnegative_p, add strict_overflow_p parameter.
3252         (tree_expr_nonnegative_p): New function.
3253         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
3254         strict_overflow_p parameter.
3255         (tree_expr_nonzero_p): New function.
3256         * passes.c (verify_interpass_invariants): New static function.
3257         (execute_one_pass): Call it.
3258         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
3259         warnings.
3260         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
3261         (estimate_numbers_of_iterations): Likewise.
3262         (scev_probably_wraps_p): Likewise.
3263         * tree-ssa-ccp.c: Include "toplev.h".
3264         (evaluate_stmt): Defer fold overflow warnings until we know we are
3265         going to optimize.
3266         (struct fold_stmt_r_data): Add stmt field.
3267         (fold_stmt_r): Defer fold overflow warnings until we know we
3268         optimized.
3269         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
3270         (fold_stmt_inplace): Likewise.
3271         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
3272         (cleanup_control_expr_graph): Defer fold overflow warnings until
3273         we know we are going to optimize.
3274         * tree-cfg.c (fold_cond_expr_cond): Likewise.
3275         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
3276         Likewise.
3277         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
3278         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
3279         * tree-ssa-loop-manip.c (create_iv): Likewise.
3280         * c-typeck.c (build_conditional_expr): Likewise.
3281         (build_binary_op): Likewise.
3282         * tree-vrp.c (vrp_expr_computes_nonzero): Call
3283         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
3284         (extract_range_from_unary_expr): Likewise.
3285         * simplify-rtx.c (simplify_const_relational_operation): Warn when
3286         assuming that signed overflow does not occur.
3287         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
3288         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
3289         (fold_defer_overflow_warnings): Declare.
3290         (fold_undefer_overflow_warnings): Declare.
3291         (fold_undefer_and_ignore_overflow_warnings): Declare.
3292         (fold_deferring_overflow_warnings_p): Declare.
3293         (tree_expr_nonzero_warnv_p): Declare.
3294         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
3295         of warning options.
3296         (Warning Options): Document -Wstrict-overflow.
3297         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
3298         (tree-ssa-ccp.o): Likewise.
3299         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
3300         (fold-const.o): Depend on intl.h.
3301
3302 2007-02-13  Ian Lance Taylor  <iant@google.com>
3303
3304         PR middle-end/30751
3305         * lower-subreg.c (resolve_simple_move): Decompose subregs in
3306         addresses.
3307
3308 2007-02-13  Stuart Hastings  <stuart@apple.com>
3309
3310         * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
3311
3312 2007-02-13  Richard Henderson  <rth@redhat.com>
3313
3314         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
3315         handled_component_p before looking for the indirect_ref.
3316
3317 2007-02-13  Richard Henderson  <rth@redhat.com>
3318
3319         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
3320         remove flags clobber.
3321         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
3322         (bswaphi_lowpart): New.
3323         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
3324         remove TARGET_BSWAP test.  Delete expander of the same name.
3325
3326         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
3327         (expand_unop): Use them.
3328
3329 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
3330
3331         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
3332         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
3333         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
3334         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
3335         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
3336         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
3337         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
3338         assembler dialect choice from asm templates.
3339
3340 2007-02-12  Richard Henderson  <rth@redhat.com>
3341
3342         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
3343         (fixuns_trunc<SSEMODEF>si2): Use it.
3344         * config/i386/sse.md (vec_setv4sf_0): Export.
3345         * config/i386/i386.c (ix86_build_const_vector): Export.
3346         (ix86_split_convert_uns_si_sse): Rename from
3347         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
3348         * config/i386/i386-protos.h: Update.
3349
3350 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3351
3352         PR c/29521
3353         * c-typeck.c (c_finish_return): Improve warning message.
3354
3355 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3356
3357         * alias.c (find_symbolic_term): Delete unused function.
3358
3359 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
3360
3361         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
3362         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
3363         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
3364
3365 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3366
3367         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3368         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3369         the function, temporarily point the debug interface to the null one.
3370
3371 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3372
3373         * dwarf2out.c (round_up_to_align): New static function.
3374         (field_byte_offset): Use it to round the offset.
3375
3376 2007-02-12  Richard Henderson  <rth@redhat.com>
3377
3378         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
3379         (inswl_const): Export.
3380
3381 2007-02-12  Richard Henderson  <rth@redhat.com>
3382
3383         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
3384         result mode of the libcall, convert back to outmode.
3385
3386 2007-02-12  Roger Sayle  <roger@eyesopen.com>
3387
3388         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
3389         (bswapdi2): New define_expand to implement 32-bit implementation.
3390
3391 2007-02-12  Nick Clifton  <nickc@redhat.com>
3392
3393         * doc/invoke.texi (Overall Options): Document --help=.
3394         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
3395         (cc1_options): Pass --help= on to cc1.
3396         (display_help): Add description of --help=.
3397         (process_command): Add code to handle --help=.  Allow translated
3398         --help and --target-help switches to be passed on to compiler
3399         sub-process.
3400         (main): Remove unused if statement.
3401         * opts.c (columns): Remove.
3402         (LEFT_COLUMN): Define.
3403         (wrap_help): Add columns argument.
3404         (print_filtered_help): Change parameters to be an include bitmask,
3405         an exclude bitmask, an any bitmask and the column width.  Move the
3406         code to display the params list here.  Add code to display the
3407         status of options rather than their descriptions if the quiet flag
3408         is not active.
3409         (print_specific_help): Change parameters to be an include bitmask,
3410         an exclude bitmask and an any bitmask.  Move code to look up the
3411         column width here.  Decide upon the title for an options listing.
3412         (common_handle_options): Add code to handle --help=.  Adapt code