OSDN Git Service

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