OSDN Git Service

af9e9fd48f4c5de0512d74b3bccbf763bc56a770
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
2
3         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
4         __STDC_WANT_DEC_FP__.
5
6 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
7
8         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
9         for long double compatibility.
10         * configure: Regenerate.
11
12 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13
14         PR rtl-optimization/29841
15         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
16         trap instructions.
17         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
18         that may cause control flow transfer from being moved.
19
20 2007-04-18  Jan Hubicka  <jh@suse.cz>
21
22         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
23         types.
24
25 2007-04-18  Eric Christopher  <echristo@apple.com>
26
27         * config/rs6000/darwin.md (load_macho_picbase): Use link register
28         only. Update operands.
29         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
30         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
31         link register to pic register.
32
33 2007-04-18  Dirk Mueller  <dmueller@suse.de>
34
35         PR diagnostic/31227
36         * tree-vrp.c (search_for_addr_array): New.
37         (check_array_bounds): Suppress warning about
38         address taken of array refs if its not de-referenced.
39
40 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
41
42         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
43         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
44
45         * tree-vectorizer.h (NITERS_KNOWN_P): New.
46         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
47         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
48
49         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
50         dump print.
51         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
52         print message.
53         (vect_analyze_scalar_cycles): Fix indentation.
54         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
55         (vect_mark_relevant): Include phis in relevance analysis.
56
57         * tree-vect-transform.c (vect_transform_loop): Add an assert.
58
59 2007-04-18  Anatoly Sokolov <aesok@post.ru>
60
61         * config/avr/avr.c (ptrreg_to_str): Replace error() with
62         output_operand_lossage().
63
64 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
65
66         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
67         the unused code for reduction without adjust-in-epilog to simplify the
68         function.
69
70 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
71
72         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
73         (S390_TDC_NEGATIVE_ZERO): New constant.
74         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
75         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
76         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
77         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
78         (S390_TDC_POSITIVE_INFINITY): New constant.
79         (S390_TDC_NEGATIVE_INFINITY): New constant.
80         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
81         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
82         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
83         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
84         (S390_TDC_INFINITY): New constant.
85         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
86         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
87         optimization for UNSPEC_CCZ_TO_INT.
88         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
89         ("*ccz_to_int"): New insn.
90         ("isinf<mode>2"): New insn.
91         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
92         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
93         (UNSPEC_CCZ_TO_INT): New constant.
94
95 2007-04-18  Richard Guenther  <rguenther@suse.de>
96
97         PR tree-optimization/19431
98         PR tree-optimization/21463
99         * tree-pass.h (pass_phiprop): Declare.
100         * passes.c (init_optimization_passes): New phiprop pass.
101         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
102         (phivn_valid_p): New helper function.
103         (phiprop_insert_phi): Likewise.
104         (propagate_with_phi): Likewise.
105         (tree_ssa_phiprop): New propagator propagating loads
106         through phi nodes if profitable.
107
108 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
109
110         * tree-vect-analyze.c (process_use): New function.
111         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
112         Check phis in all bbs.
113         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
114         assert.
115
116 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
117
118         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
119         we use REG_EQUAL.
120
121 2007-04-17  Anatoly Sokolov <aesok@post.ru>
122
123         PR target/30483
124         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
125         error().
126
127 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
128
129         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
130         on "0".
131         (sse_vmmulv4sf3): Likewise.
132         (sse2_vmaddv2df3): Likewise.
133         (sse2_vmmulv2df3): Likewise.
134
135 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
136
137         PR rtl-optimization/31360
138         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
139         (target_reg_cost): New.
140         (init_set_costs): Initialize target_reg_cost.  Add comments
141         regarding the rationale of the costs.
142         (global_cost_for_size): Renamed to...
143         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
144         of register pressure.
145         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
146         estimate_reg_pressure_cost.  Add number of ivs.
147         (determine_set_costs): Dump target_reg_cost.
148         * loop-invariant.c (gain_for_invariant):  Use
149         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
150         (best_gain_for_invariant, find_invariants_to_move): Remove
151         n_inv_uses.
152         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
153         (target_reg_cost): Declare.
154         (global_cost_for_size): Declaration removed.
155         (estimate_reg_pressure_cost): Declare.
156
157 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
158
159         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
160         regnos into even/odd register pairs.
161         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
162         TDmode similar to the other floating point modes.
163         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
164         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
165         define_expand's.
166         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
167         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
168         (movdd_hardfloat64): Use TARGET_MFPGPR.
169
170 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
171
172         * reload1.c (delete_output_reload): Don't count output in n_inherited.
173
174         Revert
175         2005-01-05  Richard Henderson  <rth@redhat.com>
176         PR rtl-opt/10692
177         * reload1.c (do_input_reload): Restrict the optimization deleteing
178         a previous output reload to RELOAD_FOR_INPUT.
179
180 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
181
182         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
183         induc_vec_info_type.
184         (vectorizable_induction): New function declaration.
185         * tree-vect-transform.c (get_initial_def_for_induction): No need to
186         check if already vectorized.  Find first place in BB where new stmts
187         can be inserted.  Takes only one argument.
188         (vectorizable_induction): New function.
189         (vect_transform_stmt): Add case for induc_vec_info_type to call
190         vectorizable_induction.
191         (vect_transform_loop): Consider phis for vectorization.
192         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
193         condition.
194         (analyze_operations): Call vectorizable_induction when analyzing phis.
195         Fix comment.
196         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
197         (vect_mark_relevant): Include phis in relevance analysis.
198         (vect_mark_stmts_to_be_vectorize): Likewise.
199         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
200
201 2007-04-16  Lawrence Crowl  <crowl@google.com>
202
203         * doc/invoke.texi (Debugging Options): Add documentation for the
204         -femit-struct-debug options -femit-struct-debug-baseonly,
205         -femit-struct-debug-reduced, and
206         -femit-struct-debug-detailed[=...].
207
208         * c-opts.c (c_common_handle_option): Add
209         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
210         and OPT_femit_struct_debug_detailed_.
211         * c.opt: Add specifications for
212         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
213         and -femit-struct-debug-detailed[=...].
214         * opts.c (set_struct_debug_option): Parse the
215         -femit-struct-debug-... options.
216         * opts.c (matches_main_base, main_input_basename,
217         main_input_baselength, base_of_path, matches_main_base): Add
218         variables and functions to compare header base name to compilation
219         unit base name.
220         * opts.c (should_emit_struct_debug): Add to determine to emit a
221         structure based on the option.
222         (dump_struct_debug) Also disabled function to debug this
223         function.
224         * opts.c (handle_options): Save the base name of the
225         compilation unit.
226
227         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
228         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
229         This hook indicates if a type is generic.  Set it by default
230         to "never generic".
231         * langhooks.h (struct lang_hooks_for_types): Add a new hook
232         to determine if a struct type is generic or not.
233         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
234         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
235         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
236         with live C++ hook.
237
238         * flags.h (enum debug_info_usage): Add an enumeration to describe
239         a program's use of a structure type.
240         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
241         to indicate the program's usage of the type.  Filter structs based
242         on the -femit-struct-debug-... specification.
243         (gen_type_die): Split into two routines, gen_type_die and
244         gen_type_die_with_usage.  gen_type_die is now a wrapper
245         that assumes direct usage.
246         (gen_type_die_with_usage): Replace calls to gen_type_die
247         with gen_type_die_with_usage adding the program usage of
248         the referenced type.
249         (dwarf2out_imported_module_or_decl): Suppress struct debug
250         information using should_emit_struct_debug when appropriate.
251
252 2007-04-16  Ian Lance Taylor  <iant@google.com>
253
254         PR tree-optimization/31522
255         * tree-vrp.c (vr_phi_edge_counts): New static variable.
256         (vrp_initialize): Allocate vr_phi_edge_counts.
257         (vrp_visit_phi_node): Don't push to infinity if we saw a new
258         executable edge.  Drop test for all constants.
259         (vrp_finalize): Free vrp_phi_edge_counts.
260
261         * doc/cpp.texi (Common Predefined Macros): Clarify description of
262         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
263
264         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
265         predecessors at head rather than tail.
266
267 2007-04-16  Matthias Klose  <doko@debian.org>
268
269         * gcc/config/alpha/linux.h (CPP_SPEC): Define.
270         * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
271
272 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
273
274         * function.h: Remove sequence_stack extern declaration.
275
276 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
277
278         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
279         TARGET_FIDOA.
280         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
281         defined.
282
283 2007-04-16  Anatoly Sokolov <aesok@post.ru>
284
285         * config/avr/avr.c (avr_arch_types): Rearranging  array.
286         (enum avr_arch): Add.
287         (avr_mcu_types): Use avr_arch enumeration constants instead of
288         numbers.
289         * config/avr/avr.h (LINK_SPEC): Simplify.
290
291 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
292
293         * config/m68k/m68k.c (m68k_libcall_value,
294         m68k_function_value): Use macros for register names more.
295
296         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
297         instead.
298         (M68K_REGNAME): Use A6_REG.
299         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
300
301 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
302
303         PR middle-end/28071
304         * sched-int.h (struct deps): Split field 'pending_lists_length' into
305         'pending_read_list_length' and 'pending_write_list_length'.  Update
306         comment.
307         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
308         to handle two length counters instead of one.  Update all uses.
309         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
310         two length counters instead of one.
311         * sched-rgn.c (propagate_deps): Update to handle two length counters
312         instead of one.
313
314 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
315
316         PR target/31582
317         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
318         copy of source, pass it to ix86_expand_vector_set and return
319         it as target.
320
321 2007-04-16  David Ung  <davidu@mips.com>
322             Joseph Myers  <joseph@codesourcery.com>
323
324         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
325         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
326         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
327         Add 74K processor information.
328         * config/mips/mips.md: Include 74k.md.
329         (cpu): Add 74kc,74kf,74kx.
330         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
331         * config/mips/74k.md: New.
332         * doc/invoke.texi (MIPS Options): Document 74K support.
333
334 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
335
336         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
337         vectorizable_* functions.
338         * tree-vect-transform.c (vectorizable_call): Add check for
339         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
340         (vectorizable_store): likewise.
341         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
342         Add comments.
343         (vectorizable_operation, vectorizable_type_demotion): Likewise.
344         (vectorizable_type_promotion, vectorizable_load): Likewise.
345         (vectorizable_live_operation, vectorizable_condition): Likewise.
346         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
347         STMT_VINFO_LIVE_P.
348         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
349
350 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
351
352         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
353         register numbers more.
354         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
355         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
356         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
357         FUNCTION_VALUE_REGNO_P): Likewise.
358         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
359         STATIC_CHAIN_REGNUM): Likewise.
360         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
361         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
362         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
363         * config/m68k/m68k.md (FP_REG): New.
364
365 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
366
367         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
368         alignment on fido.
369
370 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
371
372         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
373         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
374         comment typos.
375
376 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
377
378         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
379         cold loops.
380
381 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
382
383         PR c/31520
384         * c-decl.c (finish_decl): Grab the type of the decl after the call
385         to store_init_value.
386
387 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
388
389         * common.opt (fforward-propagate): Fix "Optimization" annotation.
390
391 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
392
393         PR c++/25874
394         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
395         post dominators and cleanup cfg before returning.
396
397 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
398
399         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
400         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
401
402 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
403
404         * config.gcc: Recognize fido.
405         * config/m68k/m68k-devices.def (fidoa): New.
406         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
407         __mfido__.
408         (FL_FIDOA, TARGET_FIDOA): New.
409         * config/m68k/m68k.opt (mfidoa): New.
410
411 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
412
413         PR middle-end/31322
414         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
415         when a personality function is used.
416
417 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
418
419         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
420
421 2007-04-13  Mike Stump  <mrs@apple.com>
422
423         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
424         we can...
425         * config/darwin.opt (fapple-kext): Make C++ only.
426         * config/darwin.c (darwin_override_options): Remove code to ensure
427         -fapple-kext is given for C++ only.
428
429 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
430
431         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
432         * config/mips/mips.c (override_options): Call
433         SUBTARGET_OVERRIDE_OPTIONS, if defined.
434
435 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
436
437         * config/i386/i386.opt (msvr3-shlib): Removed.
438
439         * doc/invoke.texi: Remove -msvr3-shlib.
440
441 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
442
443         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
444         with "popcnt" instruction.
445
446 2007-04-13  Richard Guenther  <rguenther@suse.de>
447
448         PR tree-optimization/21258
449         * tree-vrp.c (compare_case_labels): New helper.
450         (find_switch_asserts): New function.
451         (find_assert_locations): Call it for SWITCH_EXPRs.
452
453 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
454
455         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
456         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
457         check is now implied in X87_FLOAT_MODE_P.
458         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
459         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
460         (fix_trunc<mode>_i386_fisttp): Ditto.
461         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
462         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
463         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
464         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
465         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
466         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
467         (unnamed_splitters): Ditto.
468         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
469         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
470         FIRST_SSE_REG for local functions when SSE math is enabled or
471         for functions with sseregparm attribute.
472         (standard_80387_constant_p): Return -1 if mode is not
473         X87_FLOAT_MODE_P.
474         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
475         (ix86_expand_compare): Ditto.
476         (ix86_expand_carry_flag_compare): Ditto.
477         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
478         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
479         DECIMAL_FLOAT_MODE_P.
480         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
481         of SCALAR_FLOAT_MODE_P.
482         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
483         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
484         checks before FLOAT_MODE_P.
485         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
486         before FLOAT_MODE_P.
487         [DIV]: Ditto.
488         [NEG]: Ditto.
489         [ABS]: Ditto.
490         [SQRT]: Ditto.
491         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
492
493 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
494             Charles Wilson  <libtool@cwilson.fastmail.fm>
495
496         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
497         (libgcc.mvars): Don't depend on them.
498         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
499         * exec-tool.in: New.
500
501 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
502
503         * doc/invoke.text (--help): Document --help=common.
504
505 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
506
507         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
508
509 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
510
511         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
512         * genemit.c (main): Emit #include "integrate.h".
513         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
514         (LOADGP_RTP): New mips_loadgp_style.
515         * config/mips/mips.h: Include config/vxworks-dummy.h.
516         (TARGET_RTP_PIC): New macro.
517         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
518         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
519         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
520         for TARGET_RTP_PIC.
521         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
522         -mvxworks-pic when using -mrtp and a PIC option.
523         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
524         for RTP PIC.
525         (mips_symbolic_constant_p, mips_symbolic_address_p)
526         (mips_symbol_insns): Handle SYMBOL_HALF.
527         (override_options): Warn about -G and -mrtp being used together.
528         Initialize mips_lo_relocs[SYMBOL_HALF].
529         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
530         (mips_emit_loadgp): Handle LOADGP_RTP.
531         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
532         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
533         (tablejump): Handle function-relative case table entries if
534         TARGET_RTP_PIC.
535         * config/mips/predicates.md (symbol_ref_operand): New predicate.
536
537 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
538
539         * config/mips/mips.md (load_call<mode>): Allow any general register.
540         destination.
541         (sibcall_value_internal, sibcall_value_multiple_internal)
542         (call_value_internal, call_value_split, call_value_multiple_internal)
543         (call_value_multiple_split): Remove constraints from operand 0.
544
545 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
546
547         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
548         rather than loadgp_noshared.
549         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
550         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
551         gen_loadgp.
552         * config/mips/mips.md (loadgp): Rename to...
553         (loadgp_newabi): ...this.
554         (loadgp_noshared): Rename to...
555         (loadgp_absolute): ...this.
556
557 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
558
559         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
560         false for locally-binding symbols.
561         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
562
563 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
564
565         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
566         (SYMBOL_GOT_PAGE_OFST): ...this.
567         (SYMBOL_GOT_GLOBAL): Rename to...
568         (SYMBOL_GOT_DISP): ...this.
569         (SYMBOL_GOTOFF_GLOBAL): Rename to...
570         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
571         * config/mips/mips.c (mips_global_symbol_p): New function.
572         (mips_symbol_binds_local_p): Likewise.
573         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
574         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use mips_global_symbol_p
575         and mips_symbol_binds_local_p.
576         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
577         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
578         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
579         SYMBOL_GOTOFF_DISP.
580         (mips_ok_for_lazy_binding_p): New function.
581         (mips_load_call_address, mips_expand_call): Use it.
582         (mips_dangerous_for_la25_p): Likewise.
583         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
584         (*got_disp<mode>): Use got_disp_operand instead of
585         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
586         SYMBOL_GOTOFF_GLOBAL.
587         (*got_page<mode>): Use got_page_ofst_operand instead of
588         local_got_operand.
589         * config/mips/predicates.md (const_call_insn_operand): Use
590         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
591         (global_got_operand): Rename to...
592         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
593         SYMBOL_GOT_GLOBAL.
594         (local_got_operand): Rename to...
595         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
596         of SYMBOL_GOT_LOCAL.
597
598 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
599
600         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
601         TARGET_CALL_CLOBBERED_GP.
602         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
603         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
604         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
605         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
606         of TARGET_ABICALLS && !TARGET_NEWABI.
607         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
608         * config/mips/mips.c (mips_load_call_address): Check
609         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
610         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
611         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
612         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
613         TARGET_ABICALLS && TARGET_NEWABI.
614         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
615         TARGET_ABICALLS.
616         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
617         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
618         TARGET_ABICALLS && TARGET_NEWABI.
619         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
620         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
621         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
622         whether indirect calls must use $25.
623         (mips_extra_live_on_entry): Check TARGET_GOT instead of
624         TARGET_ABICALLS.
625         * config/mips/mips.md (jal_macro): Check flag_pic and
626         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
627         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
628         instead of TARGET_ABICALLS.
629         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
630         TARGET_ABICALLS && TARGET_OLDABI.
631         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
632         (sibcall): In the comment above the define_insn, mention
633         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
634         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
635         instead of TARGET_ABICALLS.
636
637 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
638
639         * doc/md.texi (Blackfin family constraints): Document PA and PB.
640         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
641         (MACFLAGS_MATCH_P): New macro.
642         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
643         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
644         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
645         the other MACFLAG constants.
646         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
647         (flag_machi): Tighten constraints.  Renumber some of the operands.
648         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
649         output template.
650         (flag_machi_parts_acconly): New pattern.
651         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
652         used.
653         (flag_macinit1hi): Tighten constraints.
654         (flag_mul_macv2hi_parts_acconly): New pattern.
655
656         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
657         Use a more efficient implementation.
658         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
659         inline sequences when not optimizing for size.
660
661         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
662         movhi_high2low): Delete, merge functionality into...
663         (packv2hi): ... this pattern.
664
665         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
666         * config/bfin/bfin.opt (msim): New option.
667         (mcpu=): New option.
668         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
669         (bfin_cpu_t): Typedef of enum bfin_cpu.
670         (bfin_cpu_type): New declaration.
671         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
672         -msim and -mcpu= options.
673         (LIB_SPEC): Likewise.
674         * config/bfin/bfin.c (bfin_cpu_type): Define.
675         (bfin_handle_option): Handle -mcpu= option.
676         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
677         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
678         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
679
680 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
681
682         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
683         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
684         (powerpc-wrs-vxworksae): Use ${tm_file}.
685         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
686         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
687         * config/i386/vx-common.h: New file.
688
689 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
690
691         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
692         of crt0.o%s.
693
694 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
695
696         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
697         ldxtr.
698
699 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
700
701         PR c++/31078
702         PR c++/31103
703         * c-common.c (c_build_qualified_type): Set canonical type
704         appropriately.
705
706 2007-04-12  Richard Guenther  <rguenther@suse.de>
707
708         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
709         lower bound and element size if lower bound is not zero
710         or either of the ARRAY_REF operands is set.
711
712 2007-04-12  Richard Guenther  <rguenther@suse.de>
713
714         PR tree-optimization/24689
715         PR tree-optimization/31307
716         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
717         indices by value.
718         * gimplify.c (canonicalize_addr_expr): To be consistent with
719         gimplify_compound_lval only set operands two and three of
720         ARRAY_REFs if they are not gimple_min_invariant.  This makes
721         it never at this place.
722         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
723
724 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
725
726         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
727         null before emitting a .nsubspa directive.
728
729 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
730
731         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
732         need_to_partition_p if there are no memory statements in the
733         function.
734
735 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
736
737         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
738         (gcd_of_steps_may_divide_p): New function.
739         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
740
741 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
742
743         * reload.c (find_reloads_toplev, find_reloads_address,
744         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
745         not a pointer equality test, to decide if we need to call
746         push_reg_equiv_alt_mem.
747
748 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
749
750         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
751         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
752         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
753
754 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
755
756         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
757         vector to be positive.
758
759 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
760
761         PR 30735
762         PR 31090
763         * doc/invoke.texi: Document --params max-aliased-vops and
764         avg-aliased-vops.
765         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
766         debug_memory_partitions): Move to tree-flow.h
767         * params.h (AVG_ALIASED_VOPS): Define.
768         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
769         users.
770         (mp_info_t): Likewise.
771         (get_mem_sym_stats_for): New.
772         (set_memory_partition): Move from tree-flow-inline.h.
773         (mark_non_addressable): Only clear the set of symbols for the
774         partition if it exists.
775         (dump_memory_partitions): Move from tree-ssa-operands.c
776         (debug_memory_partitions): Likewise.
777         (need_to_partition_p): New.
778         (dump_mem_ref_stats): New.
779         (debug_mem_ref_stats): New.
780         (dump_mem_sym_stats): New.
781         (debug_mem_sym_stats): New.
782         (update_mem_sym_stats_from_stmt): New.
783         (compare_mp_info_entries): New.
784         (mp_info_cmp): Call it.
785         (sort_mp_info): Change argument to a list of mem_sym_stats_t
786         objects.
787         (get_mpt_for): Move from tree-ssa-operands.c.
788         (find_partition_for): New.
789         (create_partition_for): Remove.
790         (estimate_vop_reduction): New.
791         (update_reference_counts): New.
792         (build_mp_info): New.
793         (compute_memory_partitions): Refactor.
794         Document new heuristic.
795         Call build_mp_info, update_reference_counts,
796         find_partition_for and estimate_vop_reduction.
797         (compute_may_aliases): Populate virtual operands before
798         calling debugging dumps.
799         (delete_mem_sym_stats): New.
800         (delete_mem_ref_stats): New.
801         (init_mem_ref_stats): New.
802         (init_alias_info): Call it.
803         (maybe_create_global_var): Remove alias_info argument.
804         Get number of call sites and number of pure/const call sites
805         from gimple_mem_ref_stats().
806         (dump_alias_info): Call dump_memory_partitions first.
807         (dump_points_to_info_for): Show how many times a pointer has
808         been dereferenced.
809         * opts.c (decode_options): For -O2 set --param
810         max-aliased-vops to 500.
811         For -O3 set --param max-aliased-vops to 1000 and --param
812         avg-aliased-vops to 3.
813         * fortran/options.c (gfc_init_options): Remove assignment to
814         MAX_ALIASED_VOPS.
815         * tree-flow-inline.h (gimple_mem_ref_stats): New.
816         * tree-dfa.c (dump_variable): Dump memory reference
817         statistics.
818         Dump NO_ALIAS* settings.
819         (referenced_var_lookup): Tidy.
820         (mem_sym_stats): New.
821         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
822         and ORIG are different SSA names for a memory partition.
823         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
824         * tree-flow.h (struct mem_sym_stats_d): Define.
825         (mem_sym_stats_t): Define.
826         (struct mem_ref_stats_d): Define.
827         (struct gimple_df): Add field mem_ref_stats.
828         (enum noalias_state): Define.
829         (struct var_ann_d): Add bitfield noalias_state.
830         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
831         debug_mem_ref_stats, debug_memory_partitions,
832         debug_mem_sym_stats): Declare.
833         * tree-ssa-structalias.c (update_alias_info): Update call
834         sites, pure/const call sites and asm sites in structure
835         returned by gimple_mem_ref_stats.
836         Remove local variable IS_POTENTIAL_DEREF.
837         Increase NUM_DEREFS if the memory expression is a potential
838         dereference.
839         Call update_mem_sym_stats_from_stmt.
840         If the memory references memory, call
841         update_mem_sym_stats_from_stmt for all the direct memory
842         symbol references found.
843         (intra_create_variable_infos): Set noalias_state field for
844         pointer arguments according to the value of
845         flag_argument_noalias.
846         * tree-ssa-structalias.h (struct alias_info): Remove fields
847         num_calls_found and num_pure_const_calls_found.
848         (update_mem_sym_stats_from_stmt): Declare.
849         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
850         Set default value to 100.
851         (PARAM_AVG_ALIASED_VOPS): Define.
852
853 2007-04-11  Richard Guenther  <rguenther@suse.de>
854
855         PR middle-end/31530
856         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
857         a * -b + c as c - a * b if we honor sign dependent rounding.
858
859 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
860
861         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
862         bfin_expand_strmov.
863         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
864         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
865         variables.
866         (initialize_trampoline): Don't use old-style function definition.
867         (bfin_secondary_reload): Mark IN_P argument as unused.
868
869 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
870
871         PR tree-optimization/31343
872         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
873         (build_polynomial_chrec): Return a scalar when the evolution is zero.
874         * testsuite/gcc.dg/vect/pr31343.c: New.
875
876 2007-04-10  Eric Christopher  <echristo@apple.com>
877
878         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
879         * config/i386/i386.md (*cmpfp0): Use.
880         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
881         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
882         (fix_trunc<mode>_i386_fisttp): Ditto.
883         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
884         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
885         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
886         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
887         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
888         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
889         (unnamed_splitters): Ditto.
890         * config/i386/i386.c (output_fix_trunc): Assert that
891         we're not being passed a TFmode operand.
892
893 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
894
895         PR tree-optimization/31526
896         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
897         n_basic_blocks to find newly added blocks.
898
899 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
900
901         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
902         alternative.
903         (fix_trunc<mode>si_sse): Ditto.
904         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
905         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
906         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
907         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
908         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
909         expander using SSEMODEF mode macro.
910         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
911         expander using SSEMODEF mode macro.
912         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
913         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
914         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
915         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
916         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
917         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
918         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
919         Macroize insn using X87MODEF mode macro.
920
921 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
922
923         * config/i386/sse.md (sse2_pinsrw): Removed.
924         (sse2_pextrw): Renamed to ...
925         (*sse2_pextrw): This.
926
927 2007-04-09  Jan Hubicka  <jh@suse.cz>
928
929         PR target/27869
930         * config/i386/sse.md
931         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
932         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
933         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
934         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
935
936 2007-04-09  Jan Hubicka  <jh@suse.cz>
937
938         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
939         multiple fields of union.
940
941 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
942
943         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
944         (create_preheaders): Check that loops are available.
945         (fix_loop_structure): Clean up, improve comments.
946         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
947         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
948         state flags.
949         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
950         * predict.c (tree_estimate_probability): Do not call
951         calculate_dominance_info.  Call create_preheaders.
952         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
953         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
954         flags.
955         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
956         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
957         * tree-cfg.c (tree_split_edge): Make an assert more precise.
958         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
959         arguments.
960
961 2007-04-08  Jan Hubicka  <jh@suse.cz>
962
963         * tree.h (maybe_fold_offset_to_component_ref): Declare.
964         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
965         * fold-const.c (fold_unary): Use it.
966
967 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
968
969         * varasm.c (assemble_variable): Remove call to
970         lang_hooks.decls.prepare_assemble_variable.
971         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
972         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
973         * langhooks.h (lang_hooks_for_decls): Remove
974         prepare_assemble_variable.
975
976 2007-04-08  Mike Stump  <mrs@apple.com>
977
978         * config/i386/i386.c: Use inc/dec on Core2.
979
980 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
981
982         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
983         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
984         lhd_tree_inlining_end_inlining): Remove.
985         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
986         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
987         end_inlining hooks.
988         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
989         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
990         lhd_tree_inlining_end_inlining): Remove prototypes.
991         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
992         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
993         LANG_HOOKS_TREE_INLINING_START_INLINING,
994         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
995
996         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
997         not set it.
998
999 2007-04-08  Anatoly Sokolov <aesok@post.ru>
1000
1001         PR target/29932
1002         * config/avr/predicates.md (io_address_operand): Delete predicate.
1003         (low_io_address_operand): Don't use 'mode' argument.
1004         (higth_io_address_operand): Rename ...
1005         (high_io_address_operand): ... to this. Don't use 'mode' argument.
1006         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
1007         for above change.
1008
1009 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
1010
1011         Revert change removing staticp.
1012
1013 2007-04-07  Anatoly Sokolov <aesok@post.ru>
1014
1015         PR target/30289
1016         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
1017         earlyclobber.
1018
1019 2007-04-07  Bruce Korb  <bkorb@gnu.org>
1020
1021         * c.opt: Add -Wformat-contains-nul.
1022         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
1023           -Wformat setting.
1024         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
1025         the NUL byte warning.
1026
1027 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1028
1029         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
1030
1031 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
1032
1033         * tree.c (staticp): No longer use staticp langhook.
1034         * langhooks.c (lhd_staticp): Removed.
1035         * langhooks.h (struct lang_hooks): Remove staticp.
1036         * c-common.c (c_staticp): Remove.
1037         * c-common.h (c_staticp): Ditto.
1038         * langhooks-defs.h (lhd_staticp): Ditto.
1039         (LHD_HOOKS_STATICP): Ditto
1040         * tree.h (gcc_assert_lowered): New macro.
1041
1042 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
1043
1044         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
1045         argument "reliable".
1046         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
1047         Add argument "reliable".  Propagate it through calls.
1048         (infer_loop_bounds_from_undefined):  Derive number of iterations
1049         estimates from references in blocks that do not dominate loop latch.
1050         (gcov_type_to_double_int): New function.
1051         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
1052         and expected_loop_iterations_unbounded.
1053         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
1054         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
1055         * tree-data-ref.c (estimated_loop_iterations): Export.
1056         (get_references_in_stmt): Fix -- do not return addresses of local
1057         objects.
1058         * cfgloop.h (expected_loop_iterations_unbounded,
1059         estimated_loop_iterations): Declare.
1060
1061 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
1062
1063         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
1064
1065 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
1066
1067         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
1068         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
1069         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
1070         Use output_387_reg_move().
1071         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
1072         expander using X87MODEF12 mode macro.
1073         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
1074         choosing register preferences.  Use output_387_reg_move().
1075         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
1076         instead of "x".  Use output_387_reg_move().
1077         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
1078         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
1079         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
1080         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
1081         Use output_387_reg_move().
1082         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
1083         mode macro.
1084         (*truncxf?f_i387 splitter): Ditto.
1085
1086 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
1087
1088         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1089         LANG_HOOKS_SAFE_FROM_P.
1090         * expr.c (safe_from_p): Remove langhook call.
1091         * langhooks.h (lang_hooks): Remove safe_from_p.
1092         (lhd_safe_from_p): Remove prototype.
1093         * langhooks.c (lhd_safe_from_p): Remove.
1094
1095 2007-04-06  Jan Hubicka  <jh@suse.cz>
1096
1097         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
1098         functions.
1099
1100 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
1101
1102         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
1103         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
1104         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
1105         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
1106         alternative.
1107         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
1108         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
1109
1110 2007-04-05  Richard Henderson  <rth@redhat.com>
1111
1112         * config/alpha/alpha.c (print_operand) [+]: Remove.
1113         (alpha_end_function): Print nop if call at end of function.
1114         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
1115         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
1116         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
1117         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
1118         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
1119         the call pattern. Update peepholes to match.
1120
1121 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
1122
1123         * doc/extend.texi (Other Builtins): Add decimal float variants
1124         of signbit.
1125         * builtins.def: Ditto.
1126         * builtins.c (expand_builtin): Ditto.
1127
1128 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
1129             H.J. Lu  <hongjiu.lu@intel.com>
1130
1131         PR target/31478
1132         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
1133         of V8HImode when calling ix86_binary_operator_ok.
1134         (sse2_pmaddwd): Call ix86_binary_operator_ok.
1135         (sdot_prodv8hi): Operands 1 and 2 must be register.
1136
1137 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
1138
1139         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
1140         initialize align to silence bogus warning.
1141
1142 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
1143
1144         PR middle-end/22156
1145         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
1146         all_no_warning.
1147         (struct sra_walk_fns): Remove use_all parameter from use.
1148         (sra_hash_tree): Handle BIT_FIELD_REFs.
1149         (sra_elt_hash): Don't hash bitfld blocks.
1150         (sra_elt_eq): Skip them in parent compares as well.  Handle
1151         BIT_FIELD_REFs.
1152         (sra_walk_expr): Don't maintain or pass down use_all_p.
1153         (scan_use): Remove use_all parameter.
1154         (scalarize_use): Likewise.  Re-expand assignment to
1155         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
1156         output, and re-scalarize after output.  Don't mark anything
1157         for no warning.
1158         (scalarize_ldst): Adjust.
1159         (scalarize_walk_gimple_modify_statement): Likewise.
1160         (build_element_name_1): Handle BIT_FIELD_REFs.
1161         (instantiate_element): Don't warn for any element whose parent
1162         is used as a whole.
1163         (instantiate_missing_elements_1): Return the sra_elt.
1164         (canon_type_for_field): New.
1165         (try_instantiate_multiple_fields): New.
1166         (instantiate_missing_elemnts): Use them.
1167         (mark_no_warning): Removed.
1168         (generate_one_element_ref): Handle BIT_FIELD_REFs.
1169         (REPLDUP, sra_build_elt_assignment): New.
1170         (generate_copy_inout): Use them.
1171         (generate_element_copy): Likewise.  Handle bitfld differences.
1172         (generate_element_zero): Don't recurse for blocks.  Use
1173         sra_build_elt_assignment.
1174         (generate_one_element_int): Take elt instead of var.  Use
1175         sra_build_elt_assignment.
1176         (generate_element_init_1): Adjust.
1177         (scalarize_use, scalarize_copy): Use REPLDUP.
1178         (scalarize_ldst): Move assert before dereference.
1179         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
1180
1181 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1182
1183         * regmove.c: Fix unused variable warnings due to previous commit.
1184
1185 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1186
1187         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
1188         (regmove_bb_head): Remove.
1189         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
1190         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
1191         problems with fixup_match_1.
1192         Don't initialize/free regmove_bb_head.
1193
1194         (reg_is_remote_constant_p): If an insn is in the same basic block
1195         but not before INSN, consider it remote, too.
1196
1197 2007-04-05  Anatoly Sokolov <aesok@post.ru>
1198
1199         PR target/25448
1200         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
1201         DECL_ASSEMBLER_NAME, not the DECL_NAME.
1202
1203 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
1204
1205         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
1206         (CONDITIONAL_REGISTER_USAGE): Likewise.
1207
1208 2007-04-04  Richard Henderson  <rth@redhat.com>
1209
1210         * config/alpha/lib1funcs.asm: Remove unused file.
1211
1212 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
1213
1214         PR other/31356
1215         * opts.c (print_specific_help): Fix --help=<language>
1216         header line.
1217         (common_handle_option): Support --help=common.
1218
1219 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
1220
1221         PR other/31353
1222         * gcc.c (main): Do not run the linker if
1223         print_subprocess_help indicates that it shouldn't be
1224         run.
1225
1226 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
1227
1228         PR doc/31355
1229         * doc/invoke.texi (--help=): Document <languages> value, fix
1230         formatting in tables of values.
1231
1232 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
1233
1234         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
1235         dllimport attribute of virtual methods.
1236
1237 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
1238
1239         * config/score/crti.asm: Change _bss_start to __bss_start.
1240         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
1241         (OUTGOING_REG_PARM_STACK_SPACE) update.
1242         * config/score/score.opt: add options to make backend support
1243         score5, score5u, score7 and score7d.
1244         * config/score/score.md: Likewise.
1245         * config/score/misc.md: Likewise.
1246         * config/score/mac.md: Likewise.
1247         * doc/invoke.texi: Likewise.
1248         * doc/md.texi: update constraints define.
1249
1250 2007-04-03  Richard Henderson  <rth@redhat.com>
1251
1252         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
1253         an appropriate type, use the mode instead.
1254
1255 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
1256
1257         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
1258         Set the default --with-arch setting to mips2.
1259         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
1260         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
1261         (MULTILIB_OSDIRNAMES): Delete.
1262         (MULTILIB_DIRNAMES): Define.
1263         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
1264         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
1265         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
1266         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
1267         VXWORKS_OS_CPP_BUILTINS.
1268         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
1269         (MIPS_DEBUGGING_INFO): Undefine.
1270         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
1271
1272 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
1273
1274         PR middle-end/30704
1275         * fold-const.c (native_encode_real): Encode real.c provided longs
1276         as a series of 32-bit native integers.
1277         (native_interpret_real): Interpret buffer as a series of 32-bit
1278         native integers.
1279
1280 2007-04-03  Richard Guenther  <rguenther@suse.de>
1281
1282         * genpreds.c (write_insn_constraint_len): Write function
1283         optimized for CONSTRAINT_LEN implementation.
1284         (write_tm_preds_h): Output insn_constraint_len inline and
1285         use it for CONSTRAINT_LEN.
1286         (write_insn_preds_c): Don't output insn_constraint_len.
1287         * doc/md.texi (define_register_constraint): Document multi-letter
1288         constraints shall have the same length if they start with the same
1289         letter.
1290
1291 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
1292
1293         PR target/31175
1294         * config/i386/i386.md (isinf<mode>2): Expand only when
1295         TARGET_C99_FUNCTIONS is set.
1296
1297 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
1298
1299         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
1300         (x86_64-*-linux*): Ditto.
1301         * config/i386/i386.opt (mpc): New option.
1302         * config/i386/i386.c (overrride_options): Handle
1303         ix87_precision_string.
1304         * config/i386/crtprec.c: New file.
1305         * config/i386/t-crtpc: Ditto.
1306         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
1307         and -mpc80 options.
1308         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
1309         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
1310         crtprec32.o, crtprec64.o and crtprec80.o.
1311
1312         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
1313         and -mpc80 options.
1314         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
1315
1316 2007-04-02  Eric Christopher  <echristo@apple.com>
1317
1318         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
1319         limitations on darwin.
1320
1321 2007-04-02  Anatoly Sokolov <aesok@post.ru>
1322
1323         PR target/31137
1324         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
1325
1326 2007-04-02  Dave Korn  <dave.korn@artimi.com>
1327
1328         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
1329
1330 2007-04-02  Dave Korn  <dave.korn@artimi.com>
1331
1332         * libgcc2.h (exception_descriptor): Don't forward-declare.
1333         (__get_eh_table_language, __get_eh_table_version): Delete
1334         prototypes of long-dead functions.
1335
1336 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
1337
1338         * ebitmap.h: New file
1339         * ebitmap.c: New file
1340         * Makefile.in (ebitmap.o): New target.
1341
1342 2007-04-01  Jan Hubicka  <jh@suse.cz>
1343
1344         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
1345         before very first instruction.
1346
1347 2007-04-01  Jan Hubicka  <jh@suse.cz>
1348
1349         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
1350         waring on 64bit hosts.
1351         * bitmap.h: Fix typo in bitmap_head_def.
1352
1353 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1354
1355         PR rtl-optimization/31391
1356         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
1357         into a DELETED_LABEL note, and the label is in an empty basic
1358         block, update BB_END as well as BB_HEAD.
1359
1360 2007-04-01  Richard Henderson  <rth@redhat.com>
1361
1362         PR tree-optimization/31169
1363         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
1364         to varying if the range is outside [0,  prec-1].
1365
1366 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
1367
1368         PR target/31388
1369         * config/mips/mips.md (load_const_gp): New insn.
1370         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
1371         the MIPS16 GP pseudo register if no_new_pseudos.
1372         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
1373
1374 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1375
1376         PR target/31364
1377         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
1378         secureplt.
1379         (call_value): Likewise.
1380
1381 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
1382             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1383
1384         PR 14737
1385         * doc/invoke.texi: (optimization options): Reword description
1386         of -ffast-math. Document its primary purpose.
1387
1388 2007-03-31  Richard Guenther  <rguenther@suse.de>
1389
1390         * omp-low.c (splay-tree.h): Include.
1391         (lookup_decl): Replace splay-tree usage by pointer-map.
1392         (maybe_lookup_decl): Likewise.
1393         (new_omp_context): Likewise.
1394         (delete_omp_context): Likewise.
1395         * gimplify.c (splay-tree.h): Include.
1396         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
1397         pointer-map.
1398         (remap_ssa_name): Likewise.
1399         (remap_decl): Likewise.
1400         (remap_type_1): Likewise.
1401         (remap_type): Likewise.
1402         (copy_body_r): Likewise.
1403         (expand_call_inline): Likewise.
1404         (clone_body): Likewise.
1405         (copy_tree_r): Likewise.
1406         (remap_save_expr): Likewise.
1407         (unsave_r): Likewise.
1408         (unsave_expr_now): Likewise.
1409         (tree_function_versioning): Likewise.
1410         (build_duplicate_type): Likewise.
1411         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
1412         (struct copy_body_data): Replace splay-tree by pointer-map.
1413         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
1414         not $(SPLAY_TREE_H).
1415         (gimplify.o): Depend on $(SPLAY_TREE_H).
1416         (omp-low.p): Likewise.
1417
1418 2007-03-31  Anatoly Sokolov <aesok@post.ru>
1419
1420         * config/avr/predicates.md (even_register_operand,
1421         odd_register_operand): New predicates.
1422         * config/avr/avr.md (movw peephole2): New.
1423         (movw_r peephole2): New.
1424
1425 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
1426
1427         * tree.h (get_signed_or_unsigned_type): New.
1428         * fold-const.c (operand_equal_for_comparison_p): Use
1429         get_signed_or_unsigned_type instead of
1430         lang_hooks.types.signed_or_unsigned_type.
1431         * expr.c (store_expr): Ditto.
1432         * langhooks.c (get_signed_or_unsigned_type): New.
1433         (lhd_signed_or_unsigned_type): New.
1434         * langhooks.h (lhd_signed_or_unsigned_type): New.
1435         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
1436
1437 2007-03-30  Richard Henderson  <rth@redhat.com>
1438
1439         * tree-ssa-loop-ivopts.c: Include target.h.
1440         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
1441         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
1442         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
1443         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
1444
1445 2007-03-30  Richard Henderson  <rth@redhat.com>
1446             Kai Tietz  <kai.tietz@onevision.com>
1447
1448         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
1449         default for 64-bit.
1450         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
1451         (TARGET_64BIT_MS_ABI): New.
1452         (DBX_REGISTER_NUMBER): Handle 64-bit.
1453         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
1454         (LONG_TYPE_SIZE): Force to 32.
1455         (REG_PARM_STACK_SPACE): New.
1456         (OUTGOING_REG_PARM_STACK_SPACE): New.
1457         (REGPARM_MAX, SSE_REGPARM_MAX): New.
1458         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1459         (STACK_BOUNDARY): Use 128 for 64-bit.
1460         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
1461         Add 64-bit implementation.
1462         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
1463         argument unused.
1464         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
1465         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
1466         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
1467         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
1468         (ix86_handle_cconv_attribute): Don't warn when ignoring if
1469         TARGET_64BIT_MS_ABI.
1470         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
1471         (ix86_pass_by_reference): Likewise.
1472         (ix86_function_value_regno_p): Likewise.
1473         (ix86_build_builtin_va_list): Likewise.
1474         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1475         (function_arg_advance_ms_64): New.
1476         (function_arg_advance): Call it.
1477         (function_arg_ms_64): New.
1478         (function_arg): Call it.
1479         (function_value_ms_64): New.
1480         (ix86_function_value_1): Call it.
1481         (return_in_memory_ms_64): New.
1482         (ix86_return_in_memory): Call it.
1483         (setup_incoming_varargs_ms_64): New.
1484         (ix86_setup_incoming_varargs): Call it.
1485         (ix86_expand_prologue): Handle 64-bit stack probing.
1486         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
1487         (output_pic_addr_const): Likewise.
1488         (x86_this_parameter): Likewise.
1489         (x86_output_mi_thunk): Likewise.
1490         (x86_function_profiler): Likewise.
1491         (TARGET_STRICT_ARGUMENT_NAMING): New.
1492         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
1493         (TARGET_64BIT_MS_ABI): New.
1494         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
1495         * config/i386/i386.md (allocate_stack_worker): Remove.
1496         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
1497         describe the clobber of eax without a match_scratch.
1498         (allocate_stack_worker_postreload): Remove.
1499         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
1500         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
1501         (allocate_stack_worker_rex64_postreload): Remove.
1502         (allocate_stack): Handle 64-bit.
1503         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
1504         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
1505         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
1506         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
1507         (STANDARD_STARTFILE_PREFIX_1): Likewise.
1508         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
1509         * config.build (x86_64-*-mingw*): New host.
1510         * config.host (x86_64-*-mingw*): New host.
1511         * config.gcc (x86_64-*-mingw*): New target.
1512         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
1513
1514 2007-03-30  Richard Henderson  <rth@redhat.com>
1515             Kai Tietz  <kai.tietz@onevision.com>
1516
1517         * c-pragma.c (struct def_pragma_macro_value): New.
1518         (struct def_pragma_macro): New.
1519         (pushed_macro_table): New.
1520         (dpm_hash, dpm_eq): New.
1521         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
1522         (init_pragma): Install them.
1523         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1524
1525 2007-03-30  Anatoly Sokolov <aesok@post.ru>
1526
1527         * config/avr/avr.c (avr_override_options): Clear
1528         'flag_delete_null_pointer_checks'.
1529
1530 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
1531
1532         PR c++/26099
1533         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
1534         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
1535         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
1536         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
1537         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
1538         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
1539         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
1540         C++ extensions.
1541         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
1542
1543 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
1544
1545         * regmove.c: Move all of pass_stack_adjustments from here...
1546         * combine-stack-adj.c: ...to this new file.
1547         * Makefile.in: Add rules for combine-stack-adj.o.
1548
1549 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
1550
1551         PR tree-optimization/31383
1552         * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
1553         to have the same length.
1554
1555 2007-03-30  Jan Hubicka  <jh@suse.cz>
1556
1557         PR middle-end/30700
1558         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
1559         availablility; add more sanity checking; ask varpool only about
1560         VAR_DECL.
1561
1562 2007-03-29  Richard Henderson  <rth@redhat.com>
1563
1564         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
1565         to decide, but __SIZEOF_LONG_LONG__.
1566
1567 2007-03-29  Richard Henderson  <rth@redhat.com>
1568
1569         * emutls.c (struct __emutls_array): New.
1570         (emutls_destroy): Use it instead of casting element 0 from void*.
1571         (__emutls_get_address): Likewise.
1572
1573 2007-03-29  Richard Henderson  <rth@redhat.com>
1574
1575         * varasm.c (initializer_constant_valid_p): Don't deny
1576         DECL_DLLIMPORT_P on functions.
1577
1578         * config/i386/cygming.h: Remove function declarations.
1579         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
1580         (ASM_OUTPUT_LABELREF): Remove.
1581         (COMMON_ASM_OP): Remove.
1582         (ASM_OUTPUT_COMMON): Remove.
1583         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
1584         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
1585         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1586         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
1587         Rename from TARGET_ENCODE_SECTION_INFO.
1588         * config/i386/netware.h: Likewise.
1589         * config/i386/i386-protos.h: Update.
1590         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
1591         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
1592         (legitimate_constant_p): Reject dllimports.
1593         (dllimport_map, get_dllimport_decl): New.
1594         (legitimize_dllimport_symbol): New.
1595         (legitimize_address, ix86_expand_move): Use it.
1596         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
1597         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
1598         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
1599         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
1600         * config/i386/predicates.md (constant_call_address_operand): Only
1601         accept symbols; reject dllimport_p symbols.
1602         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1603         i386_pe_maybe_record_exported_symbol.
1604         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
1605         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
1606         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
1607         trust the setting of DECL_DLLIMPORT_P.
1608         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
1609         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
1610         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
1611         tidy the argument scanning loop.
1612         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
1613         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
1614         (i386_pe_strip_name_encoding): Remove.
1615         (i386_pe_binds_local_p): New.
1616         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
1617         (i386_pe_output_labelref): Remove.
1618         (i386_pe_asm_output_aligned_decl_common): New.
1619         (i386_pe_maybe_record_exported_symbol): Rename from
1620         i386_pe_record_exported_symbol; check for dllexported symbols.
1621
1622 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
1623
1624         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
1625         add comment explaining why vsnprintf cannot be used.
1626
1627 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
1628
1629         PR tree-optimization/30666
1630         * tree.c (build_complex_type): When creating type names for DWARF2
1631         debug info, create TYPE_DECLs for TYPE_NAME instead of
1632         IDENTIFIER_NODEs.
1633         (build_common_tree_nodes_2): Use build_complex_type when building
1634         predefined complex types, to preserve canonical types.
1635
1636 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
1637
1638         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
1639         (noce_get_alt_condition): Look at it to determine whether to
1640         reverse the condition or not.
1641         (noce_get_condition): Substitute the truth for lies.
1642         (noce_find_if_block): Set the then_else_reversed field.
1643
1644 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
1645
1646         * config/fr30/fr30.md (movdi): Do not accept immediates as the
1647         destination of this insn.
1648         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
1649         than calling gen_rtx_SET directly.  Use r0 to hold the value of
1650         'address + 4' rather than a stack based temporary which can be
1651         mis-optimized away.
1652
1653 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1654
1655         * config/s390/s390.c (s390_secondary_input_reload_class,
1656         s390_secondary_output_reload_class): Functions removed.
1657         (s390_secondary_reload): New function.
1658         (TARGET_SECONDARY_RELOAD): Target macro defined.
1659         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
1660         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
1661         * config/s390/s390.md ("reload_outti", "reload_outdi",
1662         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
1663         "reload_out<mode>"): Expanders removed.
1664         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
1665         "reload<mode>_nonoffmem_out"): Expanders added.
1666
1667 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1668
1669         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
1670         SRC->DEST replacement failed anyway.
1671
1672 2007-03-28  Mike Stump  <mrs@apple.com>
1673
1674         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
1675         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
1676         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
1677
1678 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1679
1680         * config.gcc: Accept barcelona as a variant of amdfam10.
1681         * config/i386/i386.c (override_options): Likewise.
1682         * doc/invoke.texi: Likewise.
1683
1684 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1685
1686         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
1687         offsets for BIT_FIELD_REF and COMPONENT_REF.
1688
1689 2007-03-28  Richard Guenther  <rguenther@suse.de>
1690
1691         * tree.c (is_global_var): Move ...
1692         * tree-flow-inline.h (is_global_var): ... here.
1693         * tree.h (is_global_var): Remove declaration.
1694
1695 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
1696
1697         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
1698         option.
1699         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
1700         * config/i386/i386.c (ix86_tune_features): Initialize new
1701         tuning option.
1702         * config/i386/predicates.md (promotable_binary_operator): Use
1703         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
1704
1705 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
1706
1707         PR target/31380
1708         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
1709
1710 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
1711
1712         * config/fr30/fr30.md (movsi_internal): Change destination
1713         constraint from m to V and add m to the end.
1714
1715 2007-03-28  Christian Bruel  <christian.bruel@st.com>
1716
1717         * config/sh/sh.md (movsi_i): Fix type attribute.
1718
1719 2007-03-28  Christian Bruel  <christian.bruel@st.com>
1720
1721         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
1722         (movsf_ie): Likewise.
1723
1724 2007-03-28  Christian Bruel  <christian.bruel@st.com>
1725
1726         * config.gcc: Add sh4-300 to multilib.
1727         * config/sh/t-mlib-sh4-300: New file.
1728
1729 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1730
1731         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
1732         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
1733         fix_trunc<mode>di2.
1734         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
1735         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
1736         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
1737         "fixuns_trunctddi2"): Whitespace fix.
1738
1739 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1740
1741         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
1742         the definition of struct sh_args.
1743         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
1744         CALL_COOKIE_INT_REG_GET): Likewise.
1745
1746 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1747
1748         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
1749         transformations are applied successfully.
1750
1751 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
1752
1753         * tree.c (tree_contains_struct): Permit 512 tree codes.
1754         * tree.h (tree_contains_struct): Ditto.
1755         (MAX_TREE_CODES): Ditto.
1756         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
1757         SPARE member to store remaining padding bits.
1758
1759 2007-03-27  Anatoly Sokolov <aesok@post.ru>
1760
1761         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
1762         architecture.
1763
1764 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
1765
1766         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
1767         * configure: Regenerate.
1768
1769         * configure: Regenerate using the correct version of autoconf.
1770
1771 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
1772
1773         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
1774         pointer regs.
1775         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
1776         regs to "__SP_L__" and "__SP_H__".
1777
1778 2007-03-27  Richard Guenther  <rguenther@suse.de>
1779
1780         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
1781         computations with it with a HOST_WIDE_INT variable.
1782
1783 2007-03-26  Mike Stump  <mrs@apple.com>
1784
1785         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
1786         objective-c-header, objective-c++-header and objc++-cpp-output
1787         support.
1788         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
1789
1790 2007-03-26  Richard Henderson  <rth@redhat.com>
1791
1792         PR target/31361
1793         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
1794         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
1795         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
1796         IX86_BUILTIN_PSRLQ128): New.
1797         (ix86_init_mmx_sse_builtins): Add them.
1798         (ix86_expand_builtin): Expand them.
1799         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
1800         operand 2 be TImode.
1801         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
1802         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
1803         _mm_srli_epi64): Mark __B const.
1804         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
1805         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
1806         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
1807         new two-vector shift builtins.
1808
1809 2007-03-26  Ian Lance Taylor  <iant@google.com>
1810
1811         PR tree-optimization/31345
1812         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
1813         [+INF, +INF(OVF)] into VARYING.
1814
1815 2007-03-26  Zack Weinberg  <zackw@panix.com>
1816
1817         * gengtype-parse.c: New file.
1818         * gengtype-yacc.y: Delete.
1819         * gengtype-lex.l: Don't include gengtype-yacc.h.
1820         Define YY_DECL and yyterminate appropriately for recursive
1821         descent parser.  yylval is now a string out-parameter to yylex.
1822         (HWS, EOID): New shorthand.
1823         (IWORD): Add a couple more types.
1824         (yylex): Add a setup stanza.  Remove the complex rules for
1825         detecting GTY'ed types and typedefs; replace with simple
1826         keyword detectors.  Adjust everything for the changed
1827         definition of yylval.  Ignore all pp-directives, not just #define.
1828         (yyerror): Delete.
1829         (parse_file): Rename yybegin; do not call yyparse.
1830         (yyend): New.
1831         * gengtype.c (xasprintf): Export again.
1832         (this_file): New.  Use everywhere __FILE__ was being used.
1833         (get_lang_bitmap): Special case types defined in gengtype.c.
1834         (do_typedef, new_structure): Suppress definition of certain types.
1835         (new_structure): Improve diagnostics of duplicate definitions.
1836         Make sure location_s is associated with input.h.
1837         (nreverse_pairs, define_location_structures): New functions.
1838         (main): Improve tagging of kludge types.  Remove old kludges
1839         for input.h types; use define_location_structures.
1840         * gengtype.h: Update prototypes.  Define token codes here.
1841         * Makefile.in: Remove all references to gengtype-yacc.
1842         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
1843         and gengtype.
1844         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
1845         add GTY((skip)) to the field that's only conditionally there.
1846         * doc/install.texi: Document that Bison is no longer required
1847         unless building treelang.
1848
1849         * gengtype.c: Don't include gtyp-gen.h.
1850         (srcdir): Declare here.
1851         (base_files, lang_dir_names): Allocate dynamically.
1852         (gt_files, num_gt_files, num_lang_dirs): New globals.
1853         (measure_input_list, read_input_line, read_input_list)
1854         (set_lang_bitmap): New functions.
1855         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
1856         simplify, relying on read_input_list to set up the bitmaps.
1857         (main): Arguments are no longer unused.  Check for correct number
1858         of command line arguments, set srcdir and srcdir_len, then call
1859         read_input_list, before doing anything else.  No need to worry
1860         about duplicates in main loop.
1861         * configure.ac: Simplify the calculation of all_gtfiles.
1862         Put language tags in there.  Don't set or substitute
1863         all_gtfiles_files_langs or all_gtfiles_files_frags.
1864         * Makefile.in: Revamp the way gengtype is invoked, now that it
1865         takes a file on its command line with a much simpler format.
1866         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
1867         (GTFILES): Remove duplicates and C source files.
1868         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
1869         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
1870         * configure: Regenerate.
1871
1872         * gengtype.h: Remove all type definitions to gengtype.c; leave
1873         only definitions of options_p, type_p, and pair_p as opaque
1874         pointers.  Update prototypes.
1875         * gengtype.c: Many type definitions moved here from gengtype.h.
1876         Consolidate type definitions at the top of the file.
1877         (xvasprintf): Delete.
1878         (xasprintf): Make static.
1879         (create_nested_pointer_option): Add 'next' parameter.
1880         (create_field_all, create_field_at): New functions.
1881         (create_field): Now a thin wrapper around create_field_all.
1882         (create_optional_field): Rename create_optional_field_ and add
1883         line argument.  Original name is now a macro which supplies
1884         __LINE__.
1885         (oprintf): Use vsnprintf directly.
1886         (close_output_files): Use fatal rather than perror/exit.
1887         (note_def_vec, note_def_vec_alloc): Use create_field_at.
1888         (main): Set progname.  Don't use exit.
1889         * gengtype-yacc.y (struct_fields): Use create_field_at.
1890         (option, optionseqopt): Delete.
1891         (optionseq): Consolidate productions from option here so we
1892         can use the first argument to create_option.
1893
1894         * gengtype-lex.l: Distinguish unions from structures in the
1895         token type.  Don't call find_structure; return the tag as a string.
1896         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
1897         Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
1898         Reorganize typedef_struct production accordingly.
1899         Use create_nested_ptr_option.
1900         * gengtype.c (create_nested_ptr_option): New function.
1901         * gengtype.h: Declare it.
1902
1903         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
1904         (string_type): Don't declare.
1905         (do_scalar_typedef): Declare.
1906         (create_scalar_type): Update prototype.
1907         * gengtype.c (string_type): Make static.
1908         (scalar_nonchar, scalar_char): New.
1909         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
1910         (resolve_typedef): Use scalar_nonchar for error recovery.
1911         (create_scalar_type): Remove name_len field.  Return scalar_char
1912         or scalar_nonchar as appropriate.
1913         (adjust_field_type): Look at scalar_is_char boolean to decide whether
1914         to use string_type.
1915         (throughout): Use scalar_nonchar instead of calling create_scalar_type,
1916         whenever possible.
1917         (main): Initialize scalar_char and scalar_nonchar before calling
1918         gen_rtx_next.
1919         * gengtype-lex.l: Adjust for removal of second argument to
1920         create_scalar_type.  Use yylval.s instead of yylval.t when
1921         returning SCALAR.
1922         * gengtype-yacc.y: Type of SCALAR is string.  Call
1923         create_scalar_type from type:SCALAR rule.  Adjust for removal of
1924         second argument to create_scalar_type.
1925
1926         * vec.h: Remove all #if IN_GENGTYPE blocks.
1927         Add comment saying that changes may require adjustments to gengtype.
1928         * gengtype.c: Don't include coretypes.h or tm.h.
1929         Add comment to inclusion of errors.h.
1930         (note_def_vec, note_def_vec_alloc): New functions.
1931         * gengtype.h: Declare new functions.
1932         * gengtype-lex.l: Don't include coretypes.h.
1933         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
1934         Delete.
1935         (update_lineno): Remove unnecessary prototype.
1936         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
1937         (VEC rule): Just return VEC_TOKEN.
1938         * gengtype-yacc.y (VEC_TOKEN): New token type.
1939         (type): Add a production for VEC(a,b).
1940         * Makefile.in: Update dependencies.
1941
1942         * gengtype-lex.l: Remove rules for parsing pointer-to-function
1943         typedefs that use the old PARAMS macro.
1944
1945         * gengtype-lex.l: Remove all rules and states relating to yacc
1946         input files.
1947         * gengtype-yacc.y: Similarly.
1948         * gengtype.c (note_yacc_type): Delete function.
1949         * gengtype.h: Update prototypes.
1950
1951 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
1952
1953         * tree-pretty-print.c (dump_generic_node): Report precision of
1954         unnamed integer types.
1955
1956 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
1957
1958         * ifcvt.c (noce_try_store_flag_constants): Don't check
1959         no_new_pseudos here.
1960         (noce_try_store_flag_constants): Don't check no_new_pseudos.
1961         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
1962         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1963         noce_try_sign_mask): Likewise.
1964         (if_convert): Check no_new_pseudos here.
1965
1966         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
1967         Remove prototypes.
1968         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
1969         (noce_get_condition): Handle new then_else_reversed argument.
1970         (noce_init_if_info): Remove, fold into noce_find_if_block.
1971         (noce_process_if_block): Take a struct noce_if_info as the
1972         argument.  Don't set up one based on ce_if_info.  Update pointer
1973         references accordingly.
1974         (cond_move_process_if_block): Likewise.
1975         (process_if_block): Removed.
1976         (find_if_block): Removed.  Move functionality two new functions,
1977         noce_find_if_block and cond_exec_find_if_block.
1978         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
1979         blocks and the symmetric IF-ELSE-JOIN case.
1980         (cond_exec_find_if_block): Also new function mostly based on old
1981         find_if_block and process_if_block.
1982         (find_if_header): Replace find_if_block call with separately
1983         guarded calls to noce_find_if_block and cond_exec_find_if_block.
1984         (find_cond_trap): Update noce_get_condition call.
1985         (dead_or_predicable): Likewise.
1986
1987 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
1988
1989         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
1990         Remove.
1991         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
1992         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
1993         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
1994         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
1995         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
1996         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
1997         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
1998         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
1999         __builtin_ia32_psrad128 builtins.
2000
2001 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
2002
2003         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
2004         * config/i386/constraints.md
2005         (define_constraint "I"): Use IN_RANGE macro.
2006         (define_constraint "J"): Ditto.
2007         (define_constraint "K"): Ditto.
2008         (define_constraint "M"): Ditto.
2009         (define_constraint "N"): Ditto.
2010         (define_constraint "O"): Ditto.
2011         * config/i386/predicates.md
2012         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
2013         (define_predicate "const_0_to_3_operand"): Ditto.
2014         (define_predicate "const_0_to_7_operand"): Ditto.
2015         (define_predicate "const_0_to_15_operand"): Ditto.
2016         (define_predicate "const_0_to_63_operand"): Ditto.
2017         (define_predicate "const_0_to_255_operand"): Ditto.
2018         (define_predicate "const_1_to_31_operand"): Ditto.
2019         (define_predicate "const_2_to_3_operand"): Ditto.
2020         (define_predicate "const_4_to_7_operand"): Ditto.
2021
2022 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
2023
2024         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
2025         in SImode for save_world.
2026         * config/rs6000/altivec.md (save_world, restore_world): Convert to
2027         LR hard reg.
2028
2029 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
2030
2031         PR tree-optimization/30784
2032         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
2033         BIT_FIELD_REF.
2034
2035 2007-03-25  Revital Eres  <eres@il.ibm.com>
2036
2037         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
2038           Fold movement_possibility function into it.
2039
2040 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
2041
2042         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
2043         (load_macho_picbase_{si,di}): Convert to LR hard reg.
2044         (call_indirect_nonlocal_darwin64): Same.
2045         (call_nonlocal_darwin64): Same.
2046         (call_value_indirect_nonlocal_darwin64): Same.
2047         (call_value_nonlocal_darwin64): Same.
2048         (sibcall_nonlocal_darwin64): Same.
2049         (sibcall_value_nonlocal_darwin64): Same.
2050         (sibcall_symbolic_64): Same.
2051         (sibcall_value_symbolic_64): Same.
2052         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
2053         LR pseudo.
2054         (rs6000_emit_load_toc_table): Same.
2055         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
2056         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
2057         (mull_call): Same.
2058         (divss_call): Same.
2059         (divus_call): Same.
2060         (quoss_call): Same.
2061         (quous_call): Same.
2062         (load_toc_v4_pic_si): Same
2063         (load_toc_v4_PIC_1): Same.
2064         (load_toc_v4_PIC_1b): Same.
2065         (call_indirect_aix{32,64}): Same.
2066         (call_value_indirect_aix{32,64}): Same.
2067         (call): Same.
2068         (call_value): Same.
2069         (call_local{32,64}): Same.
2070         (call_value_local{32,64}): Same.
2071         (call_indirect_nonlocal_aix{32,64}): Same.
2072         (call_nonlocal_aix{32,64}): Same.
2073         (call_value_indirect_nonlocal_aix{32,64}): Same.
2074         (call_value_nonlocal_aix{32,64}): Same.
2075         (call_indirect_nonlocal_sysv<mode>): Same.
2076         (call_nonlocal_sysv<mode>): Same.
2077         (call_value_indirect_nonlocal_sysv<mode>): Same.
2078         (call_value_nonlocal_sysv<mode>): Same.
2079         (sibcall): Same.
2080         (sibcall_local{32,64}): Same.
2081         (sibcall_value_local{32,64}): Same.
2082         (sibcall_nonlocal_aix{32,64}): Same.
2083         (sibcall_value_nonlocal_aix{32,64}): Same.
2084         (sibcall_nonlocal_sysv<mode>): Same.
2085         (sibcall_value): Same.
2086         (sibcall_value_nonlocal_sysv<mode>): Same.
2087
2088 2007-03-24  Paul Brook  <paul@codesourcery.com>
2089
2090         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
2091         * config/arm/linux-eabi.h: Remove legacy syscall hack.
2092
2093 2007-03-24  Richard Henderson  <rth@redhat.com>
2094
2095         * config/ia64/constraints.md: New file.
2096         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
2097         satisfies_constraint_?.
2098         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
2099         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
2100         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
2101         ia64_output_mi_thunk): Likewise.
2102         (ia64_const_ok_for_letter_p): Remove.
2103         (ia64_const_double_ok_for_letter_p): Remove.
2104         (ia64_extra_constraint): Remove.
2105         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
2106         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
2107         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
2108         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
2109         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
2110         EXTRA_MEMORY_CONSTRAINT): Remove.
2111         * config/ia64/ia64.md: Include constriants.md.  Replace
2112         CONST_OK_FOR_? with satisfies_constraint_?.
2113
2114 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
2115             H.J. Lu  <hongjiu.lu@intel.com>
2116
2117         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
2118         DPD or BID name.
2119         (name macros): Use DPD_BID_NAME to convert names properly.
2120
2121         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
2122         decimal floating point format.
2123         (init_floating_libfuncs): Change decimal functions so that they
2124         have a "bid_" prefix if the decimal system uses the BID format,
2125         and "dpd_" prefix if the decimal system uses the DPD format.
2126         (init_interclass_conv_libfuncs): Ditto.
2127         (init_intraclass_conv_libfuncs): Ditto.
2128
2129         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
2130         using the BID format.
2131
2132         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
2133         whether we are using the BID decimal format.
2134         * configure: Regenerate.
2135
2136         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
2137         the compiler has decimal floating point enabled.  Define
2138         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
2139         instead of DPD.
2140
2141         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
2142         using the BID format.
2143
2144         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
2145         whether we are using the BID decimal format.
2146         * configure: Regenerate.
2147
2148         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
2149         the compiler has decimal floating point enabled.  Define
2150         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
2151         instead of DPD.
2152
2153         * doc/install.texi (--enable-decimal-float): Document BID and DPD
2154         options, and that it is enabled for i386/x86_64 systems.
2155
2156         * Makefile.in (enable_decimal_float): New.
2157         (DECNUMFMT): New.
2158         (DECNUMINC): Add  -I$(DECNUMFMT).
2159         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
2160         to $(DECNUMFMT) from $(DECNUM).
2161
2162         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
2163         Substitute enable_decimal_float.
2164         * configure: Regenerated.
2165
2166         PR other/30529
2167         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
2168         unsigned long.
2169
2170         * configure.ac: Enable decimal float for x86_64-*-linux*.
2171         * configure: Regenerated.
2172
2173         PR other/30530
2174         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
2175         decimal128ClearSign to flip and clear the sign bit in decimal128.
2176         (decimal_real_maxval): Set decimal128SetSign to set the sign
2177         bit in decimal128.
2178
2179 2007-03-23  Ian Lance Taylor  <iant@google.com>
2180
2181         * fold-const.c (fold_binary): Correct warning for X - c >= X.
2182
2183 2007-03-23  Ian Lance Taylor  <iant@google.com>
2184
2185         * tree-dump.c (dump_files): Correct comment.
2186
2187 2007-03-23  Ian Lance Taylor  <iant@google.com>
2188
2189         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
2190
2191 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
2192
2193         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
2194         in cfglayout mode.  Don't go into and out of cfglayout mode.
2195         Link the blocks in the order of the constructed traces.
2196         (rest_of_handle_tracer): Adjust call to tracer.
2197         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
2198         Don't go into cfglayout mode.
2199         (rtl_loop_done): Don't go out of cfglayout mode.
2200         * cfglayout.c (relink_block_chain): New function, split out from...
2201         (fixup_reorder_chain): ...here.  Remove redundant checking.
2202         (cfg_layout_finalize): Don't clear the header, footer, and aux
2203         fields here, move the code to do so to relink_block_chain.  Likewise
2204         for free_original_copy_tables.
2205         * rtl.h (tracer): Update prototype.
2206         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
2207         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
2208         mode.  Use relink_block_chain to serialize the CFG according to the
2209         new basic block order.  Move targetm.cannot_modify_jumps_p check from
2210         here...
2211         (gate_handle_reorder_blocks): ...to here.
2212         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
2213         from here...
2214         (gate_duplicate_computed_gotos): ...to here.
2215         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
2216         something always changes when going into and out of cfglayout mode.
2217         Perform an expensive cfg cleanup while going into cfglayout mode.
2218         Always update liveness information on HAVE_conditional_execution
2219         targets.  Reserialize the basic blocks and go out of cfglayout mode.
2220         * reg-stack.c: Include cfglayout.h.
2221         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
2222         the call to reorder_basic_blocks.
2223         * basic-block.h (reorder_basic_blocks): Update prototype.
2224         (relink_block_chain): New prototype.
2225         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
2226
2227 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
2228
2229         * config/mips/mips.md (type, hazard, *movdi_32bit,
2230         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
2231         *movhi_internal, *movqi_internal, *movsf_hardfloat,
2232         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
2233         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
2234         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
2235         applicable.
2236         (movcc): Change first xfer to multi.
2237         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
2238         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
2239         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
2240         config/mips/generic.md: Change reservations using "xfer" to use
2241         "mfc,mtc".
2242         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
2243         using match_operand.
2244         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
2245         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
2246         examining mode.
2247         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
2248
2249 2007-03-22  Richard Henderson  <rth@redhat.com>
2250
2251         * config/i386/i386.c: Remove unnecessary function declarations.
2252         Move targetm definition, and all related macros, to the end of
2253         the file.  Resort some functions to put definitions before uses.
2254         (ix86_attribute_table): Make static.  Move to end of file.
2255         (ix86_gimplify_va_arg): Make static.
2256
2257 2007-03-22  Richard Henderson  <rth@redhat.com>
2258
2259         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
2260         don't increase local_regparm with force_align_arg_pointer check.
2261         (ix86_function_sseregparm): Assert 32-bit.
2262         (type_has_variadic_args_p): New.
2263         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
2264         type_has_variadic_args_p.
2265         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
2266         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
2267         use memset instead.  Do maybe_vaarg check first; skip attribute
2268         tests if true; skip attribute tests for 64-bit.
2269         (construct_container): Remove TARGET_DEBUG_ARG.
2270         (function_arg_advance_32, function_arg_advance_64): Split out ...
2271         (function_arg_advance): ... from here.
2272         (function_arg_32, function_arg_64): Split out ...
2273         (function_arg): ... from here.
2274         (ix86_pass_by_reference): Tidy.
2275         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
2276         (function_value_32): New, from parts of ix86_function_value
2277         and ix86_value_regno.
2278         (function_value_64): New, from parts of ix86_function_value
2279         and ix86_libcall_value.
2280         (ix86_function_value_1): New.
2281         (ix86_function_value, ix86_libcall_value): Use it.
2282         (return_in_memory_32, return_in_memory_64): Split out ...
2283         (ix86_return_in_memory): ... from here.
2284         (ix86_struct_value_rtx): Skip for 64-bit.
2285         (ix86_libcall_value, ix86_value_regno): Remove.
2286         (setup_incoming_varargs_64): Split out ...
2287         (ix86_setup_incoming_varargs): ... from here.
2288         (ix86_va_start): Remove TARGET_DEBUG_ARG.
2289         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
2290         * config/i386/i386-protos.h (ix86_function_value): Remove.
2291         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
2292
2293 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2294
2295         PR other/23572
2296         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
2297         infinities not supported, otherwise emit warning if -Woverflow. On
2298         underflow, emit warning if -Woverflow.
2299         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
2300         and 0 otherwise.
2301         * real.h (real_from_string): Update declaration
2302
2303 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
2304             Richard Henderson  <rth@redhat.com>
2305
2306         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
2307         * calls.c (compute_argument_block_size, expand_call,
2308         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
2309         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2310         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
2311         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
2312         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
2313         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
2314         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
2315         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
2316         Set to 1.
2317
2318 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
2319
2320         * c-incpath.c (add_sysroot_to_chain): New.
2321         (merge_include_chains): Add sysroot argument.  Call
2322         add_sysroot_to_chain if sysrooted.
2323         (register_include_chains): Update call to merge_include_chains.
2324         * doc/cppopts.texi: Document use of '=' in include directory
2325         arguments.
2326
2327 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
2328
2329         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
2330         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
2331         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
2332         insn pattern using X87MODEF12 mode macro.
2333
2334 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
2335
2336         * regmove.c (regmove_optimize): Use reg_mentioned_p
2337         instead of reg_overlap_mentioned_p for DST.
2338
2339 2007-03-21  Mike Stump  <mrs@apple.com>
2340
2341         * c.opt: Fixup for Objective-C/C++.
2342
2343 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
2344
2345         * explow.c (convert_memory_address): Fold memory reference when
2346         POINTERS_EXTEND_UNSIGNED < 0
2347
2348 2007-03-21  Richard Henderson  <rth@redhat.com>
2349
2350         PR target/31245
2351         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
2352         * config/i386/mmintrin.h (__m64): Likewise.
2353         * config/i386/xmmintrin.h (__m128): Likewise.
2354
2355 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
2356
2357         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
2358         (VXWORKS_OS_CPP_BUILTINS): Define.
2359         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
2360         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
2361
2362 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
2363
2364         * rtl.h (constant_pool_reference_p): Delete.
2365         (find_constant_src): Declare.
2366         * rtlanal.c (find_constant_src): New function.
2367         * simplify-rtx.c (constant_pool_reference_p): Delete.
2368         * config/i386/i386.md: Use find_constant_src instead of
2369         constant_pool_reference_p/avoid_constant_pool_reference pairs.
2370
2371 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
2372
2373         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
2374         * c-cppbuiltin.c (c_cpp_builtins): Define them.
2375
2376 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
2377
2378         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
2379         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
2380         (arm_elf_asm_constructor): Use it.
2381         (arm_elf_asm_destructor): New function.
2382
2383 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2384
2385         * jump.c (mark_jump_label): Treat SEQUENCE specially.
2386
2387 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
2388
2389         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
2390
2391 2007-03-19  Andrew Haley  <aph@redhat.com>
2392
2393         PR tree-optimization/31264
2394         * tree-vrp.c (register_edge_assert_for_1): Don't look though
2395         VIEW_CONVERT_EXPRs.
2396
2397 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
2398
2399         PR rtl-optimization/30907
2400         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
2401         (fwprop_init): Always call loop_optimizer_initialize.
2402         (fwprop_done): Always call loop_optimizer_finalize.
2403         (fwprop): We always have loop info now.
2404         (gate_fwprop_addr): Remove.
2405         (pass_fwprop_addr): Use gate_fwprop as gate.
2406
2407         PR rtl-optimization/30841
2408         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
2409         df_chain_alloc): Call df_reorganize_refs unconditionally.
2410         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
2411         refs_organized to refs_organized_size.
2412         (df_ref_create_structure): Use refs_organized_size instead of
2413         bitmap_size if refs had been organized, and keep refs_organized_size
2414         up-to-date.
2415         * df.h (struct df_ref_info): Change refs_organized to
2416         refs_organized_size.
2417         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
2418         bitmap_size.
2419
2420 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
2421
2422         * except.c (output_function_exception_table): Do not reference the
2423         EH personality routine for functions that do not require an
2424         exception table.
2425
2426 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
2427
2428         PR c/30762
2429         * c-typeck.c (convert_for_assignment): Call comptypes for
2430         RECORD_TYPE or UNION_TYPE.
2431
2432         PR inline-asm/30505
2433         * reload1.c (reload): Do invalid ASM checking after
2434         cleanup_subreg_operands.
2435
2436 2007-03-19  Jeff Law  <law@redhat.com>
2437
2438         * tree-cfg.c (find_taken_edge): Tighten conditions for
2439         optimizing computed gotos.
2440
2441 2007-03-19  Michael Matz  <matz@suse.de>
2442
2443         * builtins.c (expand_builtin_sync_operation,
2444         expand_builtin_compare_and_swap,
2445         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
2446         correctly.
2447
2448         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
2449         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
2450         for operand 3.
2451
2452 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2453
2454         * doc/tm.texi: Add brackets around the return type of
2455         TARGET_SECONDARY_RELOAD.
2456
2457 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2458         Richard Guenther  <rguenther@suse.de>
2459
2460         PR tree-optimization/31254
2461         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
2462         Use handled_component_p () where appropriate.  Continue
2463         propagating into the rhs if we propagated into an INDIRECT_REF
2464         on the lhs.
2465
2466 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2467
2468         * config/s390/s390.md (op_type attribute): RRR instruction type added.
2469         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
2470         (xde, xdee): Mode attributes adjusted to support DFP modes.
2471         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
2472         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
2473         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
2474         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
2475         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
2476         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
2477         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
2478         numbers.
2479         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
2480         "movsf"): Insn definitions removed.
2481         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
2482         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
2483         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
2484         definitions added.
2485         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
2486         "reload_in<mode>", "reload_out<mode>"): Expander added.
2487         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
2488         Expander removed.
2489
2490 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2491
2492         * config/s390/s390.md: Only non-functional changes.  Renamed
2493         FPR mode macro to BFP all over the file.
2494
2495 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2496
2497         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
2498         (op_type attribute): RRF instruction type added.
2499         (fT0): New mode attribute.
2500         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
2501         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
2502         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
2503         no secondary memory is needed when moving DFmode values between GPRs
2504         and FPRs.
2505
2506 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2507
2508         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
2509         inverted and documentation adjusted.
2510         ("mhard-dfp", "msoft-dfp"): New options.
2511         * config/s390/s390.c (s390_handle_arch_option): New architecture
2512         switch: z9-ec.
2513         (override_options): Sanity checks for the new options added.
2514         * config.gcc: New architecture switch: z9-ec.
2515         * config/s390/s390.h (processor_flags): PF_DFP added.
2516         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
2517         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
2518         when the bit is NOT set so remove it from the defaults.
2519
2520 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2521
2522         * genemit.c (main): Print include statement for dfp.h.
2523         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
2524         is not available.
2525
2526 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
2527
2528         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
2529
2530 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2531
2532         PR target/31022
2533         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
2534         instead of PATTERN.
2535
2536 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2537
2538         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
2539         attr_length_call, output_call, output_indirect_call): Cleanup
2540         formatting of targetm calls.
2541
2542 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
2543
2544         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
2545
2546 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2547
2548         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
2549         reservation, bypass and anti-bypass descriptions for these instructions.
2550         Update move patterns.
2551         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
2552         TYPE_FPSTORE.
2553
2554 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
2555
2556         * tree-vect-transform.c (get_initial_def_for_induction): Replace
2557         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
2558         (get_initial_def_for_reduction): Likewise.
2559
2560 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
2561
2562         Fix PR tree-optimization/29922
2563         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
2564         (get_representative): Removed.
2565         (value_dies_in_block_x): Update for rvuse removal.
2566         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
2567         (compute_antic_aux): Handle when PHI nodes appear in
2568         non-single-successors.
2569         (dump_bitmap_of_names): Removed.
2570         (compute_antic_safe): Renamed and removed rvuse calculation.
2571         Calculate only antic safe.
2572         (insert_into_preds_of_block): Remove assert.
2573         (execute_pre): Update for renamed functions.
2574         (defer_or_phi_translate_block): New function.
2575
2576 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
2577
2578         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
2579         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
2580         typos.
2581         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
2582         Follow spelling conventions.
2583
2584         * tree-data-ref.h: Remove the prototype for analyze_array.
2585
2586 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
2587
2588         PR tree-optimization/31041
2589         * tree-vect-transform.c (get_initial_def_for_induction): Call
2590         force_gimple_operand.
2591
2592 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
2593
2594         * ipa-type-escape.c (look_for_casts) : Revert code to use
2595         handled_component_p due to ada test a-numaux.adb.
2596
2597 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
2598
2599         * final.c (final_scan_insn): Alter the condition of a
2600         conditional trap if we have nonstandard CC.
2601
2602 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
2603
2604         * configure.ac: Remove excess quoting from asm line 0 test.
2605         * configure: Rebuilt.
2606
2607 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2608
2609         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
2610         * c-common.c (convert_and_check): Move warning logic to...
2611         (warnings_for_convert_and_check): ...here. Define.
2612         * c-common.h (warnings_for_convert_and_check): Declare.
2613
2614 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2615
2616         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
2617         (output_call): Likewise.
2618
2619 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
2620
2621         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
2622
2623 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
2624
2625         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
2626
2627 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
2628
2629         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
2630         opteron, athlon-64 and athlon-fx processor_alias_table entries.
2631
2632 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
2633
2634         PR tree-optimization/31183
2635         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
2636         Use double_int instead of unsigned int for representing access_strides.
2637         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
2638
2639 2007-03-16  Richard Guenther  <rguenther@suse.de>
2640
2641         PR tree-optimization/31146
2642         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
2643         to allow recursion of forward_propagate_addr_expr.
2644         (forward_propagate_addr_into_variable_array_index): Likewise.
2645         (forward_propagate_addr_expr): Likewise.
2646         (tree_ssa_forward_propagate_single_use_vars): Likewise.
2647         (forward_propagate_addr_expr_1): Recurse on simple copies
2648         instead of propagating into them.  Do so for useless conversions
2649         as well.
2650         (forward_propagate_addr_expr): Clean up unused statements after
2651         recursion.
2652
2653 2007-03-16  Richard Guenther  <rguenther@suse.de>
2654
2655         * builtins.c (expand_builtin_cexpi): Use the right argument
2656         for the expansion via cexp.
2657
2658 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
2659
2660         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
2661         * configure: Rebuilt.
2662
2663 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
2664
2665         PR debug/29906
2666         * dwarf2out.c (force_type_die): Adjust comment.
2667         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
2668
2669 2007-03-15  DJ Delorie  <dj@redhat.com>
2670
2671         * config/frv/predicates.md (minmax_operator): Don't check operands
2672         here.
2673
2674 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
2675
2676         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
2677         Update constant estimates of number of iterations.
2678         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
2679         argument renamed to "realistic".
2680         (compute_estimated_nb_iterations): Removed.
2681         (record_niter_bound): New function.
2682         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
2683         call record_nonwrapping_iv with upper = false.
2684         (infer_loop_bounds_from_signedness): Pass upper argument to
2685         record_nonwrapping_iv.
2686         (estimate_numbers_of_iterations_loop): Do not call
2687         compute_estimated_nb_iterations.  Record estimate based on profile
2688         information.  Initialize the constant estimates of number of
2689         iterations.
2690         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
2691         estimates.
2692         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
2693         number of iterations is too small.
2694         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
2695         (EST_NOT_AVAILABLE): Removed.
2696         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
2697         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
2698         fields.
2699
2700 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
2701
2702         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
2703         Handle NE_EXPR guards.
2704
2705 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2706
2707         PR c++/24924
2708         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
2709         Set also -pedantic-errors by default for the  preprocessor unless
2710         -fpermissive is given.
2711
2712 2007-03-15  Richard Guenther  <rguenther@suse.de>
2713
2714         PR middle-end/29719
2715         PR middle-end/31161
2716         * builtins.c (expand_builtin_cexpi): As a fallback if we
2717         don't have builtins for sincos or cexp create a function
2718         declaration for cexp and expand to a call to that.
2719         (expand_builtin_int_roundingfn): Always fall
2720         back to floor/ceil and its variants even if they may be
2721         not available.
2722
2723 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
2724
2725         PR middle-end/31159
2726         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
2727         jump tables, move the call to delete_dead_jumptables from here...
2728         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
2729         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
2730         don't allow merging of blocks that try_redirect_by_replacing_jump
2731         also does not handle when not optimizing.
2732
2733 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
2734             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2735
2736         * config/i386/i386.md (x86_sahf_1): Correctly handle
2737         HAVE_AS_IX86_SAHF.
2738
2739 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
2740
2741         PR target/31167
2742         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
2743         x86_64_general_operand as operand[2] predicate.  Remove "iF"
2744         from operand constraints and use "e" constraint instead.
2745         (*subti3_1, *subti3_1 splitter): Ditto.
2746         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
2747         operand[1] predicate.
2748
2749 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
2750
2751         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
2752         arrays, multiply the access strides by the size of the sub-array.
2753         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
2754
2755 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
2756
2757         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
2758         the configured assembler supports the sahf mnemonic.
2759         * configure: Regenerate.
2760         * config.in: Regenerate.
2761
2762         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
2763         emit "sahf" or ".byte\t0x9e" as asm template.
2764
2765 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
2766
2767         PR 31018
2768         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
2769         option to replace hard coded TARGET_xxx in md file.
2770         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
2771         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2772         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
2773         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
2774         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
2775         (X86_TUNE_NOT_VECTORMODE): Ditto.
2776         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
2777         (TUNE_AVOID_VECTOR_DECODE): Ditto.
2778         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2779         (TUNE_SLOW_IMUL_IMM8): Ditto.
2780         (TUNE_MOVE_M1_VIA_OR): Ditto.
2781         (TUNE_NOT_UNPAIRABLE): Ditto.
2782         (TUNE_NOT_VECTORMODE): Ditto.
2783
2784         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
2785         options.
2786
2787         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
2788         tuning options instead of hard coded TARGET_xxx.
2789         (fix ssemode peephole2's): Ditto.
2790         (imul peephole2's): Ditto.
2791         (movsi_or): Ditto.
2792         (movdi_or_rex64): Ditto.
2793         (move peephole2): Ditto.
2794         (not peephole2's): Ditto.
2795
2796 2007-03-14  Dirk Mueller  <dmueller@suse.de>
2797
2798         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
2799         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
2800         * c-parser.c (c_parser_if_body): Always add an empty statement in case
2801         of empty body.
2802         * c-parser.c (c_parser_do_statement): Warn about empty body in
2803         do/while statement.
2804         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
2805         * doc/invoke.texi (-Wempty-body): Update documentation.
2806
2807 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2808
2809         PR c/21438
2810         * c-common.h (warn_for_div_by_zero): Declare.
2811         * c-common.c (warn_for_div_by_zero): Define.
2812         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
2813         warning.
2814
2815 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
2816
2817         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
2818         to PREFIX and STANDARD_PREFIX.
2819
2820 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
2821             Phil Edwards  <phil@codesourcery.com>
2822
2823         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
2824         (__gthread_once_t): Remove busy field for RTPs.
2825         (__GTHREAD_ONCE_INIT): Update accordingly.
2826
2827 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
2828
2829         * doc/invoke.texi: Document VxWorks options.
2830
2831 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
2832
2833         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
2834
2835 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
2836
2837         PR tree-optimization/30590
2838         * tree-nrv.c (tree_nrv): Check for the partial update of the
2839         return value.
2840
2841 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
2842
2843         * flags.h (flag_random_seed): Remove declaration, in favor of...
2844         * toplev.h (get_random_seed, set_random_seed): ... these.
2845         * tree.c (get_file_function_name): Use the former.
2846         * opts.c (common_handle_option): Use the latter.
2847         * toplev.c
2848
2849 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
2850
2851         PR middle-end/31127
2852         * cse.c (cse_find_path): Do not bail out if a basic block that
2853         we already visited now becomes part of a path that starts at a
2854         different basic block.  Just disallow this, to make sure we
2855         visit each basic block at most once.
2856
2857 2007-03-13  Jan Hubicka  <jh@suse.cz>
2858
2859         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
2860         when profile esitmate is present, calls with very low frequency are
2861         cold.
2862
2863 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
2864
2865         PR tree-optimization/30730
2866         PR tree-optimization/26900
2867         * tree-ssa-loop-niter.c: Include gmp.h.
2868         (bounds): New type.
2869         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
2870         split_to_var_and_offset, determine_value_range,
2871         bound_difference_of_offsetted_base, refine_bounds_using_guard,
2872         bound_difference, bounds_add, bounds_negate,
2873         number_of_iterations_ne_max, dump_affine_iv): New functions.
2874         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
2875         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
2876         difference of initial and final value of control iv to validate
2877         results.
2878         (number_of_iterations_cond): Add loop parameter.  Determine bounds
2879         on the difference of the extremes of the control iv.  Add dumps.
2880         (expand_simple_operations): Handle phi nodes.
2881         (simplify_using_initial_conditions): Do not record used conditions.
2882         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
2883         Do not set additional_info.
2884         (implies_nonnegative_p, implies_ge_p): Removed.
2885         (derive_constant_upper_bound): Do not use parameter `additional'.
2886         (record_estimate): Parameter `additional' removed.  Parameter
2887         `i_bound' added.  Do not call derive_constant_upper_bound.
2888         (record_nonwrapping_iv): Use derive_constant_upper_bound to
2889         bound the number of iterations estimate.
2890         (estimate_numbers_of_iterations_loop): Pass the estimate from
2891         the number of iterations analysis to record_estimate.
2892         * tree.h (multiple_of_p): Declare.
2893         * tree-scalar-evolution.c (expression_expensive_p): Removed.
2894         (scev_const_prop): Do not check expression_expensive_p.
2895         * fold-const.c (multiple_of_p): Exported.
2896         * double-int.c (double_int_mask): Exported.
2897         * double-int.h (double_int_mask): Declare.
2898         * tree-flow.h (struct tree_niter_desc): Removed additional_info
2899         field.  Added max field.
2900
2901 2007-03-13  David Taylor  <taylor@candd.org>
2902
2903         PR driver/12448:
2904         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
2905         default -MQ.
2906
2907 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2908
2909         PR target/31123
2910         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
2911         two unamed patterns.
2912
2913 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
2914
2915         * config/i386/i386.opt (mcx16, msahf): New options.
2916         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
2917         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
2918
2919         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
2920         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
2921         Output -mcx16 and -msahf options when corresponding bit is set.
2922
2923         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
2924         and -msahf options.
2925
2926 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
2927
2928         * configure.ac: Test for assembler tolerance to # 0 "".
2929         * configure, config.in: Rebuilt.
2930         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
2931
2932 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
2933
2934         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
2935
2936         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
2937         (handle_syscall): Handle direct system calls.
2938         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
2939
2940 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
2941
2942         * doc/invoke.texi: Fix cpp.info cross-reference.
2943         * doc/passes.texi: Fix gcc.info cross-reference.
2944
2945 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
2946
2947         PR tree-optimization/30835
2948         * lambda-code.c (can_convert_to_perfect_nest): Check whether
2949         bb_for_stmt is not NULL before accessing it.
2950
2951 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
2952
2953         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
2954         some multilibs.
2955
2956 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
2957
2958         PR 30635
2959         * doc/install.texi: Document --enable-stage1-languages
2960
2961 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
2962
2963         * tree-pass.h (pass_into_cfg_layout_mode,
2964         pass_outof_cfg_layout_mode): Declare.
2965         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
2966         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
2967         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
2968         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
2969
2970 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
2971
2972         * c-decl.c (warn_variable_length_array): New function.
2973         Refactored from grokdeclarator to handle warn_vla
2974         and handle unnamed array case.
2975         (grokdeclarator): Refactored VLA warning case.
2976         * c.opt (Wvla): New flag.
2977         * doc/invoke.texi (Wvla): New warning.
2978
2979 2007-03-12  Richard Henderson  <rth@redhat.com>
2980
2981         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
2982         (TARGET_SECTION_TYPE_FLAGS): New.
2983
2984 2007-03-12  Richard Henderson  <rth@redhat.com>
2985
2986         * config/darwin.c (machopic_reloc_rw_mask): New.
2987         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
2988         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
2989
2990 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
2991
2992         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
2993         * cppdefault.h (cpp_PREFIX): Document.
2994         (cpp_PREFIX_len): Likewise.
2995         (cpp_EXEC_PREFIX): New variable.
2996         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
2997         * c-incpath.c (add_standard_paths): Correct logic for relocating
2998         paths within prefix.
2999
3000 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
3001
3002         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
3003         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
3004         mode macro.
3005         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
3006         fix_truncdfdi_sse using SSEMODEF mode macro.
3007         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
3008         fix_truncdfsi_sse using SSEMODEF mode macro.
3009         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
3010         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
3011
3012 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
3013
3014         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
3015         elfos.h to tm_file.
3016
3017 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
3018
3019         * tree.h : Add multiple_of_p declaration.
3020         * fold-const.c (multiple_of_p): Make multiple_of_p public.
3021         * ipa-type-escape.c (results_of_malloc): Redundant.
3022         (visited_stmts): New. Visited stmt for walk_use_def_chains.
3023         (cast_type): Extended with new members.
3024         (check_cast): Returns cast_type.
3025         (cast): New structure for data of walk_use_def_chains.
3026         (is_malloc_result, is_cast_from_non_pointer_1,
3027         is_cast_from_non_pointer,
3028         is_array_access_through_pointer_and_index): New functions.
3029         (look_for_casts): Returns cast types.
3030         (check_call): Returns void.
3031         (okay_pointer_operation): Use support of pointer plus index,
3032         pointer plus constant and allow all multiplications.
3033
3034 2007-03-11  Richard Guenther  <rguenther@suse.de>
3035
3036         PR tree-optimization/31115
3037         * tree-vrp.c (extract_range_from_binary_expr): Make sure
3038         the shift count is positive and non-anti-range for RSHIFT_EXPR.
3039         A shift count of zero is not special as with *_DIV_EXPR.
3040         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
3041         direction.
3042
3043 2007-03-11  Ian Lance Taylor  <iant@google.com>
3044
3045         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
3046         the *_DIV_EXPR codes correctly with overflow infinities.
3047
3048 2007-03-11  Ira Rosen  <irar@il.ibm.com>
3049
3050         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
3051         indicate success/failure of the analysis. Add negation to subtrahend
3052         in case of subtraction. Fail if both operands contain constants.
3053         (create_data_ref): Fail if analyze_offset fails.
3054
3055 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
3056
3057         * config/i386/i386.md (frndintxf2): Rename to ...
3058         (rintxf2): ... this. Remove expander having same name.
3059         (rintsf2, rintdf2): Implement using SSEMODEF macro.
3060         (roundsf2, rounddf2): Ditto.
3061         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
3062         (lround<mode>di2, lround<mode>si2): Ditto.
3063
3064 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
3065
3066         * lower-subreg.c: Include except.h.
3067         (decompose_multiword_subregs): Verify that the only control flow
3068         insns we can split are loads to multi-words pseudos.
3069         Handle breaking such blocks after splitting, instead of calling
3070         find_many_sub_basic_blocks.
3071
3072         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
3073         on the new basic block.  Add a lengthy comment explaining why we
3074         thought this was necessary.
3075         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
3076
3077 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
3078
3079         PR c++/30924
3080         * tree.c (walk_type_fields): Recurse into the element type of
3081         ARRAY_TYPEs if there is a pointer set.
3082
3083 2007-03-10  Dirk Mueller  <dmueller@suse.de>
3084
3085         * c-common.c (warn_logical_operator): Fix condition.
3086
3087 2007-03-10  Tobias Schl├╝ter  <tobi@gcc.gnu.org>
3088
3089         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
3090         quotation mark.
3091         * config/darwin.c (machopic_select_section): Remove superfluous
3092         argument in call to categorize_decl_for_section.  Remove unused
3093         variable shlib.
3094
3095 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
3096
3097         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
3098         defined.
3099         * configure: Regenerate.
3100
3101 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
3102
3103         PR target/31101
3104         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
3105         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
3106         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
3107         Add LABEL_NUSES to emitted label.
3108         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
3109         branch probability value to emitted jump insn.
3110         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
3111         Do not check life information and do not re-arrange input operands
3112         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
3113
3114 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3115
3116         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
3117         the change of decode_asm_operands.
3118
3119 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3120
3121         * mode-switching.c (create_pre_exit): Skip blockage insn.
3122
3123 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
3124
3125         * tree-pass.h (TODO_update_smt_usage): Remove.
3126         Update all users.
3127         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3128         argument SOME.
3129         Update all users.
3130
3131 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3132
3133         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
3134         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
3135         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
3136         SOM target.
3137
3138 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
3139
3140         * gcc.c: Document %{, in big comment at top.
3141         (input_suffix_matches): Remove special handling for .s and
3142         .S.
3143         (input_spec_matches): New.
3144         (handle_braces): Handle %{,.
3145         (validate_switches): ',' indicates a value which is not a switch.
3146         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
3147         to detect assembler input.
3148         * config/i386/sol2.h (CPP_SPEC): Likewise.
3149         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
3150         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
3151         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
3152         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
3153         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
3154         -m64 causes deployment target to default to 10.5.
3155         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
3156
3157 2007-03-09  Richard Henderson  <rth@redhat.com>
3158
3159         PR target/26090
3160         * target.h (targetm.asm.out.reloc_rw_mask): New.
3161         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
3162         (TARGET_ASM_OUT): Use it.
3163         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
3164         * varasm.c (categorize_decl_for_section): Remove shlib argument;
3165         use the new reloc_rw_mask target hook instead.
3166         (default_section_type_flags_1): Merge into...
3167         (default_section_type_flags): ... here.
3168         (decl_readonly_section_1): Merge into...
3169         (decl_readonly_section): ... here.
3170         (default_elf_select_section_1): Merge into...
3171         (default_elf_select_section): ... here.
3172         (default_unique_section_1): Merge into...
3173         (default_unique_section): ... here.
3174         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
3175         (default_select_rtx_section): Use it.
3176         (default_elf_select_rtx_section): Likewise.
3177         * output.h: Update to match.
3178         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
3179         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
3180         (TARGET_ASM_RELOC_RW_MASK): New.
3181         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
3182         to categorize_decl_for_section.
3183         (x86_64_elf_unique_section): Likewise.
3184         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
3185         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
3186         (TARGET_ASM_RELOC_RW_MASK): New.
3187         * config/ia64/ia64.c (ia64_rwreloc_select_section,
3188         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
3189         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
3190         (TARGET_RWRELOC): Remove.
3191         (ia64_section_type_flags): Adjust call to default_section_type_flags.
3192         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
3193         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
3194         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
3195         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
3196         (rs6000_xcoff_select_section): Use decl_readonly_section.
3197         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
3198         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
3199         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
3200         (TARGET_SECTION_TYPE_FLAGS): Remove.
3201         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
3202
3203 2007-03-09  Roger Sayle  <roger@eyesopen.com>
3204
3205         * fold-const.c (fold_comparison): Remove compile-time evaluation of
3206         complex constant equality/inequality comparisons for here.
3207         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
3208         known at compile-time or can be simplified to a scalar comparison.
3209         (fold_relational_const): Move compile-time evaluation of complex
3210         constant equality/inequality comparisons to here.
3211
3212 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
3213
3214         PR rtl-optimization/30643
3215         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
3216         dest_addr_elt.
3217         (fold_rtx): Recurse, like before 2006-11-03.
3218
3219 2007-03-09  DJ Delorie  <dj@redhat.com>
3220
3221         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
3222         m32c-pragma.o.
3223
3224 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
3225
3226         PR tree-optimization/30375
3227         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
3228         LHS of statements is not the same.
3229         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
3230
3231 2007-03-09  Chao-ying Fu  <fu@mips.com>
3232
3233         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
3234         REV 2.
3235         * doc/invoke.texi (-mdspr2): Document new option.
3236         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
3237         New unspec for DSP REV 2.
3238         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
3239         these instructions are extended in DSP REV 2.
3240         (mips-dspr2.md): Include.
3241         * config/mips/mips.opt (mdspr2): New option.
3242         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
3243         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
3244         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
3245         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
3246         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
3247         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
3248         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
3249         and 2 builtins.
3250         (bdesc_map): Add one field of unsupported_target_flags.
3251         (bdesc_arrays):  Update entries to have extra fields.  Add
3252         dsp_32only_bdesc.
3253         (mips_init_builtins): Initialize new function types.
3254         Check unsupported_target_fileds to filter out builtins.
3255         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
3256         TARGET_DSPR2.
3257         (ASM_SPEC): Pass mdspr2 to the assembler.
3258         * config/mips/mips-dspr2.md: New file.
3259
3260 2007-03-09  Sa Liu  <saliu@de.ibm.com>
3261
3262         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
3263
3264 2007-03-09  Ian Lance Taylor  <iant@google.com>
3265
3266         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
3267         argument) like -Wstrict-overflow=2.
3268         * doc/invoke.texi (Warning Options): Update documentation.
3269
3270 2007-03-09  Dirk Mueller  <dmueller@suse.de>
3271
3272         PR c++/17946
3273         * doc/invoke.texi (-Wlogical-op): Document.
3274         * common.opt (-Wlogical-op): New.
3275         * c-common.h (warn_logical_operator): Declare.
3276         * c-common.c (warn_logical_operator): Define.
3277         * c-typeck.c (parser_build_binary_op): Call
3278         warn_logical_operator.
3279
3280 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
3281
3282         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
3283         * final.c (final_scan_insn): Test for non-"" file name.
3284
3285 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
3286
3287         * doc/loop.texi: Document the Omega linear constraints solver.
3288         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
3289         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
3290         omega-hash-table-size, omega-max-keys, and
3291         omega-eliminate-redundant-constraints.
3292         * tree-pass.h (pass_check_data_deps): Declared.
3293         * omega.c: New.
3294         * omega.h: New.
3295         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
3296         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
3297         pass_check_data_deps): New.
3298         * tree-data-ref.c (init_data_ref): Remove declaration.
3299         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
3300         (analyze_array): Renamed init_array_ref, move up initializations.
3301         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
3302         Removed arguments that are set to NULL.
3303         (analyze_indirect_ref): Correct indentation, correct call to
3304         init_pointer_ref.
3305         (object_analysis): Call init_array_ref instead of analyze_array.
3306         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
3307         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
3308         of DR_ACCESS_FNS_ADDR.
3309         (init_omega_eq_with_af, omega_extract_distance_vectors,
3310         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
3311         ddr_consistent_p): New.
3312         (compute_affine_dependence): Check consistency of ddrs when
3313         flag_check_data_deps is passed.
3314         (analyze_all_data_dependences): Uncomment.
3315         (tree_check_data_deps): New.
3316         * tree-data-ref.h: Include omega.h.
3317         (DR_ACCESS_FNS_ADDR): Removed.
3318         (data_dependence_relation): Add inner_loop.
3319         (DDR_INNER_LOOP): New.
3320         * common.opt (fcheck-data-deps): New.
3321         * tree-flow.h (tree_check_data_deps): Declare.
3322         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
3323         (OBJS-common): Depend on omega.o.
3324         (omega.o): Define.
3325         * passes.c (pass_check_data_deps): Scheduled.
3326         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
3327         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
3328         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
3329         PARAM_VECT_MAX_VERSION_CHECKS,
3330         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
3331
3332 2007-03-09  Richard Guenther  <rguenther@suse.de>
3333
3334         PR tree-optimization/30904
3335         PR middle-end/31058
3336         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
3337         the same way as *_DIV_EXPR.
3338
3339 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
3340
3341         * recog.c (decode_asm_operands): No mixed declarations and code.
3342
3343 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
3344
3345         * rtl.def (ASM_INPUT): Add location.
3346         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
3347         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
3348         (decode_asm_operands): Add loc operand.
3349         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
3350         * stmt.c (expand_asm): Rename to...
3351         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
3352         gen_rtx_ASM_INPUT_loc.
3353         (expand_asm_expr): Adjust.
3354         * recog.c (decode_asm_operands): Add loc operand.
3355         (check_asm_operands, extract_insn): Adjust.
3356         * reload1.c (maybe_fix_stack_asms): Likewise.
3357         * final.c (asm_insn_count): Likewise.
3358         (final_scan_insn): Output # line before and after asm.
3359
3360 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
3361
3362         * tree-ssa-structalias.c (variable_info): Remove
3363         finished_solution.
3364         (new_var_info): Ditto.
3365         (shared_bitmap_info_t): New structure.
3366         (shared_bitmap_table): New variable.
3367         (shared_bitmap_hash): New function.
3368         (shared_bitmap_eq): Ditto
3369         (shared_bitmap_lookup): Ditto.
3370         (shared_bitmap_add): Ditto.
3371         (merge_smts_into): Change to take bitmap directly.
3372         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
3373         (init_alias_vars): Init shared bitmap hashtable.
3374         (delete_points_to_sets): Delete shared bitmap hashtable.
3375         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
3376         is_aliased removal as a change that was still necessary was
3377         deleted.
3378
3379 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
3380
3381         * config/i386/i386.h (override_options): Conditionally disable
3382         x86_sahf for 64bit targets only.
3383
3384 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3385
3386         PR C/31072
3387         * c-decl.c (merge_decls): Don't call make_var_volatile.
3388         * varasm.c (make_var_volatile): Remove.
3389         * output.h (make_var_volatile): Remove.
3390
3391 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
3392
3393         PR tree-optimization/31085
3394         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
3395
3396 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3397
3398         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
3399         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
3400         ATTR_CONST_NOTHROW_LIST.
3401
3402         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
3403         FIX_TRUNC_EXPR.
3404
3405 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
3406
3407         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
3408
3409 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
3410
3411         PR 31013
3412         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
3413         is declared.
3414         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
3415         passed, use shared libgcc.
3416
3417 2007-03-08  Roger Sayle  <roger@eyesopen.com>
3418
3419         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
3420         instead of calling build2 with a GIMPLE_MODIFY_STMT.
3421         (honor_protect_cleanup_actions, lower_try_finally_switch):
3422         Likewise.
3423         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
3424         ifc_temp_var): Likewise.
3425         * tree-inline.c (setup_one_parameter): Likewise.
3426         * tree-mudflap.c (mf_decl_cache_locals,
3427         mf_build_check_statement_for): Likewise.
3428         * tree-nested.c (init_tmp_var, save_tmp_var,
3429         finalize_nesting_tree_1): Likewise.
3430         * tree-outof-ssa.c (insert_copy_on_edge,
3431         insert_backedge_copies): Likewise.
3432         * tree-profile.c (tree_gen_edge_profiler,
3433         tree_gen_ic_profiler): Likewise.
3434         * tree-scalar-evolution.c (scev_const_prop): Likewise.
3435         * tree-sra.c (sra_build_assignment): Likewise.
3436         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
3437         * tree-ssa-math-opts.c (insert_reciprocals,
3438         execute_cse_sincos_1): Likewise.
3439         * tree-tailcall.c (adjust_accumulator_values,
3440         adjust_return_value): Likewise.
3441         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
3442         * tree-vect-transform.c (vect_create_data_ref_ptr,
3443         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
3444         vect_create_epilog_for_reduction, vectorizable_reduction,
3445         vectorizable_call, vectorizable_conversion,
3446         vectorizable_assignment, vectorizable_operation,
3447         vectorizable_type_demotion, vect_gen_widened_results_half,
3448         vect_permute_store_chain, vectorizable_store,
3449         vect_setup_realignment, vect_permute_load_chain,
3450         vectorizable_load, vectorizable_condition,
3451         vect_create_cond_for_align_checks): Likewise.
3452         * tree-vrp.c (build_assert_expr_for): Likewise.
3453
3454 2007-03-08  Ian Lance Taylor  <iant@google.com>
3455
3456         * tree-vrp.c: Include "intl.h".
3457         (usable_range_p): New static function.
3458         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
3459         overflowed values, juts set *strict_overflow_p.
3460         (compare_values): Only return -2 if one of the operands is not a
3461         constant.
3462         (compare_ranges): Call usable_range_p.
3463         (compare_range_with_value): Likewise.
3464         (vrp_evaluate_conditional_warnv): Rename from
3465         vrp_evaluate_conditional.  Make static.  Change all callers.
3466         (vrp_evaluate_conditional): New function.
3467         (simplify_div_or_mod_using_ranges): Issue warning about reliance
3468         on signed overflow.
3469         (simplify_abs_using_ranges): Likewise.
3470         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
3471         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
3472         within_stmt parameter.
3473         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3474         vrp_evaluate_conditional.
3475         * tree-ssa-threadedge.c
3476         (record_temporary_equivalences_from_stmts_at_dest): Change
3477         simplify parameter to take a second tree parameter.
3478         (simplify_control_stmt_condition): Likewise.
3479         (thread_across_edge): Likewise.
3480         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
3481         (thread_across_edge): Likewise.
3482         * gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
3483
3484 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
3485
3486         * config/i386/i386.h (TARGET_SAHF): New define.
3487         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
3488         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
3489         (x86_sahf): New global variable.
3490         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
3491         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
3492         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
3493         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
3494         for 64-bit.
3495         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
3496         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
3497         when expanding fcomi/sahf based tests.
3498         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
3499         expanding sahf based alternative. Emit sahf based sequence when
3500         optimizing for code size.
3501         * config/i386/i386.md (x86_sahf_1): Do not disable for
3502         TARGET_64BIT, enable for TARGET_SAHF.
3503
3504 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
3505
3506         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
3507         spurious whitespace from error message.
3508
3509 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
3510
3511         PR c++/30852
3512         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
3513
3514 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
3515
3516         * c-decl.c (grokdeclarator): Disable warnings for anonymous
3517         bitfields.
3518         * tree-sra.c (instantiate_element): Propagate disabled warnings
3519         from the element itself to the created variable.
3520
3521 2007-03-07  Richard Henderson  <rth@redhat.com>
3522
3523         PR target/30848
3524         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
3525         silently fix up the stack in the case of a missing register.
3526
3527 2007-03-07  Paul Brook  <paul@codesourcery.com>
3528
3529         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
3530
3531 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
3532
3533         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
3534         New.
3535         (phase1_vrs): Use them.
3536         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
3537         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
3538         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
3539         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
3540         __gnu_Unwind_Restore_WMMXC if required.
3541         (_Unwind_VRS_Pop): Implement iWMMXt support.
3542         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
3543         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
3544         gnu_Unwind_Save_WMMXC): Define.
3545
3546 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
3547
3548         * config/vxworks.h (vxworks_override_options): Declare.
3549         (VXWORKS_OVERRIDE_OPTIONS): Use it.
3550         * config/vxworks.c: Include target.h and toplev.h.
3551         (vxworks_override_options): New function.
3552         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
3553
3554 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3555
3556         * config/s390/s390.c (override_options): Don't emit an error when
3557         -mstack-size is used without providing -mstack-guard.
3558         (s390_emit_prologue): Choose stack_guard value automatically if not
3559         provided via command line.
3560         * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
3561
3562 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
3563
3564         * config/i386/i386.c (output_set_got): Add a GOT initialization
3565         sequence for VxWorks PIC.
3566         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
3567         around labels as well as symbols.  Use gotoff_operand instead
3568         of local_symbolic_operand.
3569         (legitimize_pic_address): Use gotoff_operand instead of
3570         local_symbolic_operand.  Use @GOT accesses for labels as
3571         well as symbols.
3572         (ix86_output_addr_diff_elt): Use PC-relative rather than
3573         GP-relative offsets for VxWorks PIC.
3574         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
3575         no_new_pseudos.  Check whether the returned register is op0.
3576         * config/i386/i386.md (tablejump): Use PC-relative rather than
3577         GP-relative offsets for VxWorks PIC.
3578         * config/i386/predicates.md (gotoff_operand): New predicate.
3579
3580 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3581
3582         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
3583         before defining.
3584         * config/vxworks-dummy.h: New file.
3585         * config/i386/i386.h: Include it.
3586
3587 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
3588
3589         * dwarf2out.c (is_inlined_entry_point): New
3590         (add_high_low_attributes): Emit DW_AT_entry_pc along with
3591         DW_AT_ranges if the first subblock is the entry point.
3592
3593 2007-03-06  David Daney  <ddaney@avtrex.com>
3594
3595         * doc/install.texi (mips-*-*): Change recommended binutils
3596         version.
3597
3598 2007-03-06  Anatoly Sokolov <aesok@post.ru>
3599
3600         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
3601         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
3602         devices.
3603         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3604         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3605
3606 2007-03-06  Jan Hubicka  <jh@suse.cz>
3607
3608         * errors.h (warning, error, fatal, internal_error): Mark as cold.
3609         * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
3610         are hot.
3611         (probably_cold_bb_p): Cold functions are cold.
3612         (probably_never_executed_bb_p): Cold functions are cold.
3613         (tree_bb_level_predictions): Predict calls to cold functions as not
3614         taken.
3615         (compute_function_frequency): Check hot/cold attributes.
3616         * function.h (function_frequency): Update comments.
3617         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
3618         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
3619         (c_common_att): Add cold and hot.
3620
3621         * doc/extend.texi (hot,cold attributes): Document.
3622
3623 2007-03-06  Andrew Haley  <aph@redhat.com>
3624
3625         * function.c (expand_function_end): Move blockage to just after we
3626         emit the label for the naked return from the function.
3627
3628 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3629
3630         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
3631         before redefining.
3632
3633 2007-03-06  Jan Hubicka  <jh@suse.cz>
3634
3635         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
3636         loaded for constant large models.  Non-large 64bit PIC can do.
3637         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
3638         * cmodel.h: Add LARGE PIC.
3639         * i386.md (UNSPEC_PLTOFF): New.
3640         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
3641         needed.
3642         (*call_1_rex64): Disable for large models.
3643         (*call_1_rex64_large): New.
3644         (*call_value_1_rex64): Disable for large models.
3645         (*call_value_1_rex64_large): New.
3646         (set_rip_rex4): New.
3647         (set_got_offset_rex64): New.
3648         * predicates.md (constant_call_address_operand): For large model
3649         constant calls are not possible.
3650         * i386-protos.h (construct_plt_address): Declare.
3651         * i386.c (override_options): Accept large models.
3652         (ix86_expand_prologue): Expand large PIC GOT pointer load.
3653         (legitimate_constant_p): Add new UNSPECs.
3654         (legitimate_pic_operand_p): Likewise.
3655         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
3656         (legitimize_pic_address): Do easy RIP relative way for TLS only for
3657         non-large model.
3658         (output_pic_addr_const): Add PLTOFF.
3659         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
3660         (ix86_expand_move): Legitimize pic address when in PIC mode.
3661         (construct_plt_address): New function.
3662         (ix86_expand_call): Offload the address to register and use GOT pointer
3663         for large model.
3664         * invoke.texi (mcmodel=large): Update documentation.
3665
3666 2007-03-06  Richard Henderson  <rth@redhat.com>
3667
3668         * config/i386/i386.c (x86_use_leave, x86_push_memory,
3669         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
3670         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
3671         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
3672         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
3673         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
3674         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
3675         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
3676         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
3677         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
3678         x86_partial_reg_dependency, x86_memory_mismatch_stall,
3679         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
3680         x86_sse_partial_reg_dependency, x86_sse_split_regs,
3681         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
3682         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
3683         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
3684         x86_schedule, x86_use_bt, x86_pad_returns,
3685         x86_use_xchgb): Merge into ...
3686         (ix86_tune_features): ... here.  New array.
3687         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
3688         x86_bswap): Merge into ...
3689         (ix86_arch_features): ... here.  New array.
3690         (x86_3dnow_a): Remove.
3691         (x86_accumulate_outgoing_args): Make static.
3692         (x86_arch_always_fancy_math_387): Make static.
3693         (ix86_tune_mask, ix86_arch_mask): Move ...
3694         (override_options): ... to local variables here.  Apply the
3695         appropriate mask to each element of ix86_arch_features and
3696         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
3697         as were done in the old macros.
3698         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
3699         * config/i386/i386.h (x86_use_leave, x86_push_memory,
3700         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
3701         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
3702         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
3703         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
3704         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
3705         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
3706         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
3707         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
3708         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
3709         x86_partial_reg_dependency, x86_memory_mismatch_stall,
3710         x86_accumulate_outgoing_args, x86_prologue_using_move,
3711         x86_epilogue_using_move, x86_decompose_lea,
3712         x86_arch_always_fancy_math_387, x86_shift1,
3713         x86_sse_partial_reg_dependency, x86_sse_split_regs,
3714         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
3715         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
3716         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
3717         x86_use_incdec, x86_pad_returns, x86_bswap,
3718         x86_partial_flag_reg_stall): Remove.
3719         (enum ix86_tune_indices): New.
3720         (ix86_tune_features): New.
3721         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
3722         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
3723         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
3724         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
3725         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
3726         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
3727         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
3728         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
3729         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
3730         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
3731         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
3732         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
3733         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
3734         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
3735         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
3736         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
3737         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
3738         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
3739         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
3740         TARGET_EXT_80387_CONSTANTS): Use it.
3741         (enum ix86_arch_indices): New.
3742         (ix86_arch_features): New.
3743         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
3744         TARGET_BSWAP): Use it.
3745         (ix86_tune_mask, ix86_arch_mask): Remove.
3746
3747 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
3748
3749         PR bootstrap/31020
3750         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
3751         Define using $${sysroot_headers_suffix}.
3752         * configure: Regenerate.
3753         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
3754         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
3755         defined.
3756         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
3757         * gcc.c (print_sysroot_headers_suffix): New.
3758         (option_map): Include --print-sysroot-headers-suffix.
3759         (display_help): Mention -print-sysroot-headers-suffix.
3760         (process_command): Handle -print-sysroot-headers-suffix.
3761         (do_spec_1): Append multilib directory to include-fixed path if
3762         sysroot suffixes in use.
3763         (main): Handle -print-sysroot-headers-suffix.
3764         * Makefile.in (start.encap): Don't depend on xlimits.h
3765         (xlimits.h): Remove.
3766         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
3767         limits.h for each multilib in fixinc_list.
3768         (fixinc_list, s-fixinc_list): New.
3769         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
3770         generate them for each multilib in fixinc_list.
3771         (stmp-fixproto): Use include-fixed.  Run fixproto for each
3772         multilib in fixinc_list.
3773         (mostlyclean): Don't remove xlimits.h.
3774         (clean): Remove include-fixed.
3775         (real-install-headers-tar, real-install-headers-cpio,
3776         real-install-headers-cp): Don't copy include, only include-fixed.
3777         (install-mkheaders): Depend on fixinc_list.  Don't depend on
3778         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
3779         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
3780         SYSTEM_HEADER_DIR setting in mkheaders.conf.
3781
3782 2007-03-06  Jan Hubicka  <jh@suse.cz>
3783
3784         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
3785         NANs easilly.
3786
3787 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3788
3789         * configure.ac: Allow tm_file to contain build-directory files.
3790         * configure: Regenerate.
3791         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
3792         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
3793         * config/m68k/print-sysroot-suffix.sh: New file.
3794
3795 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3796
3797         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
3798         of pic_offset_table_rtx if reload_completed.
3799         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
3800         PIC_OFFSET_TABLE_REGNUM.
3801         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
3802         return true.
3803         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
3804         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
3805
3806 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3807
3808         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
3809         functions that call eh_return.
3810
3811 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3812
3813         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
3814         functions that need a constant pool.
3815
3816 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3817
3818         PR target/28181
3819         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
3820         (m68k_preferred_reload_class): Likewise.
3821         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
3822         (SECONDARY_RELOAD_CLASS): Define.
3823         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
3824         (LIMIT_RELOAD_CLASS): Delete.
3825         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
3826         registers from storing bytes.
3827         (m68k_secondary_reload_class): New function.
3828         (m68k_preferred_reload_class): Likewise.
3829
3830 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3831
3832         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
3833         leaf functions.
3834         (m68k_expand_prologue): Likewise.
3835
3836 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3837
3838         * config/m68k/m68k-protos.h (output_sibcall): Declare.
3839         (mips_expand_epilogue): Add a bool parameter.
3840         (m68k_legitimize_sibcall_address): Declare.
3841         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
3842         (m68k_expand_epilogue): Add a parameter to select between sibling
3843         and normal epilogues.  Only generate a return for the latter.
3844         (m68k_ok_for_sibcall_p): New function.
3845         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
3846         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
3847         (sibcall_value, *sibcall_value): Likewise.
3848         (*call, *call_value): Require !SIBLING_CALL_P.
3849         (epilogue): Update call to m68k_expand_epilogue.
3850         (sibcall_epilogue): New pattern.
3851         * config/m68k/predicates.md (const_call_operand): Say that this
3852         predicate applies to sibling calls too.
3853         (sibcall_operand): New predicate.
3854
3855 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3856
3857         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
3858         alternatives as movsi_cf.
3859         (movsf_cf_hard): Add commentary.
3860
3861 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
3862             Richard Sandiford  <richard@codesourcery.com>
3863
3864         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
3865         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
3866         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
3867         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
3868         as being live on exit from an interrupt function.
3869         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
3870         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
3871         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
3872         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
3873         (m68k_interrupt_function_p): Globalize.
3874         (m68k_compute_frame_layout): Remove reverse mask code.
3875         (m68k_emit_movem, m68k_set_frame_related): New functions.
3876         (m68k_output_function_prologue): Delete in favor of...
3877         (m68k_expand_prologue): ...this new function.
3878         (m68k_output_function_epilogue): Delete in favor of...
3879         (m68k_expand_epilogue): ...this new function.
3880         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
3881         functions.
3882         (print_operand): Handle %?.
3883         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
3884         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
3885         (prologue, epilogue): New patterns.
3886         (return): Turn into a define_expand.
3887         (*return): New pattern, derived from old "return" pattern.  Use rte
3888         rather than rts for interrupt functions.  Only use rtd if the pop
3889         count is nonzero.
3890         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
3891         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
3892         (link, *link, unlink, *unlink, load_got): Likewise.
3893
3894 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3895
3896         PR target/23482
3897         PR target/17114
3898         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
3899         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
3900         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
3901         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
3902         and m68k_matches_u_p.
3903         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
3904         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
3905         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
3906         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
3907         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
3908         (REG_STRICT_P): New macro.
3909         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
3910         PCREL_GENERAL_OPERAND_OK.
3911         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
3912         m68k_legitimate_base_reg_p.
3913         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
3914         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
3915         (PIC_CASE_VECTOR_ADDRESS): Update comment.
3916         * config/m68k/m68k.c (m68k_address): New structure.
3917         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
3918         (m68k_decompose_index, m68k_legitimate_constant_address_p)
3919         (m68k_jump_table_ref_p, m68k_decompose_address)
3920         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
3921         (m68k_matches_u_p): New functions.
3922         (print_operand_address): Rewrite to use m68k_decompose_index.
3923
3924 2007-03-05  David Taylor  <dtaylor@emc.com>
3925
3926         * gcc.c: Correct copyright date in --version output.
3927
3928 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3929
3930         * pa.md: In unamed move patterns, disparge copies between general
3931         and floating point registers using '?' modifier.  Don't include 'f'
3932         constraint for register preferences in DImode, SImode, HImode and
3933         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
3934         Remove constraints for copies between general and floating registers
3935         in soft-float DFmode pattern.
3936         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
3937         floating register.
3938         (movsf): Likewise.
3939
3940 2007-03-05  Mike Stump  <mrs@apple.com>
3941
3942         * c-common.c (targetcm): Add.
3943         * c-opts.c (c_common_handle_option): Handle language specific
3944         target options.
3945         * opts.c (handle_option): Verify language for target options, if
3946         any are given.
3947         * opth-gen.awk: Add CL_LANG_ALL.
3948         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
3949         (TARGETCM_INITIALIZER): Add.
3950         * target.h (struct gcc_targetcm): Add.
3951         (targetcm): Add.
3952         * targhooks.c (default_handle_c_option): Add.
3953         * targhooks.h (default_handle_c_option): Add.
3954         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
3955
3956         * config/darwin.opt (iframework): Add.
3957         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
3958         * config/darwin-c.c (handle_c_option): Add.
3959         (TARGET_HANDLE_C_OPTION): Add.
3960         (targetcm): Add.
3961         * doc/invoke.texi (Darwin Options): Add -iframework.
3962
3963 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3964
3965         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
3966         conversion.
3967
3968 2007-03-05  Ian Lance Taylor  <iant@google.com>
3969
3970         * c.opt (fgnu89-inline): New option.
3971         * c-opts.c (c_common_post_options): Set default value for
3972         flag_gnu89_inline.
3973         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
3974         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
3975         inline functions.
3976         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
3977         (grokdeclarator, start_function): Likewise.
3978         * c-cppbuiltin.c (c_cpp_builtins): Define either
3979         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
<