OSDN Git Service

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