]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2007-05-16 Rafael Avila de Espindola <espindola@google.com>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7a91101f 12007-05-16 Rafael Avila de Espindola <espindola@google.com>
2
3 * c-common.c (c_common_signed_or_unsigned_type): Emulate
4 c_common_unsigned_type behavior.
5
9798961f 62007-05-16 Paolo Bonzini <bonzini@gnu.org>
7
8 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
9 calls as pure.
10
9602d040 112007-05-16 Eric Christopher <echristo@apple.com>
12
13 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
14 saving after stack push. Set sp_offset whenever we push.
15 (rs6000_emit_epilogue): Move altivec register restore before stack push.
16
35ab6286 172007-05-16 Richard Sandiford <richard@codesourcery.com>
18
19 * configure.ac: Allow sysroots to be relocated under $prefix as
20 well as $exec_prefix.
21 * configure: Regenerate.
22
e83194ca 232007-05-16 Richard Sandiford <richard@codesourcery.com>
24
25 Revert:
26
27 2007-05-12 Richard Sandiford <richard@codesourcery.com>
28
29 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
30 (gcc_tooldir): Likewise.
31 * configure: Regenerate.
32 * Makefile.in (libsubdir_to_prefix): New variable, based on the
33 old configure.ac gcc_tooldir setting.
34 (prefix_to_exec_prefix): New variable.
35 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
36 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
37
441df341 382007-05-14 Janis Johnson <janis187@us.ibm.com>
39
40 * c-typeck.c (build_binary_op): Return early for error.
41
ccae4f9f 422007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
43
44 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
45 struct nb_iter_bound.
46 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
47 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
48 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
49 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
50 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
51 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
52 (del_scev_info): Use ggc_free.
53 (scev_initialize): Allocate scalar_evolution_info in gc memory.
54 * loop-init.c: Include ggc.h.
55 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
56 (loop_optimizer_finalize): Use ggc_free.
57 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
58 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
59 pass_iv_optimize): Add TODO_ggc_collect.
60 * function.h (struct function): Remove skip marker from x_current_loops.
61 * cfgloop.c: Include ggc.h.
62 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
63 memory.
64 (establish_preds): Vector superloops is gc allocated.
65 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
66 loop->exits list.
67 (flow_loops_find): Vector larray is gc allocated.
68 (loop_exit_free): Use ggc_free.
69 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
70 that head of exits list is now not a part of struct loop.
71 (record_loop_exits): Allocate exits table in gc memory.
72 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
73 head of exits list is now not a part of struct loop.
74 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
75 struct loop_exit): Add GTY marker.
76 (struct loop): Add GTY marker. Make superloops vector gc allocated.
77 Add skip marker to aux field. Make head of exits list a separate
78 object.
79 (struct loops): Add GTY marker. Make larray vector gc allocated.
80 Add param marker to exits table.
81 (get_loops): Type changed.
82 * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
83 dependency.
84 (cfgloop.o, loop-init.o): Add ggc.h dependency.
85 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
86 * basic-block.h (struct basic_block_def): Remove skip marker from
87 loop_father field.
88
1db6d067 892007-05-14 Uros Bizjak <ubizjak@gmail.com>
90
91 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
92 of 0 in the call to expand_expr().
93 (expand_builtin_mathfn_3): Ditto.
94 (expand_builtin_interclass_mathfn): Ditto.
95 (expand_builtin_cexpi): Ditto.
96 (expand_builtin_int_roundingfn): Ditto.
97 (expand_builtin_int_roundingfn_2): Ditto.
98 (expand_builtin_pow): Ditto.
99 (expand_builtin_powi): Ditto.
100 (expand_builtin_bswap): Ditto.
101 (expand_builtin_unop): Ditto.
102 (expand_builtin_fabs): Ditto.
103 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
104 the call to expand_expr().
105 (expand_builtin_sync_operation): Ditto.
106 (expand_builtin_compare_and_swap): Ditto.
107 (expand_builtin_lock_test_and_set): Ditto.
108 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
109 instead of 0 in the call to expand_expr().
110 (expand_builtin_extract_return_addr): Ditto.
111 (expand_builtin_eh_return): Ditto.
112 (expand_eh_return): Ditto.
113 * explow.c (expr_size): Ditto.
114 * expr.c (optimize_bitfield_assignment_op): Ditto.
115 (expand_assignement): Ditto.
116 (store_expr): Ditto.
117 (store_field): Ditto.
118 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
119 the call to expand_expr().
120 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
121 in the call to expand_expr().
122 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
123 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
124 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
125 of expand_expr().
126 * optabs.c (expand_vec_shift_expr): Ditto.
127 (expand_vec_cond_expr): Ditto.
128 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
129 call to expand_expr().
130 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
131 in the call to expand_expr().
132
36211c58 1332007-05-14 Dave Korn <dave.korn@artimi.com>
134
135 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
136
71eea85c 1372007-05-14 Rafael Avila de Espindola <espindola@google.com>
138
139 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
140 instead of c_common_unsigned_type.
141 (c_common_unsigned_type): Remove.
142 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
143 c_common_unsigned_type.
144 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
145 c_common_unsigned_type.
146 * c-common.h (c_common_unsigned_type): Remove.
147 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
148 c_common_unsigned_type.
149 * c-format.c (check_format_types): Use unsigned_type_for instead of
150 c_common_unsigned_type.
151 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
152 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
153 c_common_unsigned_type.
154 * convert.c (convert_to_integer): Use unsigned_type_for instead of
155 lang_hooks.types.unsigned_type.
156 * expmed.c (make_tree): Use unsigned_type_for instead of
157 lang_hooks.types.unsigned_type.
158 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
159 lang_hooks.types.unsigned_type.
160 (build_range_check): Likewise.
161 (fold_unary): Likewise.
162 (fold_binary): Likewise.
163 (fold_ternary): Likewise.
164 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
165 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
166 * tree.c (get_unsigned_type): New.
167 (unsigned_type_for): Use get_unsigned_type instead of
168 lang_hooks.types.unsigned_type.
169
f9a44575 1702007-05-14 Kazu Hirata <kazu@codesourcery.com>
171
172 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
173 to m68k_get_function_kind. Update its prototype.
174 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
175 interrupt_thread.
176 (m68k_interrupt_function_p): Return enum m68k_function_type
177 instead of bool. Rename to m68k_get_function_kind.
178 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
179 target is not fido.
180 (m68k_compute_frame_layout): Don't mark any register for save
181 if an interrupt_thread attribute is specified.
182 (m68k_hard_regno_rename_ok): Update a use of
183 m68k_interrupt_function_p.
184 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
185 m68k_interrupt_function_p.
186 (m68k_function_type): New.
187 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
188 for a function with an interrupt_thread attribute.
189 * doc/extend.texi: Document the interrupt_thread attribute.
190
d3cd5752 1912007-05-13 Daniel Berlin <dberlin@dberlin.org>
192
193 Fix PR tree-optimization/31911
194 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
195 if they didn't change the expression.
196
80bb306a 1972007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
198
199 * tree-scalar-evolution.c (resolve_mixers): Exported.
200 * tree-scalar-evolution.h (resolve_mixers): Declare.
201 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
202 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
203 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
204 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
205 init_array_ref, init_pointer_ref, analyze_indirect_ref,
206 strip_conversion, analyze_offset_expr, address_analysis,
207 object_analysis, analyze_offset): Removed.
208 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
209 split_constant_offset, canonicalize_base_object_address,
210 object_address_invariant_in_loop_p, disjoint_objects_p,
211 dr_may_alias_p, dr_address_invariant_p): New functions.
212 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
213 and dr_analyze_alias.
214 (initialize_data_dependence_relation): Use dr_may_alias_p
215 and object_address_invariant_in_loop_p.
216 (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
217 is chrec_dont_know.
218 (find_data_references_in_stmt): Restrict the analysis of data references
219 to the given loop nest.
220 (find_data_references_in_loop): Made static. Pass loop nest to
221 find_data_references_in_stmt.
222 (compute_data_dependences_for_loop): Use DR_VOPS.
223 (free_data_ref): Free DR_VOPS.
224 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
225 (struct innermost_loop_behavior): ... new.
226 (struct base_object_info): Replaced by ...
227 (struct indices): ... new.
228 (struct dr_alias): New.
229 (enum data_ref_type): Removed.
230 (struct data_reference): Consist of struct innermost_loop_behavior,
231 struct indices and struct dr_alias.
232 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
233 (DR_MEMTAG): Renamed to ...
234 (DR_SYMBOL_TAG): ... this.
235 (find_data_references_in_loop): Declaration removed.
236 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
237 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
238 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
239 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
240
2bf1fefd 2412007-05-13 Revital Eres <eres@il.ibm.com>
242
243 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
244 which walks virtual def-use chains to find redundant stores.
245 (dse_optimize_stmt): Call it.
246
ec028b54 2472007-05-12 Steven Bosscher <steven@gcc.gnu.org>
248
249 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
250 * passes.c (init_optimization_passes): Move pass_jump_bypass
251 after loop2.
252
253 * basic-block.h (bb_has_eh_pred): Fix style issue.
254
bc25a2ee 2552007-05-12 Steven Bosscher <steven@gcc.gnu.org>
256
257 PR rtl-optimization/31848
258 * loop-invariant.c (move_invariant_reg): If we move an insn
259 with a REG_EQUAL note, and that insn is not always executed,
260 remove the REG_EQUAL note.
261
a540e2fe 2622007-05-12 Richard Guenther <rguenther@suse.de>
263
264 PR tree-optimization/31797
265 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
266 propagate into a stmt that has volatile ops.
267
88a3dcb7 2682007-05-12 Richard Sandiford <richard@codesourcery.com>
269
270 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
271 (gcc_tooldir): Likewise.
272 * configure: Regenerate.
273 * Makefile.in (libsubdir_to_prefix): New variable, based on the
274 old configure.ac gcc_tooldir setting.
275 (prefix_to_exec_prefix): New variable.
276 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
277 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
278
e6fa0ea6 2792007-05-11 Silvius Rus <rus@google.com>
280
281 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
282 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
283 * c-common.h (strict_aliasing_warning): Change return type.
284 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
285 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
286 (build_c_cast): Condition call to strict_aliasing_warning.
287 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
288 * flags.h (set_Wstrict_aliasing): Declare.
289 * opts.c (set_Wstrict_alising): Define, add call to.
290 * tree-flow.h (strict_aliasing_warning_backend): Declare.
291 * tree-ssa-alias-warnings.c: New file.
292 * tree-ssa-alias.c (compute_may_aliases): Add call to
9602d040 293 strict_aliasing_warning_backend.
e6fa0ea6 294
9e3536f4 2952007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
296
297 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
298 Use loop_depth and loop_outer accessor functions.
299 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
300 determine_invariantness_stmt, move_computations_stmt): Ditto.
301 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
302 add_loop, loopify, unloop, fix_loop_structure): Ditto.
303 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
304 * tree-scalar-evolution.c (interpret_loop_phi,
305 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
306 instantiate_parameters_1, scev_const_prop): Ditto.
307 * cfghooks.c (make_forwarder_block): Ditto.
308 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
309 * modulo-sched.c (loop_canon_p): Ditto.
310 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
311 slpeel_can_duplicate_loop_p): Ditto.
312 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
313 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
314 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
315 cancel_loop, verify_loop_structure): Ditto.
316 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
317 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
318 superloops vector instead of "pred" array.
319 (establish_preds): Take father loop as an argument. Initialize the
320 superloops vector.
321 (flow_loop_tree_node_add): Pass father loop to establish_preds. Do not
322 initialize loop->outer.
323 (flow_loop_tree_node_remove): Truncate the superloops vector.
324 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
325 "pred" merged to "superloops" vector.
326 (loop_depth, loop_outer): New.
327 (fel_init): Use loop_outer.
328
a861fe52 3292007-05-11 Jan Hubicka <jh@suse.cz>
330
331 * cgraphunit.c: Include gt-cgraphunit.h
332 (static_ctors, static_dtors): New static vars.
333 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
334 based on implementation in c-common.c
335 (cgraph_finalize_function): Call record_cdtor_fn.
336 (cgraph_optimize): Call cgraph_build_cdtor_fns.
337 * decl.c (finish_function): Do not call c_record_cdtor_fn.
338 (c_write_global_declarations): Do not call c_build_cdtor_fns.
339 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
340 build_cdtor, c_build_cdtor_fns): Remove.
341 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
342 c_build_cdtor_fns): Remove prototype.
343
7959b13b 3442007-05-11 Paolo Carlini <pcarlini@suse.de>
345
346 PR other/31852
347 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
348 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
349 * builtins.c (fold_builtin_memchr): New.
350 (expand_builtin_memchr): Call the latter.
351 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
352 * doc/extend.texi ([Other built-in functions provided by GCC]):
353 Document memchr.
354
9fa9680d 3552007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
356
357 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
358 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
359 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
360 PFPO_OP1_TYPE_SHIFT): Constants added.
361 (DFP_ALL): Mode macro defined.
362 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
363 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
364 Insn definitions added.
365 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
366 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
367 Expanders added.
368
c4e91ab3 3692007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
370
371 PR tree-optimization/31885
372 * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
373 to be undetermined.
374 (automatically_generated_chrec_p): Return false for NULL.
375
fc9fdf60 3762007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
377
378 * config/bfin/bfin.h (MOVE_RATIO): Define.
379
723e1902 3802007-05-10 Richard Sandiford <richard@codesourcery.com>
381
382 * config.gcc (sparc-wrs-vxworks): New target.
383 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
384 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
385 * config/sparc/sparc.h: Include vxworks-dummy.h.
386 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
387 include LABEL_REFs too.
388 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
389 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
390 VxWorks.
391 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
392 on VxWorks.
393 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
394 (sparc_emit_call_insn): New function.
395 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
396 functions when generating VxWorks PIC.
397 * config/sparc/sparc.md (vxworks_load_got): New pattern.
398 (call, call_value): Use sparc_emit_call_insn instead of
399 emit_call_insn.
400
205710bf 4012007-05-09 Bob Wilson <bob.wilson@acm.org>
9602d040 402
205710bf 403 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
9602d040 404
c9876a47 4052007-05-09 Bob Wilson <bob.wilson@acm.org>
406
407 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
408 for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double
409 instead of operand_subword.
410
23285403 4112007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
412
413 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
414 * config/bfin/bfin.c (bfin_local_alignment): New function.
415 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
416
43fda261 4172007-05-08 Chao-ying Fu <fu@mips.com>
418
419 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
420 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
421 (smsub_widen_optab, umsub_widen_optab): Define.
422 * optabs.c (init_optabs): Initialize smsub_widen_optab and
423 umsub_widen_optab.
424 * genopinit.c (optabs): Fill in smsub_widen_optab and
425 umsub_widen_optab.
426 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
427 and umsub_widen_optab to implement multiply-subtract sequences.
428 * config/mips/mips.md (*msac<u>_di): Rename to...
429 (<u>msubsidi4): ...this. Extend condition to include
430 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
431 of operand 0 to "ka" and use the three-operand form of msub<u>
432 for TARGET_DSPR2.
433 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
434 to define_expands.
435
1121ac6f 4362007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
437
438 PR rtl-optimization/28011
439 * reload.c (push_reload): Set dont_share if IN appears in OUT
440 also when IN is a PLUS rtx.
441 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
442 are same PLUS rtx.
443
df329266 4442007-05-08 Kazu Hirata <kazu@codesourcery.com>
445
446 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
447 call unshare_all_decls.
448 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
449 (unshare_all_decls): Remove.
450
1b2b0409 4512007-05-08 Simon Martin <simartin@users.sourceforge.net>
452
453 PR 31847
454 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
455 dumps.
456
fef98e29 4572007-05-08 Sandra Loosemore <sandra@codesourcery.com>
458 Nigel Stephens <nigel@mips.com>
459
460 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
461 Update comments and all uses.
462 (MIN_FPRS_PER_FMT): Define.
463 * config/mips/mips.c (function_arg): Fix to correctly handle
464 the -mips32r2 -mfp64 -mabi=32 case.
465 (override_options): Enable use of odd-numbered registers for
466 SFmode values on MIPS32.
467 (mips_save_reg_p): Save whole floating-point register pair if
468 either half is used.
469 (compute_frame_size): Fix comment.
470
a35b82b9 4712007-05-08 Jie Zhang <jie.zhang@analog.com>
472
473 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
474 argument of type bool.
475 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
476 argument. Safely select temporary P register according to it.
477 (do_link): Change call site of add_to_reg accordingly.
478 (do_unlink): Add epilogue_p as a fourth argument and pass it
479 to add_to_reg.
480 (expand_interrupt_handler_epilogue): Change call of do_unlink
481 accordingly.
482 (bfin_expand_prologue): Add a third argument sibcall_p.
483 * config/bfin/bfin.md (epilogue): Change call of
484 bfin_expand_epilogue accordingly.
485 (sibcall_epilogue): Likewise.
486 (eh_return_internal): Likewise.
9602d040 487
99fe38c0 488 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
489 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
490 * config/bfin/bfin.c (bfin_handle_option): Handle
491 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
492 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
493 Support bf534, bf536 and bf561.
494 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
495
691299da 4962007-05-08 Uros Bizjak <ubizjak@gmail.com>
497
498 PR target/31854
499 * config/i386/i386.c (ix86_function_regparm): Process local
500 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
9602d040 501
cc742166 5022007-05-07 Mike Stump <mrs@apple.com>
503
504 * doc/invoke.texi (Warning Options): Document that -Wempty-body
505 also checks for and while statements in C++.
506
c159e0b7 5072007-05-07 Nathan Froyd <froydnj@codesourcery.com>
508
509 * gcc.c (at_file_supplied): New variable.
510 (main): Set it if we expanded argv.
511 (do_spec_1): Pass an @-file to the linker if we were called with
512 an @-file argument and HAVE_GNU_LD.
513 * collect2.c (at_file_supplied): New variable.
514 (response_file): New variable.
515 (collect_exit): Unlink response_file if necessary.
516 (handler): Likewise.
517 (do_wait): Likewise.
518 (main): Set at_file_supplied if we expanded argv.
519 (collect_execute): Pass an @-file to subprocesses if we were called
520 with an @-file argument.
521 * configure.ac: Add define for HAVE_GNU_LD.
522 * configure: Regenerate.
523 * config.in: Regenerate.
524
39218c77 5252007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
526
527 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
528 operand to HI mode.
529 (mulsi3): New.
530 (divsi3): New.
531 (udivsi3): New.
532
2efce110 5332007-05-07 Jayant Sonar <jayants@kpitcummins.com>
534
535 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
536 (TARGET_ENCODE_SECTION_INFO): Re-define.
537 (m32c_encode_section_info): New
538 (function_vector_handler): New
539 (current_function_special_page_vector): New
540 (m32c_special_page_vector_p): New.
9602d040 541 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
2efce110 542 Prototype.
9602d040 543 * config/m32c/jump.md: Added instruction JSRS for functions
2efce110 544 with attribute "function_vector".
9602d040 545 * doc/extend.texi (function_vector): Added description
2efce110 546 for M16C, M32C targets.
547
2f1842a8 5482007-05-07 DJ Delorie <dj@redhat.com>
549
550 PR 31794
551 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
552 ashrpsi3, lshrpsi3): Update shift count constraint.
553
b7158884 5542007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
c159e0b7 555 Nathan Froyd <froydnj@codesourcery.com>
b7158884 556
557 PR 22133
558 * c-incpath.c (add_path): Strip trailing path separators.
559
9a17dd7d 5602007-05-07 Eric Botcazou <ebotcazou@adacore.com>
561
562 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
66d3a87b 563 Free dominance info before purging EH edges.
9a17dd7d 564 (eliminate_degenerate_phis): Likewise.
565 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
566
68411217 5672007-05-07 Jan Hubicka <jh@suse.cz>
568
569 * gimplify.c (gimplify_expr): Do not crash when folding
570 (void *)(int)&a + 4.
571
e297ac28 5722007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
573
574 PR driver/31694
575 * c-opts.c (lang_fortran): Make it non static.
576 * c-common.h (lang_fortran): New prototype.
577 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
578 -lang-fortran option was passed by the driver.
579
c15062b7 5802007-05-06 Eric Botcazou <ebotcazou@adacore.com>
581
582 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
583 of ASSERT_CHECKING. Tweak message.
584
5852007-05-06 Revital Eres <eres@il.ibm.com>
428c97ad 586
587 PR 30957
588 * loop-unroll.c (insert_var_expansion_initialization):
589 Initialize the expansions with -zero instead of +zero.
590
3f8d8851 5912007-05-05 Aurelien Jarno <aurelien@aurel32.net>
592
593 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
9602d040 594 into pic and non-pic versions. Mark r19 as used for
595 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
3f8d8851 596 for tgd_load, tld_load and tie_load .
597 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
9602d040 598 version of tgd_load, tld_load and tie_load depending on the
3f8d8851 599 value of flag_pic.
600
f9e6c0d4 6012007-05-04 Ulrich Drepper <drepper@redhat.com>
602 Jakub Jelinek <jakub@redhat.com>
603
604 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
605 (__do_global_dtors_aux): Use more paranoid loop to run
606 destructors if HIDDEN_DTOR_LIST_END.
607 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
608
0722e767 6092007-05-04 Jakub Jelinek <jakub@redhat.com>
610
611 * varasm.c (align_variable): Don't increase alignment for
612 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
613 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
614
50b08d37 6152007-05-04 Josh Conner <jconner@apple.com>
616
617 * basic-block.h (cdi_direction): Assign values to all enumeration
618 constants.
619 (dom_computed): Remove.
620 (dom_info_state): New.
621 (set_dom_info_availability): New.
622 * tree-ssa-loop-im.c (determine_invariantness): Initialize
623 walk_data.dom_direction.
624 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
625 instead of dom_computed[].
626 (split_edge): Likewise.
627 (create_basic_block): Likewise.
628 (merge_blocks): Likewise.
629 * ifcvt.c (find_if_header): Likewise.
630 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
631 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
632 * tree-ssa.c (verify_ssa): Likewise.
633 * tree-cfg.c (tree_verify_flow_info): Likewise.
634 (remove_edge_and_dominated_blocks): Likewise.
635 * dominance.c (dom_computed): Make static.
636 (calc_dfs_tree_nonrec): Change third param to a bool.
637 (calc_dfs_tree): Change second param to a bool.
638 (calc_idioms): Change second param to a bool. Use
639 dom_convert_dir_to_idx.
640 (init_dom_info): Validate dir before using.
641 (dom_convert_dir_to_idx): New.
642 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
643 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
644 (free_dominance_info): Use dom_convert_dir_to_idx.
645 (get_immediate_dominator): Likewise.
646 (set_immediate_dominator): Likewise.
647 (get_dominated_by): Likewise.
648 (redirect_immediate_dominators): Likewise.
649 (nearest_common_denominator): Likewise.
650 (dominated_by_p): Likewise.
651 (bb_dom_dfs_in): Likewise.
652 (bb_dom_dfs_out): Likewise.
653 (recount_dominator): Likewise.
654 (iterate_fix_dominators): Likewise.
655 (add_to_dominance_info): Likewise.
656 (delete_from_dominance_info): Likewise.
657 (first_dom_son): Likewise.
658 (next_dom_son): Likewise.
659 (dom_info_available_p): Likewise.
660 (dom_info_state): New.
661 (set_dom_info_availability): New.
662
e7340e24 6632007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
664
665 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
666 Expander removed.
667 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
668
4fc70e71 6692007-05-04 Bob Wilson <bob.wilson@acm.org>
9602d040 670
4fc70e71 671 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
672 (subdi3, subdi_carry): Delete.
9602d040 673
9160060d 6742007-05-04 Jan Hubicka <jh@suse.cz>
675 Richard Guenther <rguenther@suse.de>
676
677 * opts.c (decode_options): Do not fiddle with inlining
678 parameters in case of optimizing for size.
679 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
680 for size do nothing.
681 (cgraph_decide_inlining_of_small_function): When optimizing for
682 size never inline functions increasing caller size.
683 (cgraph_early_inlining): Inline for size when optimizing for size.
684
eb0dea99 6852007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
686
687 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
688 logical operations piecewise.
689 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
690 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
691 subdi_sesidi_di): Delete.
692 (add_with_carry): Produce carry in CC instead of a DREG to shorten
693 the generated sequence. Allow three-reg add in constraints. Rewrite
694 the rtl expression for carry to avoid zero_extend of a constant.
695 (sub_with_carry): New pattern.
696 (adddi3, subdi3): Change into define_expand. For subtract, generate a
697 different sequence not involving jumps.
698 (notbi): Now a named pattern.
699
64447b3b 7002007-05-04 Bradley Lucier <lucier@math.purdue.edu>
701
702 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
703 Add the note about a significant loss of accuracy of some
704 mathematical routines when these options are used.
705
3588ab9c 7062007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
707
708 * haifa-sched.c (rtx_vec_t): New typedef.
709 (contributes_to_priority_p): Extract piece of priority () into new
710 static function.
711 (priority): Use the function. Add assertion.
712 (rank_for_schedule, set_priorities): Add assertion to check that
713 insn's priority is initialized.
714 (clear_priorities, calc_priorities): Change signature. Make it update
715 all relevant insns. Update all callers ('add_to_speculative_block ()'
716 and 'create_block_check_twin ()').
717 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
718 Add new field 'priority_status'.
719 (INSN_PRIORITY_STATUS): New macro.
720 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
721
a2819fc2 7222007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
723
724 * sched-ebb.c (debug_ebb_dependencies): New static function.
725 (init_ready_list): Use it.
726
727 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
728 with changed signature and 'debug_rgn_dependencies ()'.
729 (debug_rgn_dependencies): New static function.
730 (init_ready_list): Use it.
9602d040 731
a2819fc2 732 * sched-int.h (debug_dependencies): Declare.
733
7cfa1204 7342007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
735
736 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
737
b24655ef 7382007-05-04 Dirk Mueller <dmueller@suse.de>
739
740 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
741
06f9fe3e 7422007-05-03 Jan Hubicka <jh@suse.cz>
743
744 * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
745 for pointer type in more cases than before.
746
747 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
748
749 * tree-object-size.c (plus_expr_object_size): When operand size is
750 unknown, return unknown.
751
c2d4d40a 7522007-05-03 Dirk Mueller <dmueller@suse.de>
753
754 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
755
756 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
757 options.
758
759 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
760
377bbc15 7612007-05-03 Janis Johnson <janis187@us.ibm.com>
762
763 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
764
dc442fa0 7652007-05-03 Joseph Myers <joseph@codesourcery.com>
766
767 * config/soft-fp/double.h, config/soft-fp/extended.h,
768 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
769 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
770 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
771 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
772 glibc CVS.
773
a7c1ab49 7742007-05-03 Ian Lance Taylor <iant@google.com>
775
b1b1bb64 776 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
a7c1ab49 777 MASK_PPC_GFXOPT for 8540 or 8548.
778
fcca3533 7792007-05-03 Uros Bizjak <ubizjak@gmail.com>
780
781 * tree-vect-transform.c (vect_update_inits_of_drs): Use
782 vect_print_dump_info() to output debug information.
783
a0a6f22b 7842007-05-03 Uros Bizjak <ubizjak@gmail.com>
785
786 PR target/31768
787 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
788 operands of size 2 when operand is not MEM_P.
789
1491dd5a 7902007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
791
792 PR tree-optimization/30565
793 * lambda-code.c (perfect_nestify): Fix updating of dominators.
794
b9904d32 7952007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
796
797 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
798 (umulsi3_highpart): Use them.
799 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
800 for final accumulator to D regisster tranfser.
801
30f263a4 8022007-05-03 Dorit Nuzman <dorit@il.ibm.com>
803
804 PR tree-optimization/31699
805 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong
806 code.
9602d040 807 (vect_enhance_data_refs_alignment): Compute peel amount using
808 TYPE_VECTOR_SUBPARTS instead of vf.
30f263a4 809 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
810
ad3827a6 8112007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
812
813 PR bootstrap/31776
814 * system.h: Remove inclusion of double-int.h
815 * tree.h: Include double-int.h
816 * gengtype.c: Likewise
817 * cfgloop.h: Likewise
818 * Makefile.in: Adjust dependencies on double-int.h
819
29686c2c 8202007-05-02 Eric Christopher <echristo@apple.com>
821
822 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
823 -shared to -Zdynamiclib.
824
57a0ed23 8252007-05-02 Seongbae Park <seongbae.park@gmail.com>
826
827 PR c++/31663
828 * c-common.c (strip_pointer_or_array_types): New function.
829 * c-common.h (strip_pointer_or_array_types): New function declaration.
830
1f204d2d 8312007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
832
833 PR tree-optimization/31771
834 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
835
377dbc5d 8362007-05-02 Paul Brook <paul@codesourcery.com>
837
838 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
839
b26f15a5 8402007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
841
40ab1934 842 PR middle-end/29715
b26f15a5 843 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
844 transformation.
845
a12ac39a 8462007-05-02 Nick Clifton <nickc@redhat.com>
847
848 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
849
6776dec8 8502007-05-02 Richard Guenther <rguenther@suse.de>
851
852 PR tree-optimization/31146
853 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
854 argument, single_use_p. If we have a single use that is
855 a conversion to the definition rhs type, propagate that rhs.
856 (forward_propagate_addr_expr): Pass single_use_p argument
857 to forward_propagate_addr_expr_1.
858
6c8a2ee2 8592007-05-01 H.J. Lu <hongjiu.lu@intel.com>
860
861 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
862 variable.
863
63df211a 8642007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
865
29686c2c 866 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
63df211a 867 'AMD Family 10 core'.
29686c2c 868
ba29708a 8692007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
870
29686c2c 871 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
872 and athlon64-sse3 as improved versions of k8, opteron and athlon64
ba29708a 873 with SSE3 instruction set support.
874 * doc/invoke.texi: Likewise.
29686c2c 875
029655af 8762007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
877
878 * config/i386/i386.c (override_options): Tuning 32-byte loop
29686c2c 879 alignment for amdfam10 architecture. Increasing the max loop
029655af 880 alignment to 24 bytes.
29686c2c 881
584f29ac 8822007-05-01 Kazu Hirata <kazu@codesourcery.com>
883
884 * config/m68k/constraints.md: New.
885 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
886 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
887 EXTRA_CONSTRAINT): Remove.
888 * config/m68k/m68k.md: Include constraints.md.
889 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
890
b876a744 8912007-05-01 Ian Lance Taylor <iant@google.com>
892
893 PR tree-optimization/31739
894 * tree-vrp.c (vrp_val_is_max): New static function.
895 (vrp_val_is_min): New static function.
896 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
897 copying the node.
898 (set_value_range): Use vrp_val_is_{max,min}.
899 (extract_range_from_assert): Likewise.
900 (extract_range_from_binary_expr): Likewise.
901 (extract_range_from_unary_expr): Likewise.
902 (dump_value_range, vrp_meet): Likewise.
903 (vrp_visit_phi_node): Likewise.
904 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
905
2fdb7138 9062007-05-01 Mark Mitchell <mark@codesourcery.com>
907
908 * config/i386/gmon-sol2.c (size_t): New type.
909 (intptr_t): Likewise.
910 (s_textsize): Declare as size_t.
911 (sbrk): Declare.
912 (monstartup): Use size_t for sizes.
913 (_mcount): Save and restore registers.
914 (internal_mcount): Pass 0 as the first argument to monstartup
915 in 64-bit mode.
916 (moncontrol): Convert pointer to appropriately sized integer
917 before passing to profil.
918
d747da8e 9192007-05-01 Joseph Myers <joseph@codesourcery.com>
920
921 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
922 __NO_FPRS__, not just if _SOFT_DOUBLE.
923 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
924 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
925 also for E500 double.
926 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
927 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
928 && !TARGET_FPRS).
929
d92f9312 9302007-05-01 Richard Guenther <rguenther@suse.de>
931
932 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
933 is NULL.
934
cbc33164 9352007-05-01 Joseph Myers <joseph@codesourcery.com>
936
937 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
938
d874c55e 9392007-05-01 Jan Hubicka <jh@suse.cz>
940
941 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
942 invariant.
943
3b45913d 9442007-05-01 Jan Hubicka <jh@suse.cz>
945
946 * tree.h (maybe_fold_offset_to_component_ref): Remove.
947 (maybe_fold_offset_to_reference): Declare.
948 * fold-const.c (fold_unary): Do not fold
949 (type *)&A into &A->field_of_type_and_offset_0
950 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
951 size is unknown, give up.
952 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
953 offsets.
954 (maybe_fold_offset_to_reference): New.
955 (maybe_fold_stmt_indirect): Use it.
956 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
957 * gimplify.c (gimplify_conversion): Canonicalize conversions to
958 field references.
959 (gimplify_expr): Likewise for plus_expr.
960
6313ae8b 9612007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
962
963 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
964 bsi_after_labels. Always insert statements before bsi.
965 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
966 * predict.c (apply_return_prediction): Check for empty blocks.
967 * cfgexpand.c (lab_rtx_for_bb): New variable.
968 (label_rtx_for_bb): Do not create new tree labels.
969 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
970 (tree_expand_cfg): Initialize lab_rtx_for_bb.
971 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
972 creating edges.
973 (label_for_bb): Add field used.
974 (update_eh_label, main_block_label): Mark the label used.
975 (cleanup_dead_labels): Remove unused labels.
976
fbcece5e 9772007-05-01 Richard Guenther <rguenther@suse.de>
978
979 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
980 if it is not about to be set.
981 (get_value_range): Do not pre-allocate equiv bitmap.
982 (update_value_range): No need to clear equiv field.
983 (add_equivalence): Change prototype to get bitmap pointer.
984 Allocate bitmap here if it is not already.
985 (extract_range_from_assert): Do not allocate bitmap here.
986 Update callers to add_equivalence.
987 (extract_range_from_ssa_name): Likewise.
988 (get_vr_for_comparison): New static helper.
989 (compare_name_with_value): Handle NULL equiv bitmap by
990 peeling the first iteration of the comparison loop.
991 Use get_vr_for_comparison.
992 (compare_names): Handle NULL equiv bitmaps by using fake
993 ones. Use get_vr_for_comparison.
994
612a17fc 9952007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
996
997 * double-int.c (mpz_set_double_int): Moved from
998 tree-ssa-loop-niter.c.
999 (mpz_get_double_int): Likewise; also, add option to wrap
1000 out-of-range integers.
1001 * double-int.h: New prototypes for above.
1002 * tree.c (get_static_type_bounds): Moved from
1003 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
1004 TYPE_MAX_VALUE if they exist..
1005 * tree.h: New prototype for above.
1006 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
1007 get_type_bounds calls.
1008 (mpz_set_double_int): Move to double-int.c.
1009 (get_type_bounds): Move to tree.c, rename to
1010 get_static_type_bounds.
1011 (mpz_to_double_int): Move to double-int.c, rename to
1012 mpz_get_double_int.
1013
2751c7d4 10142007-04-30 Bob Wilson <bob.wilson@acm.org>
1015
1016 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
1017 DIV0 exception can fall through to a normal return.
29686c2c 1018
6084da09 10192007-04-30 Alexandre Oliva <aoliva@redhat.com>
1020
1021 PR middle-end/22156
1022 Temporarily revert:
1023 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
1024 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
1025 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
1026 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
1027 initialize align to silence bogus warning.
1028 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
1029 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
1030 all_no_warning.
1031 (struct sra_walk_fns): Remove use_all parameter from use.
1032 (sra_hash_tree): Handle BIT_FIELD_REFs.
1033 (sra_elt_hash): Don't hash bitfld blocks.
1034 (sra_elt_eq): Skip them in parent compares as well. Handle
1035 BIT_FIELD_REFs.
1036 (sra_walk_expr): Don't maintain or pass down use_all_p.
1037 (scan_use): Remove use_all parameter.
1038 (scalarize_use): Likewise. Re-expand assignment to
1039 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
1040 output, and re-scalarize after output. Don't mark anything
1041 for no warning.
1042 (scalarize_ldst): Adjust.
1043 (scalarize_walk_gimple_modify_statement): Likewise.
1044 (build_element_name_1): Handle BIT_FIELD_REFs.
1045 (instantiate_element): Don't warn for any element whose parent
1046 is used as a whole.
1047 (instantiate_missing_elements_1): Return the sra_elt.
1048 (canon_type_for_field): New.
1049 (try_instantiate_multiple_fields): New.
1050 (instantiate_missing_elemnts): Use them.
1051 (mark_no_warning): Removed.
1052 (generate_one_element_ref): Handle BIT_FIELD_REFs.
1053 (REPLDUP, sra_build_elt_assignment): New.
1054 (generate_copy_inout): Use them.
1055 (generate_element_copy): Likewise. Handle bitfld differences.
1056 (generate_element_zero): Don't recurse for blocks. Use
1057 sra_build_elt_assignment.
1058 (generate_one_element_int): Take elt instead of var. Use
1059 sra_build_elt_assignment.
1060 (generate_element_init_1): Adjust.
1061 (scalarize_use, scalarize_copy): Use REPLDUP.
1062 (scalarize_ldst): Move assert before dereference.
1063 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
1064
86369aa7 10652007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1066
1067 PR C++/31721
1068 * tree.c (reconstruct_complex_type): Reconstruct a reference
1069 correctly.
1070 Also use the same mode for the pointer as the old pointer type.
1071
7c9d05f6 10722007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
1073
1074 * doc/trouble.texi (Interoperation): Remove note about Ultrix
1075 Fortran compiler.
1076
05268a5f 10772007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
1078
6cef4d4f 1079 PR rtl-optimization/31676
05268a5f 1080 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
1081 (df_refs_record): Call it.
1082
a4317a50 10832007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1084
1085 * rtl.def (SS_ABS): New code.
1086 * config/bfin/bfin.c (print_operand): New modifier 'v'.
1087 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
1088 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
1089 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
1090 (bfin_init_builtins): Define them.
1091 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
1092 (bfin_expand_builtin): ... and handle the others here.
1093 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
1094 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
1095 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
1096 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
1097 operand is only HImode.
1098
8c96295a 10992007-04-29 Steven Bosscher <steven@gcc.gnu.org>
1100
1101 * regclass.c (scan_one_insn): Remove splitting of
1102 two address insns.
1103
5ee52cdb 11042007-04-28 Sandra Loosemore <sandra@codesourcery.com>
1105 Nigel Stephens <nigel@mips.com>
1106
1107 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
1108
375c1c8a 11092007-04-28 Jan Hubicka <jh@suse.cz>
1110
1111 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
1112 insn_locators_alloc instead of insn_locators_initialize;
1113 call reset_block_changes.
1114 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1115 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
1116 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
1117 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
1118 * config/score/score.c (th_output_mi_thunk): Likewise.
1119 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
1120 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
1121 tolerate uninitialized locator info.
1122
1123 Re-apply:
1124 * function.c (init_function_start): Don't init line number info.
1125 (expand_function_end): Update.
1126 (reset_block_changes, record_block_change, finalize_block_changes,
1127 check_block_change, free_block_changes): Kill.
1128 * function.h (reset_block_changes, record_block_change,
1129 finalize_block_changes, check_block_change, free_block_changes): Remove
1130 prototypes.
1131 (struct function): Remove ib_boundaries_block.
1132 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
1133 Use curr_insn_locator to initialize locator.
1134 (emit_line_note): Remove.
1135 * cfgexpand.c (expand_gimple_cond_expr): Update.
1136 (construct_exit_block): Likewise.
1137 (tree_expand_cfg): Initialize/finalize locators.
1138 * expr.c (expand_expr_real): Update.
1139 * cfglayout.c (line_locators_locs, line_locators_lines,
1140 file_locators_locs, file_locators_files): Remove.
1141 (set_block_levels): Move to cfgexpand.c.
1142 (insn_locators_initialize): Remove.
1143 (pass_insn_locators_initialize): Remove.
1144 (locations_locators_locs, locations_locators_vals): New static vars.
1145 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
1146 Likewise.
1147 (insn_locators_alloc, insn_locators_finalize,
1148 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1149 New functions.
1150 (locator_location): New.
1151 (locator_line, locator_file): Rewrite.
1152 * rtl.h (emit_line_note): Kill.
1153 (insn_locators_alloc, insn_locators_finalize,
1154 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1155 Declare.
1156 * tree-inline.c (initialize_cfun): Do not initialize
1157 ib_boundaries_block.
1158 * passes.c (pass_insn_locators_initialize): Remove.
1159
e996e8f1 11602007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
1161
1162 * tree-cfg.c (move_block_to_fn): Release bb from dominance
1163 info. Update last_basic_block correctly.
1164
5e9db045 11652007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
1166
1167 PR target/31701
1168 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
1169 register itself to hold the offset constant. Tell flow the use
1170 of r4 and r5 when they are used.
1171
d080be9e 11722007-04-27 Richard Guenther <rguenther@suse.de>
1173
1174 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
1175 if we simplified anything.
1176 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
1177 warnings until we did a simplification and the stmt was not
1178 marked as TREE_NO_WARNING.
1179
44dc7eda 11802007-04-27 Mike Stump <mrs@apple.com>
1181
1182 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
1183
d2154397 11842007-04-27 Ian Lance Taylor <iant@google.com>
1185
1186 PR middle-end/31710
1187 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
1188 TYPE_MAX_VALUE exist, convert them to the new type.
1189
72e1a42b 11902007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
1191
1192 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
1193 if it claims to be available.
1194 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
1195 edge is redirected.
1196 (perform_tree_ssa_dce): Always free postdominators.
1197
0d96cd2b 11982007-04-27 Richard Henderson <rth@redhat.com>
1199
1200 * config/alpha/predicates.md (aligned_memory_operand): Mark
1201 as define_special_predicate.
1202 (unaligned_memory_operand, normal_memory_operand): Likewise.
1203 (reg_or_unaligned_mem_operand): Remove.
1204 (any_memory_operand): Match the documentation and check for
1205 non-renumbered pseudos during reload.
1206 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
1207 alpha_secondary_reload_class, update to new interface, make static.
1208 Handle CQImode like HImode. Remove FP subreg check.
1209 (alpha_expand_mov): Use replace_equiv_address.
1210 (alpha_expand_mov_nobwx): Use any_memory_operand.
1211 (TARGET_SECONDARY_RELOAD): New.
1212 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
1213 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1214 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
1215 * config/alpha/alpha.md: ... here.
1216 (RELOAD12, reloadmode): New.
1217 (movcqi): New.
1218 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
1219 Don't handle the aligned case here.
1220 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
1221 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
1222 reload_inhi_help. Don't expect a scratch register.
1223 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
1224 reload_outhi_help.
1225 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
1226
83a20baf 12272007-04-27 Richard Guenther <rguenther@suse.de>
1228
1229 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
1230
5adc1066 12312007-04-27 Richard Guenther <rguenther@suse.de>
1232
1233 PR tree-optimization/30965
1234 PR tree-optimization/30978
1235 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
1236 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
1237 (find_equivalent_equality_comparison): Likewise.
1238 (simplify_cond): Likewise.
1239 (get_prop_source_stmt): New helper.
1240 (get_prop_dest_stmt): Likewise.
1241 (can_propagate_from): Likewise.
1242 (remove_prop_source_from_use): Likewise.
1243 (combine_cond_expr_cond): Likewise.
1244 (forward_propagate_comparison): New function.
1245 (forward_propagate_into_cond): Rewrite to use fold for
1246 tree combining.
1247 (tree_ssa_forward_propagate_single_use_vars): Call
1248 forward_propagate_comparison to propagate comparisons.
1249
e71da05f 12502007-04-27 Richard Guenther <rguenther@suse.de>
1251
1252 PR tree-optimization/31715
1253 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
1254 sure to do computation on the offset in an appropriate
1255 signed type.
1256
eca883d1 12572007-04-27 Richard Sandiford <richard@codesourcery.com>
1258
1259 * reload.h (elimination_target_reg_p): Declare.
1260 * reload.c (find_reloads): Don't apply the reg_rtx move
1261 optimization if the SET_DEST satisfies elimination_target_reg_p.
1262 * reload1.c (elimination_target_reg_p): New function.
1263 (gen_reload): In the move/add2 fallback, make sure that op0
1264 does not overlap the destination register.
1265
63f88450 12662007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
1267
1268 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
1269 transform only GIMPLE_MODIFY_STMTs.
1270 * tree-complex.c (expand_complex_operations_1): Ditto.
1271 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
1272 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
1273 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
1274 branches.
1275 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
1276 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
1277 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
1278 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
1279 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
1280 slpeel_add_loop_guard): Ditto.
1281 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1282 * lambda-code.c (perfect_nestify): Ditto.
1283 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
1284 before the first statement.
1285 * tree-optimize.c (execute_free_datastructures): Fix comments.
1286 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
1287 * tree-flow.h (disband_implicit_edges): Declaration removed.
1288 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
1289 branches.
1290 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle COND_EXPRs
1291 without gotos.
1292 (disband_implicit_edges, has_label_p): Removed.
1293 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
1294 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
1295 branches.
1296 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
1297 side effects.
1298 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
1299 also for COND_EXPRs.
1300 * cfgexpand.c (label_rtx_for_bb): New function.
1301 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
1302 Use label_rtx_for_bb to find the labels.
1303 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
1304 last block. Detect fallthru edges.
1305
8d91a9b7 13062007-04-26 Ian Lance Taylor <iant@google.com>
1307
1308 PR target/28675
1309 * reload.c (find_reloads_subreg_address): If the address was valid
1310 in the original mode but not in the new mode, reload the whole
1311 address.
1312
31a8456e 13132007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
1314
1315 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
1316 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
1317 (cleanup_control_expr_graph): Do not invalidate dominance info.
1318 Record altered blocks.
1319 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
1320 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
1321 cleanup_tree_cfg_bb): New functions.
1322 (remove_forwarder_block): Do not maintain the worklist of blocks.
1323 Record altered blocks.
1324 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
1325 not over whole cfg.
1326 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
1327 delete_unreachable_blocks if dominators are not available.
1328 * tree-inline.c (optimize_inline_calls): Free dominance information
1329 earlier.
1330 * tree-flow.h (remove_edge_and_dominated_blocks,
1331 cfgcleanup_altered_bbs): Altered.
1332 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
1333 blocks.
1334 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
1335 functions.
1336 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
1337 do not invalidate dominators.
1338
98dac559 13392007-04-26 Anatoly Sokolov <aesok@post.ru>
1340
29686c2c 1341 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
98dac559 1342 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
1343 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1344 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1345
64b86428 13462007-04-26 Steve Ellcey <sje@cup.hp.com>
1347
1348 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
1349
27dc0bdf 13502007-04-26 Richard Guenther <rguenther@suse.de>
1351
1352 PR tree-optimization/31703
1353 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
1354 the right type for the target of the bittest.
1355
79387099 13562007-04-26 Richard Sandiford <richard@codesourcery.com>
1357
1358 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
1359 ix86_sol10_return_in_memory.
1360
96f62210 13612007-04-26 Richard Sandiford <richard@codesourcery.com>
1362
1363 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
1364 variables.
1365
42d78951 13662007-04-26 Jakub Jelinek <jakub@redhat.com>
1367
abb3caf7 1368 PR c++/31598
1369 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
1370
42d78951 1371 PR tree-optimization/30558
1372 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
1373 clear this_state.prev_try.
1374
c19a839c 13752007-04-26 Richard Sandiford <richard@codesourcery.com>
1376 Mark Mitchell <mark@codesourcery.com>
1377
1378 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
1379 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
1380 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
1381
ceac8e8c 13822007-04-26 Richard Sandiford <richard@codesourcery.com>
1383
1384 PR driver/31107
1385 * doc/invoke.texi (%:print-asm-header): Document.
1386 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
1387 and -ftarget-help.
1388 (static_spec_functions): Add print-asm-header.
1389 (main): Print a banner before the --target-help linker options.
1390 (print_asm_header_spec_function): New function.
1391
e42839f4 13922007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
1393
1394 PR target/31403
1395 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
1396 (movsf_ie): Likewise.
1397
0aa5d886 13982007-04-25 Paolo Carlini <pcarlini@suse.de>
1399
1400 * doc/extend.texi ([Type Traits]): Adjust per N2255.
1401
18505bd7 14022007-04-25 Bob Wilson <bob.wilson@acm.org>
1403
1404 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an exception
1405 for divide-by-zero.
1406 (__umodsi3, __modsi3): Likewise.
1407
d6f138d6 14082007-04-25 Dirk Mueller <dmueller@suse.de>
1409
1410 * c-typeck.c (build_compound_expr): Annotate warning()
1411 call with OPT_Wunused_value.
01b54db5 1412 * tree-ssa.c (warn_uninit): Annotate warning with
1413 OPT_Wunintialized.
1414 * c-common.c (handle_sentinel_attribute): Annotate warning
1415 call with OPT_Wattributes.
d6f138d6 1416
e6a71de3 14172007-04-25 Thiemo Seufer <ths@mips.com>
1418
1419 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
1420 (mips16): Fix typo.
1421 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
1422 on to the assembler. Improve handling of -mno-mips16. Add handling
1423 of -mno-mips3d, -mno-dsp, -mno-dspr2.
1424 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
1425 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
1426 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
1427
76042623 14282007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
1429
1430 PR target/31680
1431 * config/i386/winnt.c (i386_pe_file_end): Strip only
1432 USER_LABEL_PREFIX when writing export name.
1433
a9cfe83b 14342007-04-25 Richard Sandiford <richard@codesourcery.com>
1435
1436 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
1437 sh/elf.h, vx-common.h and vxworks.h.
1438 * config/sh/sh.h: Include config/vxworks-dummy.h.
1439 (SUBTARGET_OVERRIDE_OPTIONS): Define.
1440 (OVERRIDE_OPTIONS): Use it.
1441 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
1442 (vxworks_picreg): New pattern.
1443 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
1444 VXWORKS_OS_CPP_BUILTINS.
1445 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
1446 to their VXWORKS_* equivalents.
1447 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
1448 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
1449 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
1450 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
1451 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
1452 -mrtp/-fPIC multilibs.
1453 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
1454 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
1455 (MULTILIB_OSDIRNAMES): Delete.
1456
9384357b 14572007-04-25 Anatoly Sokolov <aesok@post.ru>
1458
1459 PR target/18989
1460 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
1461
66fa16e6 14622007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
1463
1464 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
1465 rounding mode to be specified by the caller.
1466 (real_to_mpfr) Likewise.
1467 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
1468 include new arguments.
1469 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
1470
b700987e 14712007-04-24 Ian Lance Taylor <iant@google.com>
1472
1473 PR tree-optimization/31605
1474 * tree-vrp.c (set_value_range): Check that min and max are not
1475 both overflow infinities.
1476 (set_value_range_to_value): New static function.
1477 (extract_range_from_binary_expr): Call set_value_range_to_value.
1478 (extract_range_from_cond_expr): Likewise.
1479 (extract_range_from_expr): Likewise.
1480 (extract_range_from_unary_expr): Likewise. Don't create a range
1481 which overflows on both sides.
1482 (vrp_meet): Check for a useless range.
1483 (vrp_visit_phi_node): If we see a constant which looks like an
1484 overflow infinity, turn off the TREE_OVERFLOW flag.
1485
e8a7b357 14862007-04-24 Ian Lance Taylor <iant@google.com>
1487
1488 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
1489
b4c01899 14902007-04-24 Simon Martin <simartin@users.sourceforge.net>
1491
1492 PR diagnostic/25923
1493 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
1494 diagnostic message is being built.
e8a7b357 1495 * tree-pretty-print.c (dump_generic_node): Only write the
1496 formatted text into BUFFER's stream if we are not building a
1497 diagnostic message.
b4c01899 1498 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
1499 dump_generic_node.
1500 * Makefile.in (toplev.o): Depend on tree-pass.h.
1501
c7addd8c 15022007-04-24 Ian Lance Taylor <iant@google.com>
1503
1504 PR tree-optimization/31602
1505 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
1506 conditionals in the copied loop header.
1507 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
1508 warnings if TREE_NO_WARNING is set.
1509 * doc/invoke.texi (Warning Options): Clarify that
1510 -Wstrict-overflow does not warn about loops.
1511
ae11fff9 15122007-04-24 Janis Johnson <janis187@us.ibm.com>
1513
1514 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
1515 expand on the comment about _Decimal128 arguments and check the
1516 integer result of the modulus operation; for 64-bit ELF ABI, ensure
1517 that _Decimal128 argument uses even/odd register pair.
1518 (function_arg): Ditto.
1519
d9f9327b 15202007-04-24 Hui-May Chang <hm.chang@apple.com>
1521
1522 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
1523 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
1524
ee96af51 15252007-04-24 Richard Guenther <rguenther@suse.de>
1526 Olga Golovanevsky <olga@il.ibm.com>
1527
29686c2c 1528 * fold-const.c (multiple_of_p): Check for bottom
1529 to be zero.
ee96af51 1530
d439f3ef 15312007-04-24 Richard Henderson <rth@redhat.com>
1532
29686c2c 1533 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
d439f3ef 1534 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
1535 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
1536 looking for non-zero bits shifted out. Avoid a recursive call
1537 when constructing the scalar.
1538 (__floatundisf): Likewise.
1539
feb5f1b1 15402007-04-24 Nathan Froyd <froydnj@codesourcery.com>
1541
1542 * dwarf2out.c (field_byte_offset): Move the existing logic
1543 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
1544 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
1545
1ed6fd08 15462007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
1547
1548 PR target/31641
1549 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
1550 argument of 0 for memset.
1551 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
1552 unsigned shift instead of the signed variant.
1553
095798e3 15542007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
1555
1556 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
1557 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
1558 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
1559 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
1560 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1561 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
1562 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
1563 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
1564 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
1565 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
1566 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
1567 "mul<mode>3", "div<mode>3"): Insn definitions added.
1568 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
1569 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
1570 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
1571 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
1572 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
1573 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
1574 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
1575 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
1576 TARGET_FLOAT_FORMAT): Macro definitions removed.
1577 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
1578 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
1579 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
1580 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
1581 (s390_gen_rtx_const_DI): Function removed.
1582 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
1583
02bf340a 15842007-04-24 Richard Sandiford <richard@codesourcery.com>
1585
1586 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
1587 over an external ffs function.
1588
7e564f73 15892007-04-24 Chao-ying Fu <fu@mips.com>
1590 Richard Sandiford <richard@nildram.co.uk>
1591
1592 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
1593 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
1594 (smadd_widen_optab, umadd_widen_optab): Define.
1595 * optabs.c (init_optabs): Initialize smadd_widen_optab and
1596 umadd_widen_optab.
1597 * genopinit.c (optabs): Fill in smadd_widen_optab and
1598 umadd_widen_optab.
1599 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
1600 and umadd_widen_optab to implement multiply-add sequences.
1601 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
1602 (<u>maddsidi4): ...this. Extend condition to include
1603 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
1604 of operand 0 to "ka" and use the three-operand form of madd<u>
1605 for TARGET_DSPR2.
1606 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
1607 to define_expands.
1608 * config/mips/constraints.md (ka): New register constraint.
1609
32201e9a 16102007-04-24 Jan Hubicka <j@suse.cz>
1611
1612 Revert:
1613
1614 2007-04-23 Jan Hubicka <jh@suse.cz>
1615 * function.c (init_function_start): Don't init line number info.
1616 (expand_function_end): Update.
1617 (reset_block_changes, record_block_change, finalize_block_changes,
1618 check_block_change, free_block_changes): Kill.
1619 * function.h (reset_block_changes, record_block_change,
1620 finalize_block_changes, check_block_change, free_block_changes): Remove
1621 prototypes.
1622 (struct function): Remove ib_boundaries_block.
1623 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
1624 Use curr_insn_locator to initialize locator.
1625 (emit_line_note): Remove.
1626 * cfgexpand.c (expand_gimple_cond_expr): Update.
1627 (construct_exit_block): Likewise.
1628 (tree_expand_cfg): Initialize/finalize locators.
1629 * expr.c (expand_expr_real): Update.
1630 * cfglayout.c (line_locators_locs, line_locators_lines,
1631 file_locators_locs, file_locators_files): Remove.
1632 (set_block_levels): Move to cfgexpand.c.
1633 (insn_locators_initialize): Remove.
1634 (pass_insn_locators_initialize): Remove.
1635 (locations_locators_locs, locations_locators_vals): New static vars.
1636 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
1637 Likewise.
1638 (insn_locators_alloc, insn_locators_finalize,
1639 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1640 New functions.
1641 (locator_location): New.
1642 (locator_line, locator_file): Rewrite.
1643 * rtl.h (emit_line_note): Kill.
1644 (insn_locators_alloc, insn_locators_finalize,
1645 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1646 Declare.
1647 * tree-inline.c (initialize_cfun): Do not initialize
1648 ib_boundaries_block.
1649 * passes.c (pass_insn_locators_initialize): Remove.
1650
8c4b1b28 16512007-04-24 Daniel Franke <franke.daniel@gmail.com>
1652
1653 * doc/invoke.texi: Removed leading '-' from option index entries.
1654
c23dad79 16552007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
1656
1657 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
1658 Use phi_nodes_ptr.
1659 (create_phi_node): Use set_phi_nodes.
1660 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
1661 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
1662 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
1663 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
1664 (bsi_start, bsi_last): Use bb_stmt_list.
1665 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
1666 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
1667 Traverse the statements using tsi iterator.
1668 * basic-block.h (struct basic_block_def): Fields stmt_list
1669 and phi_nodes moved to ...
1670 (struct tree_bb_info): ... new structure.
1671 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
1672 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
1673 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
1674 (tree_verify_flow_info): Verify that il.tree is not set for
1675 entry and exit block.
1676 (tree_split_block): Use set_bb_stmt_list.
1677
401ed9a8 16782007-04-23 Mike Stump <mrs@apple.com>
1679
1680 * config/i386/i386.c (ix86_tune_features
1681 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
1682 nocona and core2.
1683
1f346cbc 16842007-04-23 H.J. Lu <hongjiu.lu@intel.com>
1685
1686 * config/i386/i386.md (prefix_extra): New attribute.
1687 (length): Add prefix_extra.
1688
1689 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
1690 (sse2_movntv2di): Likewise.
1691 (sse2_cvtps2dq): Likewise.
1692 (sse2_cvtpd2pi): Likewise.
1693 (sse2_cvttpd2pi): Likewise.
1694 (*sse2_cvtpd2ps): Likewise.
1695 (*add<mode>3): Likewise.
1696 (sse2_ssadd<mode>3): Likewise.
1697 (sse2_usadd<mode>3): Likewise.
1698 (*sub<mode>3): Likewise.
1699 (sse2_sssub<mode>3): Likewise.
1700 (sse2_ussub<mode>3): Likewise.
1701 (*mulv8hi3): Likewise.
1702 (*smulv8hi3_highpart): Likewise.
1703 (*umulv8hi3_highpart): Likewise.
1704 (sse2_umulv2siv2di3): Likewise.
1705 (sse2_pmaddwd): Likewise.
1706 (ashr<mode>3): Likewise.
1707 (lshr<mode>3): Likewise.
1708 (ashl<mode>3): Likewise.
1709 (sse2_ashlti3): Likewise.
1710 (sse2_lshrti3): Likewise.
1711 (*umaxv16qi3): Likewise.
1712 (*smaxv8hi3): Likewise.
1713 (*uminv16qi3): Likewise.
1714 (*sminv8hi3): Likewise.
1715 (sse2_eq<mode>3): Likewise.
1716 (sse2_gt<mode>3): Likewise.
1717 (*and<mode>3): Likewise.
1718 (sse2_nand<mode>3): Likewise.
1719 (*ior<mode>3): Likewise.
1720 (*xor<mode>3): Likewise.
1721 (sse2_packsswb): Likewise.
1722 (sse2_packssdw): Likewise.
1723 (sse2_packuswb): Likewise.
1724 (sse2_punpckhbw): Likewise.
1725 (sse2_punpcklbw): Likewise.
1726 (sse2_punpckhwd): Likewise.
1727 (sse2_punpcklwd): Likewise.
1728 (sse2_punpckhdq): Likewise.
1729 (sse2_punpckldq): Likewise.
1730 (sse2_punpckhqdq): Likewise.
1731 (sse2_punpcklqdq): Likewise.
1732 (*sse2_pinsrw): Likewise.
1733 (*sse2_pextrw): Likewise.
1734 (sse2_pshufd_1): Likewise.
1735 (sse2_uavgv16qi3): Likewise.
1736 (sse2_uavgv8hi3): Likewise.
1737 (sse2_psadbw): Likewise.
1738 (sse2_pmovmskb): Likewise.
1739 (*sse2_maskmovdqu): Likewise.
1740 (*sse2_maskmovdqu_rex64): Likewise.
1741 (sse4a_extrqi): Likewise.
1742 (sse4a_extrq): Likewise.
1743 (sse3_lddqu): Set prefix_rep.
1744 (sse3_addsubv4sf3): Likewise.
1745 (sse3_haddv4sf3): Likewise.
1746 (sse3_hsubv4sf3): Likewise.
1747 (sse_cvtss2si): Likewise.
1748 (sse_cvtss2si_2): Likewise.
1749 (sse_cvtss2siq): Likewise.
1750 (sse_cvtss2siq_2): Likewise.
1751 (sse_cvttss2si): Likewise.
1752 (sse_cvttss2siq): Likewise.
1753 (sse2_cvttps2dq): Likewise.
1754 (sse3_movshdup): Likewise.
1755 (sse3_movsldup): Likewise.
1756 (sse2_cvtsd2si): Likewise.
1757 (sse2_cvtsd2si_2): Likewise.
1758 (sse2_cvtsd2siq): Likewise.
1759 (sse2_cvtsd2siq_2): Likewise.
1760 (sse2_cvttsd2si): Likewise.
1761 (sse2_cvttsd2siq): Likewise.
1762 (*sse2_cvtpd2dq): Likewise.
1763 (*sse2_cvttpd2dq): Likewise.
1764 (sse2_pshuflw_1): Likewise.
1765 (sse2_pshufhw_1): Likewise.
1766 (sse4a_insertqi): Likewise.
1767 (sse4a_insertq): Likewise.
1768 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
1769 (ssse3_phadddv4si3): Likewise.
1770 (ssse3_phaddswv8hi3): Likewise.
1771 (ssse3_phsubwv8hi3): Likewise.
1772 (ssse3_phsubdv4si3): Likewise.
1773 (ssse3_phsubswv8hi3): Likewise.
1774 (ssse3_pmaddubswv8hi3): Likewise.
1775 (ssse3_pmulhrswv8hi3): Likewise.
1776 (ssse3_pshufbv16qi3): Likewise.
1777 (ssse3_psign<mode>3): Likewise.
1778 (ssse3_palignrti): Likewise.
1779 (abs<mode>2): Likewise.
1780 (ssse3_phaddwv4hi3): Set prefix_extra.
1781 (ssse3_phadddv2si3): Likewise.
1782 (ssse3_phaddswv4hi3): Likewise.
1783 (ssse3_phsubwv4hi3): Likewise.
1784 (ssse3_phsubdv2si3): Likewise.
1785 (ssse3_phsubswv4hi3): Likewise.
1786 (ssse3_pmaddubswv4hi3): Likewise.
1787 (ssse3_pmulhrswv4hi3): Likewise.
1788 (ssse3_pshufbv8qi3): Likewise.
1789 (ssse3_psign<mode>3): Likewise.
1790 (ssse3_palignrdi): Likewise.
1791 (abs<mode>2): Likewise.
1792 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
1793 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
1794 (sse2_pmovmskb): Set mode to SI instead of V2DF.
1795
8747a9a4 17962007-04-23 Nick Clifton <nickc@redhat.com>
1797
1798 * params.def: Fix formatting of emacs local variables.
1799
238270c6 18002007-04-23 H.J. Lu <hongjiu.lu@intel.com>
1801
1802 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
1803 move if inter-unit move isn't allowed.
1804 Don't split moving the first element of V2DI to DI to inter-unit
1805 move if inter-unit move isn't allowed.
1806
f1456a87 18072007-04-23 Richard Guenther <rguenther@suse.de>
1808
1809 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
1810 and CDI_POST_DOMINATORS separately.
1811
0e457001 18122007-04-23 Nick Clifton <nickc@redhat.com>
1813
1814 * c.opt (Wformat-contains-nul): Add warning attribute.
1815
6a06c824 18162007-04-23 Jan Hubicka <jh@suse.cz>
1817
1818 * function.c (init_function_start): Don't init line number info.
1819 (expand_function_end): Update.
1820 (reset_block_changes, record_block_change, finalize_block_changes,
1821 check_block_change, free_block_changes): Kill.
1822 * function.h (reset_block_changes, record_block_change,
1823 finalize_block_changes, check_block_change, free_block_changes): Remove
1824 prototypes.
1825 (struct function): Remove ib_boundaries_block.
1826 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
1827 Use curr_insn_locator to initialize locator.
1828 (emit_line_note): Remove.
1829 * cfgexpand.c (expand_gimple_cond_expr): Update.
1830 (construct_exit_block): Likewise.
1831 (tree_expand_cfg): Initialize/finalize locators.
1832 * expr.c (expand_expr_real): Update.
1833 * cfglayout.c (line_locators_locs, line_locators_lines,
1834 file_locators_locs, file_locators_files): Remove.
1835 (set_block_levels): Move to cfgexpand.c.
1836 (insn_locators_initialize): Remove.
1837 (pass_insn_locators_initialize): Remove.
1838 (locations_locators_locs, locations_locators_vals): New static vars.
1839 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
1840 Likewise.
1841 (insn_locators_alloc, insn_locators_finalize,
1842 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1843 New functions.
1844 (locator_location): New.
1845 (locator_line, locator_file): Rewrite.
1846 * rtl.h (emit_line_note): Kill.
1847 (insn_locators_alloc, insn_locators_finalize,
1848 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
1849 Declare.
1850 * tree-inline.c (initialize_cfun): Do not initialize
1851 ib_boundaries_block.
1852 * passes.c (pass_insn_locators_initialize): Remove.
1853
32e79ae6 18542007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
1855
1856 PR middle-end/31448
1857 * expr.c (reduce_to_bit_field_precision): Handle
1858 CONST_INT rtx's.
1859
bb8107e7 18602007-04-22 Uros Bizjak <ubizjak@gmail.com>
1861
1862 PR tree-optimization/24659
1863 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
1864 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
1865 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
1866 * genopinit.c (optabs): Rename vec_pack_mod_optab
1867 to vec_pack_trunc_optab.
1868 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
1869 early for scalar floating point operands for NOP_EXPR.
1870 (vectorizable_type_promotion): Ditto.
1871 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
1872 vec_pack_trunc_optab.
1873 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
1874
1875 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
1876 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
1877 Rename from VEC_PACK_MOD_EXPR.
1878 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
1879 * expr.c (expand_expr_real_1): Ditto.
1880 * tree-inline.c (estimate_num_insns_1): Ditto.
1881 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1882
1883 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
1884 (vec_unpacks_lo_v4sf): Ditto.
1885 (vec_pack_trunc_v2df): Ditto.
1886 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
1887 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
1888 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
1889
1890 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
1891 vec_pack_mod_v8hi.
1892 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
1893
1894 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
1895 Rename from VEC_PACK_MOD_EXPR. This expression also represent
1896 packing of floating point operands.
1897 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
1898 represent unpacking of floating point operands.
1899 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
1900 [vec_unpacks_hi]: Ditto.
1901 [vec_unpacks_lo]: Ditto.
1902
64c2e9b0 19032007-04-22 Jan Hubicka <jh@suse.cz>
1904
1905 * final.c (rest_of_handle_final): Call
1906 targetm.asm_out.constructor/targetm.asm_out.destructor
1907 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
1908 proper priority via decl_*_priority_insert.
1909 * c-common.c (c_expand_body): Likewise.
1910
790963ba 19112007-04-22 Richard Guenther <rguenther@suse.de>
1912
1913 PR tree-optimization/29789
1914 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
1915 (rewrite_reciprocal): New helper split out from
1916 determine_invariantness_stmt.
1917 (rewrite_bittest): Likewise.
1918 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
1919 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
1920 is not.
1921
0def560a 19222007-04-22 Revital Eres <eres@il.ibm.com>
1923
b42bbd03 1924 * loop-unroll.c (var_to_expand): New field to support also
1925 insns of the form x = something + x.
1926 (analyze_insn_to_expand_var): Use it.
1927 (expand_var_during_unrolling): Likewise.
0def560a 1928
b3723726 19292007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
1930
1931 * predict.c: Include pointer-set.h.
1932 (bb_predictions): New variable.
1933 (tree_predicted_by_p, tree_predict_edge,
1934 remove_predictions_associated_with_edge): Use bb_predictions map
1935 instead of bb->predictions.
1936 (clear_bb_predictions, assert_is_empty): New functions.
1937 (combine_predictions_for_bb): Use bb_predictions map. Call
1938 clear_bb_predictions.
1939 (tree_estimate_probability): Create and free bb_predictions map.
1940 * Makefile.in (predict.o): Add pointer-set.h dependency.
1941 * basic-block.h (struct basic_block_def): Remove predictions
1942 field.
1943 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
1944
ec49ea0b 19452007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
1946
1947 PR target/31480
1948 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
1949 is null.
1950
f7b38b18 19512007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1952
1953 * timevar.c (timevar_print): Change reference of --disable-checking to
1954 --enable-checking=release. Also warn if assert checking is disabled.
1955
cae486e2 19562007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1957
1958 PR C/30265
1959 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
1960 decl as addressable if the compound literal was marked as
1961 addressable.
1962 Mark the decl as a gimple register if it is a complex or
1963 vector decl and does not live in memory.
1964
98d4f925 19652007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1966
1967 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
1968 (GENERIC_NEXT): New function macro.
1969 (PHI_CHAIN): Use phi_node's new chain variable.
1970 (tree_phi_node): Change tree_common to tree_base
1971 and add the chain field.
1972 * tree-phinodes.c (make_phi_node): Don't set
1973 TREE_TYPE on the new node.
1974 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
1975 instead of checking GIMPLE_TUPLE_P in chain_next.
1976 * tree-vect-transform.c
1977 (get_initial_def_for_induction): Look at
1978 PHI_RESULT_TREE for the type of the phi node.
1979 (update_vuses_to_preheader): Use PHI_CHAIN
1980 instead of TREE_CHAIN on the phi node.
1981 * tree-ssa-structalias.c (compute_points_to_sets):
1982 Likewise.
1983 (ipa_pta_execute): Likewise.
1984
7a6537b3 19852007-04-21 Richard Guenther <rguenther@suse.de>
1986
1987 PR middle-end/31136
1988 * fold-const.c (fold_unary): Call fold_convert_const on the
1989 original tree.
1990
7413a5e0 19912007-04-21 Alexandre Oliva <aoliva@redhat.com>
1992
1993 * gcse.c (store_killed_in_insn): Handle PARALLELs.
1994 (store_killed_in_pat): New.
1995
e865d428 19962007-04-20 Richard Henderson <rth@redhat.com>
1997
1998 PR target/31628
1999 * config/i386/i386.c (type_has_variadic_args_p): Look for any
2000 TREE_LIST with a void_type_node value, not void_list_node exactly.
2001
a7d782cd 20022007-04-21 Douglas Gregor <doug.gregor@gmail.com>
2003
2004 * doc/standards.texi: Re-arrange into language-specific
2005 subsections. Add a C++ section, documenting which standards we
2006 support.
2007
cf95b243 20082007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
2009
2010 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
2011 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
2012
1177f497 20132007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
2014
2015 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
2016 ecrti.o and crtbegin.o.
2017 (LIB_DEFAULT_SPEC): Include -lc.
2018 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
2019
0934d969 20202007-04-20 Richard Henderson <rth@redhat.com>
2021
2022 PR target/28623
2023 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
2024 argument; update all callers.
2025 (get_unaligned_offset): New.
2026 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
2027 get_unaligned_address, just pass on the address directly.
2028 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
2029 the subreg in the helper patterns.
2030 (unaligned_extendqidi_le): Use get_unaligned_offset.
2031 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
2032 (unaligned_extendhidi_be): Likewise.
2033 (unaligned_extendhidi): Tidy.
2034 * config/alpha/alpha-protos.h: Update.
2035
a2a5e014 20362007-04-20 Richard Henderson <rth@redhat.com>
2037
2038 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
2039 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
2040 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
2041 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
2042 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
2043 (CPP_SPEC): Don't include %(cpp_subtarget).
2044 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
2045 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
2046 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
2047
ddb8b0be 20482007-04-20 Jakub Jelinek <jakub@redhat.com>
2049
553633cf 2050 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
2051 for __builtin_ia32_cmpordss.
2052
ddb8b0be 2053 PR tree-optimization/31632
2054 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
2055 and arg1 for optimizations of comparison against min/max values.
2056 Fold arg0 to arg1's type for optimizations of comparison against
2057 min+1 and max-1 values.
2058
efb8c784 20592007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
2060
2061 * reload.c (combine_reloads): When trying to use a dying register,
2062 check whether it's uninitialized and don't use if so.
2063
bd56c1f7 20642007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
2065
2066 * fold-const.c: Remove prototypes for native_encode_expr and
2067 native_interpret_expr.
2068 (native_encode_expr): Make non-static.
2069 (native_interpret_expr): Likewise.
2070 * tree.h: Add prototypes for the above.
2071
4758e73d 20722007-04-19 Joseph Myers <joseph@codesourcery.com>
2073
4758e73d 2074 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
2075 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
2076 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
2077 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
2078 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
2079 Add length attributes.
2080
839803bd 20812007-04-19 Janis Johnson <janis187@us.ibm.com>
2082
7bb1423a 2083 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
2084 not that it is 1.
2085
839803bd 2086 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
2087 __STDC_WANT_DEC_FP__.
2088
8c3bf67d 20892007-04-19 Joseph Myers <joseph@codesourcery.com>
2090
2091 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
2092 for long double compatibility.
2093 * configure: Regenerate.
2094
88a00894 20952007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
2096
2097 PR rtl-optimization/29841
2098 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
2099 trap instructions.
2100 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
2101 that may cause control flow transfer from being moved.
2102
b2f88529 21032007-04-18 Jan Hubicka <jh@suse.cz>
2104
2105 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
2106 types.
2107
90c24387 21082007-04-18 Eric Christopher <echristo@apple.com>
572d7bec 2109
90c24387 2110 * config/rs6000/darwin.md (load_macho_picbase): Use link register
2111 only. Update operands.
2112 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
2113 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
2114 link register to pic register.
572d7bec 2115
7988a017 21162007-04-18 Dirk Mueller <dmueller@suse.de>
2117
2118 PR diagnostic/31227
2119 * tree-vrp.c (search_for_addr_array): New.
2120 (check_array_bounds): Suppress warning about
2121 address taken of array refs if its not de-referenced.
2122
33bbe730 21232007-04-18 Dorit Nuzman <dorit@il.ibm.com>
2124
2125 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
2126 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
2127
2128 * tree-vectorizer.h (NITERS_KNOWN_P): New.
90c24387 2129 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
33bbe730 2130 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
2131
90c24387 2132 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
33bbe730 2133 dump print.
2134 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
2135 print message.
2136 (vect_analyze_scalar_cycles): Fix indentation.
2137 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
2138 (vect_mark_relevant): Include phis in relevance analysis.
2139
2140 * tree-vect-transform.c (vect_transform_loop): Add an assert.
2141
5985f1ef 21422007-04-18 Anatoly Sokolov <aesok@post.ru>
2143
2144 * config/avr/avr.c (ptrreg_to_str): Replace error() with
2145 output_operand_lossage().
2146
24d7ad26 21472007-04-18 Dorit Nuzman <dorit@il.ibm.com>
2148
2149 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
2150 the unused code for reduction without adjust-in-epilog to simplify the
2151 function.
2152
27784c70 21532007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
2154
2155 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
2156 (S390_TDC_NEGATIVE_ZERO): New constant.
2157 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
2158 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
2159 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
2160 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
2161 (S390_TDC_POSITIVE_INFINITY): New constant.
2162 (S390_TDC_NEGATIVE_INFINITY): New constant.
2163 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
2164 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
2165 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
2166 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
2167 (S390_TDC_INFINITY): New constant.
2168 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
2169 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
2170 optimization for UNSPEC_CCZ_TO_INT.
2171 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
2172 ("*ccz_to_int"): New insn.
2173 ("isinf<mode>2"): New insn.
2174 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
2175 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
2176 (UNSPEC_CCZ_TO_INT): New constant.
2177
37361b38 21782007-04-18 Richard Guenther <rguenther@suse.de>
2179
2180 PR tree-optimization/19431
2181 PR tree-optimization/21463
2182 * tree-pass.h (pass_phiprop): Declare.
2183 * passes.c (init_optimization_passes): New phiprop pass.
2184 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
2185 (phivn_valid_p): New helper function.
2186 (phiprop_insert_phi): Likewise.
2187 (propagate_with_phi): Likewise.
2188 (tree_ssa_phiprop): New propagator propagating loads
2189 through phi nodes if profitable.
2190
a5e56906 21912007-04-18 Dorit Nuzman <dorit@il.ibm.com>
2192
2193 * tree-vect-analyze.c (process_use): New function.
2194 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
2195 Check phis in all bbs.
2196 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
2197 assert.
2198
ea4c8f87 21992007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
2200
2201 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
2202 we use REG_EQUAL.
2203
c3384cae 22042007-04-17 Anatoly Sokolov <aesok@post.ru>
2205
2206 PR target/30483
2207 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
2208 error().
2209
2c2034a3 22102007-04-17 H.J. Lu <hongjiu.lu@intel.com>
2211
2212 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
2213 on "0".
2214 (sse_vmmulv4sf3): Likewise.
2215 (sse2_vmaddv2df3): Likewise.
2216 (sse2_vmmulv2df3): Likewise.
2217
25153338 22182007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
2219
2220 PR rtl-optimization/31360
2221 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
2222 (target_reg_cost): New.
2223 (init_set_costs): Initialize target_reg_cost. Add comments
2224 regarding the rationale of the costs.
2225 (global_cost_for_size): Renamed to...
2226 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
2227 of register pressure.
2228 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
2229 estimate_reg_pressure_cost. Add number of ivs.
2230 (determine_set_costs): Dump target_reg_cost.
2231 * loop-invariant.c (gain_for_invariant): Use
2232 estimate_reg_pressure_cost. Removed n_inv_uses argument.
2233 (best_gain_for_invariant, find_invariants_to_move): Remove
2234 n_inv_uses.
2235 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
2236 (target_reg_cost): Declare.
2237 (global_cost_for_size): Declaration removed.
2238 (estimate_reg_pressure_cost): Declare.
2239
32eb5ffe 22402007-04-17 Peter Bergner <bergner@vnet.ibm.com>
2241
2242 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
2243 regnos into even/odd register pairs.
2244 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
2245 TDmode similar to the other floating point modes.
2246 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
2247 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
2248 define_expand's.
2249 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
2250 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
2251 (movdd_hardfloat64): Use TARGET_MFPGPR.
2252
759d3f80 22532007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
2254
2255 * reload1.c (delete_output_reload): Don't count output in n_inherited.
2256
2257 Revert
2258 2005-01-05 Richard Henderson <rth@redhat.com>
2259 PR rtl-opt/10692
2260 * reload1.c (do_input_reload): Restrict the optimization deleteing
2261 a previous output reload to RELOAD_FOR_INPUT.
2262
6fada017 22632007-04-17 Dorit Nuzman <dorit@il.ibm.com>
2264
2265 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
2266 induc_vec_info_type.
2267 (vectorizable_induction): New function declaration.
2268 * tree-vect-transform.c (get_initial_def_for_induction): No need to
2269 check if already vectorized. Find first place in BB where new stmts
2270 can be inserted. Takes only one argument.
2271 (vectorizable_induction): New function.
2272 (vect_transform_stmt): Add case for induc_vec_info_type to call
2273 vectorizable_induction.
2274 (vect_transform_loop): Consider phis for vectorization.
2275 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
2276 condition.
90c24387 2277 (analyze_operations): Call vectorizable_induction when analyzing phis.
6fada017 2278 Fix comment.
2279 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
2280 (vect_mark_relevant): Include phis in relevance analysis.
2281 (vect_mark_stmts_to_be_vectorize): Likewise.
2282 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
2283
0e4744ac 22842007-04-16 Lawrence Crowl <crowl@google.com>
2285
2286 * doc/invoke.texi (Debugging Options): Add documentation for the
2287 -femit-struct-debug options -femit-struct-debug-baseonly,
2288 -femit-struct-debug-reduced, and
2289 -femit-struct-debug-detailed[=...].
2290
2291 * c-opts.c (c_common_handle_option): Add
2292 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
2293 and OPT_femit_struct_debug_detailed_.
2294 * c.opt: Add specifications for
2295 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
2296 and -femit-struct-debug-detailed[=...].
2297 * opts.c (set_struct_debug_option): Parse the
2298 -femit-struct-debug-... options.
2299 * opts.c (matches_main_base, main_input_basename,
2300 main_input_baselength, base_of_path, matches_main_base): Add
2301 variables and functions to compare header base name to compilation
2302 unit base name.
2303 * opts.c (should_emit_struct_debug): Add to determine to emit a
2304 structure based on the option.
2305 (dump_struct_debug) Also disabled function to debug this
2306 function.
2307 * opts.c (handle_options): Save the base name of the
2308 compilation unit.
2309
2310 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
e865d428 2311 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
0e4744ac 2312 This hook indicates if a type is generic. Set it by default
2313 to "never generic".
2314 * langhooks.h (struct lang_hooks_for_types): Add a new hook
2315 to determine if a struct type is generic or not.
2316 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
2317 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
2318 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
2319 with live C++ hook.
2320
2321 * flags.h (enum debug_info_usage): Add an enumeration to describe
2322 a program's use of a structure type.
2323 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
2324 to indicate the program's usage of the type. Filter structs based
2325 on the -femit-struct-debug-... specification.
2326 (gen_type_die): Split into two routines, gen_type_die and
2327 gen_type_die_with_usage. gen_type_die is now a wrapper
2328 that assumes direct usage.
2329 (gen_type_die_with_usage): Replace calls to gen_type_die
2330 with gen_type_die_with_usage adding the program usage of
2331 the referenced type.
2332 (dwarf2out_imported_module_or_decl): Suppress struct debug
2333 information using should_emit_struct_debug when appropriate.
2334
91c9ef60 23352007-04-16 Ian Lance Taylor <iant@google.com>
2336
5c7155ca 2337 PR tree-optimization/31522
2338 * tree-vrp.c (vr_phi_edge_counts): New static variable.
2339 (vrp_initialize): Allocate vr_phi_edge_counts.
2340 (vrp_visit_phi_node): Don't push to infinity if we saw a new
2341 executable edge. Drop test for all constants.
2342 (vrp_finalize): Free vrp_phi_edge_counts.
2343
40b49e8f 2344 * doc/cpp.texi (Common Predefined Macros): Clarify description of
2345 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
2346
91c9ef60 2347 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
2348 predecessors at head rather than tail.
2349
fc7dfeb9 23502007-04-16 Matthias Klose <doko@debian.org>
2351
ddb8b0be 2352 * config/alpha/linux.h (CPP_SPEC): Define.
2353 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
fc7dfeb9 2354
c085e9f9 23552007-04-16 Aldy Hernandez <aldyh@redhat.com>
2356
e865d428 2357 * function.h: Remove sequence_stack extern declaration.
c085e9f9 2358
98d02c10 23592007-04-16 Kazu Hirata <kazu@codesourcery.com>
2360
2361 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
2362 TARGET_FIDOA.
2363 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
2364 defined.
2365
8c23ba29 23662007-04-16 Anatoly Sokolov <aesok@post.ru>
2367
2368 * config/avr/avr.c (avr_arch_types): Rearranging array.
2369 (enum avr_arch): Add.
90c24387 2370 (avr_mcu_types): Use avr_arch enumeration constants instead of
8c23ba29 2371 numbers.
2372 * config/avr/avr.h (LINK_SPEC): Simplify.
2373
dbaae14a 23742007-04-16 Kazu Hirata <kazu@codesourcery.com>
2375
2376 * config/m68k/m68k.c (m68k_libcall_value,
2377 m68k_function_value): Use macros for register names more.
2378
47313d14 2379 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
2380 instead.
2381 (M68K_REGNAME): Use A6_REG.
2382 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
2383
c5947ab7 23842007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2385
2386 PR middle-end/28071
2387 * sched-int.h (struct deps): Split field 'pending_lists_length' into
2388 'pending_read_list_length' and 'pending_write_list_length'. Update
2389 comment.
2390 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
2391 to handle two length counters instead of one. Update all uses.
2392 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
2393 two length counters instead of one.
2394 * sched-rgn.c (propagate_deps): Update to handle two length counters
2395 instead of one.
2396
c3a50b15 23972007-04-16 H.J. Lu <hongjiu.lu@intel.com>
2398
2399 PR target/31582
2400 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
2401 copy of source, pass it to ix86_expand_vector_set and return
2402 it as target.
2403
11b70d7d 24042007-04-16 David Ung <davidu@mips.com>
c3a50b15 2405 Joseph Myers <joseph@codesourcery.com>
11b70d7d 2406
2407 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
2408 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
2409 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
2410 Add 74K processor information.
2411 * config/mips/mips.md: Include 74k.md.
2412 (cpu): Add 74kc,74kf,74kx.
2413 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
2414 * config/mips/74k.md: New.
2415 * doc/invoke.texi (MIPS Options): Document 74K support.
2416
29696c95 24172007-04-16 Dorit Nuzman <dorit@il.ibm.com>
2418
2419 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
2420 vectorizable_* functions.
2421 * tree-vect-transform.c (vectorizable_call): Add check for
2422 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
2423 (vectorizable_store): likewise.
2424 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
2425 Add comments.
2426 (vectorizable_operation, vectorizable_type_demotion): Likewise.
2427 (vectorizable_type_promotion, vectorizable_load): Likewise.
2428 (vectorizable_live_operation, vectorizable_condition): Likewise.
2429 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
2430 STMT_VINFO_LIVE_P.
2431 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
2432
9d463c3d 24332007-04-15 Kazu Hirata <kazu@codesourcery.com>
2434
2435 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
2436 register numbers more.
2437 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
2438 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
2439 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
2440 FUNCTION_VALUE_REGNO_P): Likewise.
2441 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
2442 STATIC_CHAIN_REGNUM): Likewise.
2443 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
2444 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
2445 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
2446 * config/m68k/m68k.md (FP_REG): New.
2447
35387ada 24482007-04-15 Kazu Hirata <kazu@codesourcery.com>
2449
2450 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
2451 alignment on fido.
2452
efec32e0 24532007-04-15 Kazu Hirata <kazu@codesourcery.com>
2454
2455 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
2456 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
2457 comment typos.
2458
a30d0a5b 24592007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
2460
2461 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
2462 cold loops.
2463
0dd13847 24642007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
2465
2466 PR c/31520
e865d428 2467 * c-decl.c (finish_decl): Grab the type of the decl after the call
0dd13847 2468 to store_init_value.
2469
55d51835 24702007-04-14 Steven Bosscher <steven@gcc.gnu.org>
2471
2472 * common.opt (fforward-propagate): Fix "Optimization" annotation.
2473
480e5bc3 24742007-04-14 Jakub Jelinek <jakub@redhat.com>
2475
2476 PR c++/25874
2477 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
2478 post dominators and cleanup cfg before returning.
2479
5ff4f029 24802007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
2481
2482 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
2483 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
2484
278e2fd1 24852007-04-14 Kazu Hirata <kazu@codesourcery.com>
2486
2487 * config.gcc: Recognize fido.
2488 * config/m68k/m68k-devices.def (fidoa): New.
2489 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
2490 __mfido__.
2491 (FL_FIDOA, TARGET_FIDOA): New.
2492 * config/m68k/m68k.opt (mfidoa): New.
2493
849ea31c 24942007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2495
2496 PR middle-end/31322
2497 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
2498 when a personality function is used.
2499
d4c45216 25002007-04-13 Bob Wilson <bob.wilson@acm.org>
2501
2502 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
2503
2775d4b5 25042007-04-13 Mike Stump <mrs@apple.com>
2505
2506 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
2507 we can...
2508 * config/darwin.opt (fapple-kext): Make C++ only.
2509 * config/darwin.c (darwin_override_options): Remove code to ensure
2510 -fapple-kext is given for C++ only.
2511
e7fb4953 25122007-04-13 Richard Sandiford <richard@codesourcery.com>
2513
2514 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
2515 * config/mips/mips.c (override_options): Call
2516 SUBTARGET_OVERRIDE_OPTIONS, if defined.
2517
ba47d267 25182007-04-13 H.J. Lu <hongjiu.lu@intel.com>
2519
2520 * config/i386/i386.opt (msvr3-shlib): Removed.
2521
2522 * doc/invoke.texi: Remove -msvr3-shlib.
2523
1b89f7c8 25242007-04-13 H.J. Lu <hongjiu.lu@intel.com>
2525
2526 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
2527 with "popcnt" instruction.
2528
f3d56fef 25292007-04-13 Richard Guenther <rguenther@suse.de>
2530
2531 PR tree-optimization/21258
2532 * tree-vrp.c (compare_case_labels): New helper.
2533 (find_switch_asserts): New function.
2534 (find_assert_locations): Call it for SWITCH_EXPRs.
2535
d26e00d8 25362007-04-13 Uros Bizjak <ubizjak@gmail.com>
2537
2538 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
2539 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
2540 check is now implied in X87_FLOAT_MODE_P.
2541 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
2542 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
2543 (fix_trunc<mode>_i386_fisttp): Ditto.
2544 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
2545 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
2546 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
2547 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
2548 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
2549 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
2550 (unnamed_splitters): Ditto.
2551 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
2552 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
2553 FIRST_SSE_REG for local functions when SSE math is enabled or
2554 for functions with sseregparm attribute.
2555 (standard_80387_constant_p): Return -1 if mode is not
2556 X87_FLOAT_MODE_P.
2557 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
2558 (ix86_expand_compare): Ditto.
2559 (ix86_expand_carry_flag_compare): Ditto.
2560 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
2561 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
2562 DECIMAL_FLOAT_MODE_P.
2563 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
2564 of SCALAR_FLOAT_MODE_P.
2565 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
2566 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
2567 checks before FLOAT_MODE_P.
2568 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
2569 before FLOAT_MODE_P.
2570 [DIV]: Ditto.
2571 [NEG]: Ditto.
2572 [ABS]: Ditto.
2573 [SQRT]: Ditto.
2574 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
2575
bdbe7091 25762007-04-12 Paolo Bonzini <bonzini@gnu.org>
e865d428 2577 Charles Wilson <libtool@cwilson.fastmail.fm>
bdbe7091 2578
2579 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
2580 (libgcc.mvars): Don't depend on them.
2581 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
2582 * exec-tool.in: New.
2583
2211b4ca 25842007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
2585
2586 * doc/invoke.text (--help): Document --help=common.
2587
cab08a39 25882007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
2589
2590 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
2591
a8a393cb 25922007-04-12 Richard Sandiford <richard@codesourcery.com>
2593
2594 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
2595 * genemit.c (main): Emit #include "integrate.h".
2596 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
2597 (LOADGP_RTP): New mips_loadgp_style.
2598 * config/mips/mips.h: Include config/vxworks-dummy.h.
2599 (TARGET_RTP_PIC): New macro.
2600 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
2601 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
2602 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
2603 for TARGET_RTP_PIC.
2604 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
2605 -mvxworks-pic when using -mrtp and a PIC option.
2606 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
2607 for RTP PIC.
2608 (mips_symbolic_constant_p, mips_symbolic_address_p)
2609 (mips_symbol_insns): Handle SYMBOL_HALF.
2610 (override_options): Warn about -G and -mrtp being used together.
2611 Initialize mips_lo_relocs[SYMBOL_HALF].
2612 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
2613 (mips_emit_loadgp): Handle LOADGP_RTP.
2614 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
2615 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
2616 (tablejump): Handle function-relative case table entries if
2617 TARGET_RTP_PIC.
2618 * config/mips/predicates.md (symbol_ref_operand): New predicate.
2619
d1b79aba 26202007-04-12 Richard Sandiford <richard@codesourcery.com>
2621
2622 * config/mips/mips.md (load_call<mode>): Allow any general register.
2623 destination.
2624 (sibcall_value_internal, sibcall_value_multiple_internal)
2625 (call_value_internal, call_value_split, call_value_multiple_internal)
2626 (call_value_multiple_split): Remove constraints from operand 0.
2627
de604551 26282007-04-12 Richard Sandiford <richard@codesourcery.com>
2629
2630 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
2631 rather than loadgp_noshared.
2632 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
2633 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
2634 gen_loadgp.
2635 * config/mips/mips.md (loadgp): Rename to...
2636 (loadgp_newabi): ...this.
2637 (loadgp_noshared): Rename to...
2638 (loadgp_absolute): ...this.
2639
ffe0cc16 26402007-04-12 Richard Sandiford <richard@codesourcery.com>
2641
2642 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
2643 false for locally-binding symbols.
2644 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
2645
4cb04729 26462007-04-12 Richard Sandiford <richard@codesourcery.com>
2647
2648 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
2649 (SYMBOL_GOT_PAGE_OFST): ...this.
2650 (SYMBOL_GOT_GLOBAL): Rename to...
2651 (SYMBOL_GOT_DISP): ...this.
2652 (SYMBOL_GOTOFF_GLOBAL): Rename to...
2653 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
2654 * config/mips/mips.c (mips_global_symbol_p): New function.
2655 (mips_symbol_binds_local_p): Likewise.
2656 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
2657 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
2658 and mips_symbol_binds_local_p.
2659 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
2660 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
2661 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
2662 SYMBOL_GOTOFF_DISP.
2663 (mips_ok_for_lazy_binding_p): New function.
2664 (mips_load_call_address, mips_expand_call): Use it.
2665 (mips_dangerous_for_la25_p): Likewise.
2666 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
2667 (*got_disp<mode>): Use got_disp_operand instead of
2668 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
2669 SYMBOL_GOTOFF_GLOBAL.
2670 (*got_page<mode>): Use got_page_ofst_operand instead of
2671 local_got_operand.
2672 * config/mips/predicates.md (const_call_insn_operand): Use
2673 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
2674 (global_got_operand): Rename to...
2675 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
2676 SYMBOL_GOT_GLOBAL.
2677 (local_got_operand): Rename to...
2678 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
2679 of SYMBOL_GOT_LOCAL.
2680
46414626 26812007-04-12 Richard Sandiford <richard@codesourcery.com>
2682
2683 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
2684 TARGET_CALL_CLOBBERED_GP.
2685 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2686 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
2687 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
2688 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
2689 of TARGET_ABICALLS && !TARGET_NEWABI.
2690 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2691 * config/mips/mips.c (mips_load_call_address): Check
2692 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
2693 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2694 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
2695 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
2696 TARGET_ABICALLS && TARGET_NEWABI.
2697 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
2698 TARGET_ABICALLS.
2699 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
2700 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
2701 TARGET_ABICALLS && TARGET_NEWABI.
2702 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
2703 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
2704 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
2705 whether indirect calls must use $25.
2706 (mips_extra_live_on_entry): Check TARGET_GOT instead of
2707 TARGET_ABICALLS.
2708 * config/mips/mips.md (jal_macro): Check flag_pic and
2709 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
2710 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
2711 instead of TARGET_ABICALLS.
2712 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
2713 TARGET_ABICALLS && TARGET_OLDABI.
2714 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
2715 (sibcall): In the comment above the define_insn, mention
2716 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
2717 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
2718 instead of TARGET_ABICALLS.
2719
9422b03b 27202007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
2721
2722 * doc/md.texi (Blackfin family constraints): Document PA and PB.
2723 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
2724 (MACFLAGS_MATCH_P): New macro.
2725 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
2726 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
2727 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
2728 the other MACFLAG constants.
2729 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
2730 (flag_machi): Tighten constraints. Renumber some of the operands.
2731 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
2732 output template.
2733 (flag_machi_parts_acconly): New pattern.
2734 (flag_macinithi): Tighten constraints. Allow any accumulator to be
2735 used.
2736 (flag_macinit1hi): Tighten constraints.
2737 (flag_mul_macv2hi_parts_acconly): New pattern.
2738
6daa377b 2739 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
2740 Use a more efficient implementation.
2741 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
2742 inline sequences when not optimizing for size.
2743
4462e6ac 2744 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
2745 movhi_high2low): Delete, merge functionality into...
2746 (packv2hi): ... this pattern.
2747
c9ddd413 2748 2007-02-11 Jie Zhang <jie.zhang@analog.com>
2749 * config/bfin/bfin.opt (msim): New option.
2750 (mcpu=): New option.
2751 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
2752 (bfin_cpu_t): Typedef of enum bfin_cpu.
2753 (bfin_cpu_type): New declaration.
2754 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
2755 -msim and -mcpu= options.
2756 (LIB_SPEC): Likewise.
2757 * config/bfin/bfin.c (bfin_cpu_type): Define.
2758 (bfin_handle_option): Handle -mcpu= option.
2759 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
2760 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
2761 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
2762
c77a1c92 27632007-04-12 Richard Sandiford <richard@codesourcery.com>
2764
2765 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
2766 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
2767 (powerpc-wrs-vxworksae): Use ${tm_file}.
2768 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
2769 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
2770 * config/i386/vx-common.h: New file.
2771
6f3d6768 27722007-04-12 Richard Sandiford <richard@codesourcery.com>
2773
2774 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
2775 of crt0.o%s.
2776
47d34a13 27772007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
2778
2779 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
2780 ldxtr.
2781
5bfe6313 27822007-04-12 Douglas Gregor <doug.gregor@gmail.com>
2783
2784 PR c++/31078
2785 PR c++/31103
2786 * c-common.c (c_build_qualified_type): Set canonical type
90c24387 2787 appropriately.
5bfe6313 2788
a128a28f 27892007-04-12 Richard Guenther <rguenther@suse.de>
2790
2791 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
2792 lower bound and element size if lower bound is not zero
2793 or either of the ARRAY_REF operands is set.
2794
a2501610 27952007-04-12 Richard Guenther <rguenther@suse.de>
2796
2797 PR tree-optimization/24689
2798 PR tree-optimization/31307
2799 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
2800 indices by value.
2801 * gimplify.c (canonicalize_addr_expr): To be consistent with
2802 gimplify_compound_lval only set operands two and three of
2803 ARRAY_REFs if they are not gimple_min_invariant. This makes
2804 it never at this place.
2805 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
2806
9f4a0384 28072007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2808
2809 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
2810 null before emitting a .nsubspa directive.
2811
12a2c9ea 28122007-04-11 Diego Novillo <dnovillo@redhat.com>
2813
2814 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
2815 need_to_partition_p if there are no memory statements in the
2816 function.
2817
cabedb72 28182007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
2819
2820 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
2821 (gcd_of_steps_may_divide_p): New function.
2822 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
2823
c89e828f 28242007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
2825
2826 * reload.c (find_reloads_toplev, find_reloads_address,
2827 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
2828 not a pointer equality test, to decide if we need to call
2829 push_reg_equiv_alt_mem.
2830
2a21a5df 28312007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
2832
2833 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
2834 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
2835 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
2836
cabedb72 28372007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
8fb896c4 2838
2839 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
2840 vector to be positive.
2841
c227f8de 28422007-04-11 Diego Novillo <dnovillo@redhat.com>
2843
2844 PR 30735
2845 PR 31090
2846 * doc/invoke.texi: Document --params max-aliased-vops and
2847 avg-aliased-vops.
2848 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
2849 debug_memory_partitions): Move to tree-flow.h
2850 * params.h (AVG_ALIASED_VOPS): Define.
2851 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
2852 users.
2853 (mp_info_t): Likewise.
2854 (get_mem_sym_stats_for): New.
2855 (set_memory_partition): Move from tree-flow-inline.h.
2856 (mark_non_addressable): Only clear the set of symbols for the
2857 partition if it exists.
2858 (dump_memory_partitions): Move from tree-ssa-operands.c
2859 (debug_memory_partitions): Likewise.
2860 (need_to_partition_p): New.
2861 (dump_mem_ref_stats): New.
2862 (debug_mem_ref_stats): New.
2863 (dump_mem_sym_stats): New.
2864 (debug_mem_sym_stats): New.
2865 (update_mem_sym_stats_from_stmt): New.
2866 (compare_mp_info_entries): New.
2867 (mp_info_cmp): Call it.
2868 (sort_mp_info): Change argument to a list of mem_sym_stats_t
2869 objects.
2870 (get_mpt_for): Move from tree-ssa-operands.c.
2871 (find_partition_for): New.
2872 (create_partition_for): Remove.
2873 (estimate_vop_reduction): New.
2874 (update_reference_counts): New.
2875 (build_mp_info): New.
2876 (compute_memory_partitions): Refactor.
2877 Document new heuristic.
2878 Call build_mp_info, update_reference_counts,
2879 find_partition_for and estimate_vop_reduction.
2880 (compute_may_aliases): Populate virtual operands before
2881 calling debugging dumps.
2882 (delete_mem_sym_stats): New.
2883 (delete_mem_ref_stats): New.
2884 (init_mem_ref_stats): New.
2885 (init_alias_info): Call it.
2886 (maybe_create_global_var): Remove alias_info argument.
2887 Get number of call sites and number of pure/const call sites
2888 from gimple_mem_ref_stats().
2889 (dump_alias_info): Call dump_memory_partitions first.
2890 (dump_points_to_info_for): Show how many times a pointer has
2891 been dereferenced.
2892 * opts.c (decode_options): For -O2 set --param
2893 max-aliased-vops to 500.
2894 For -O3 set --param max-aliased-vops to 1000 and --param
2895 avg-aliased-vops to 3.
2896 * fortran/options.c (gfc_init_options): Remove assignment to
2897 MAX_ALIASED_VOPS.
2898 * tree-flow-inline.h (gimple_mem_ref_stats): New.
2899 * tree-dfa.c (dump_variable): Dump memory reference
2900 statistics.
2901 Dump NO_ALIAS* settings.
2902 (referenced_var_lookup): Tidy.
2903 (mem_sym_stats): New.
2904 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
2905 and ORIG are different SSA names for a memory partition.
2906 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
2907 * tree-flow.h (struct mem_sym_stats_d): Define.
2908 (mem_sym_stats_t): Define.
2909 (struct mem_ref_stats_d): Define.
2910 (struct gimple_df): Add field mem_ref_stats.
2911 (enum noalias_state): Define.
2912 (struct var_ann_d): Add bitfield noalias_state.
2913 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
2914 debug_mem_ref_stats, debug_memory_partitions,
2915 debug_mem_sym_stats): Declare.
2916 * tree-ssa-structalias.c (update_alias_info): Update call
2917 sites, pure/const call sites and asm sites in structure
2918 returned by gimple_mem_ref_stats.
2919 Remove local variable IS_POTENTIAL_DEREF.
2920 Increase NUM_DEREFS if the memory expression is a potential
2921 dereference.
2922 Call update_mem_sym_stats_from_stmt.
2923 If the memory references memory, call
2924 update_mem_sym_stats_from_stmt for all the direct memory
2925 symbol references found.
2926 (intra_create_variable_infos): Set noalias_state field for
2927 pointer arguments according to the value of
2928 flag_argument_noalias.
2929 * tree-ssa-structalias.h (struct alias_info): Remove fields
2930 num_calls_found and num_pure_const_calls_found.
2931 (update_mem_sym_stats_from_stmt): Declare.
2932 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
2933 Set default value to 100.
2934 (PARAM_AVG_ALIASED_VOPS): Define.
2935
516aa37d 29362007-04-11 Richard Guenther <rguenther@suse.de>
2937
2938 PR middle-end/31530
2939 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
2940 a * -b + c as c - a * b if we honor sign dependent rounding.
2941
2b8e874f 29422007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
2943
2944 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
2945 bfin_expand_strmov.
2946 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
2947 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
2948 variables.
2949 (initialize_trampoline): Don't use old-style function definition.
2950 (bfin_secondary_reload): Mark IN_P argument as unused.
2951
3e6bc865 29522007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
2953
2954 PR tree-optimization/31343
2955 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
2956 (build_polynomial_chrec): Return a scalar when the evolution is zero.
2957 * testsuite/gcc.dg/vect/pr31343.c: New.
2958
ed01e173 29592007-04-10 Eric Christopher <echristo@apple.com>
2960
2961 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
2962 * config/i386/i386.md (*cmpfp0): Use.
2963 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
2964 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
2965 (fix_trunc<mode>_i386_fisttp): Ditto.
2966 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
2967 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
2968 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
2969 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
2970 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
2971 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
2972 (unnamed_splitters): Ditto.
2973 * config/i386/i386.c (output_fix_trunc): Assert that
2974 we're not being passed a TFmode operand.
2975
944cca50 29762007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
2977
2978 PR tree-optimization/31526
2979 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
2980 n_basic_blocks to find newly added blocks.
2981
c778ae84 29822007-04-10 Uros Bizjak <ubizjak@gmail.com>
2983
2984 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
2985 alternative.
2986 (fix_trunc<mode>si_sse): Ditto.
2987 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
2988 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
2989 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
2990 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
2991 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
2992 expander using SSEMODEF mode macro.
2993 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
2994 expander using SSEMODEF mode macro.
2995 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
2996 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
2997 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
2998 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
2999 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
3000 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
3001 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
3002 Macroize insn using X87MODEF mode macro.
3003
d8d6e6ac 30042007-04-09 H.J. Lu <hongjiu.lu@intel.com>
3005
3006 * config/i386/sse.md (sse2_pinsrw): Removed.
3007 (sse2_pextrw): Renamed to ...
3008 (*sse2_pextrw): This.
3009
cb00447a 30102007-04-09 Jan Hubicka <jh@suse.cz>
3011
3012 PR target/27869
3013 * config/i386/sse.md
3014 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
3015 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
3016 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
3017 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
3018
d9745cea 30192007-04-09 Jan Hubicka <jh@suse.cz>
3020
3021 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
3022 multiple fields of union.
3023
d8a0d6b8 30242007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
3025
3026 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
3027 (create_preheaders): Check that loops are available.
3028 (fix_loop_structure): Clean up, improve comments.
3029 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
3030 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
3031 state flags.
3032 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
3033 * predict.c (tree_estimate_probability): Do not call
3034 calculate_dominance_info. Call create_preheaders.
3035 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
3036 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
3037 flags.
3038 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
3039 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
3040 * tree-cfg.c (tree_split_edge): Make an assert more precise.
3041 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
3042 arguments.
3043
27290809 30442007-04-08 Jan Hubicka <jh@suse.cz>
3045
3046 * tree.h (maybe_fold_offset_to_component_ref): Declare.
3047 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
3048 * fold-const.c (fold_unary): Use it.
3049
bbdc7974 30502007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
3051
3052 * varasm.c (assemble_variable): Remove call to
3053 lang_hooks.decls.prepare_assemble_variable.
3054 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
3055 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
3056 * langhooks.h (lang_hooks_for_decls): Remove
3057 prepare_assemble_variable.
3058
105eb9b9 30592007-04-08 Mike Stump <mrs@apple.com>
3060
3061 * config/i386/i386.c: Use inc/dec on Core2.
3062
94be3290 30632007-04-08 Steven Bosscher <steven@gcc.gnu.org>
3064
3065 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
3066 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
3067 lhd_tree_inlining_end_inlining): Remove.
3068 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
3069 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
3070 end_inlining hooks.
3071 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
3072 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
3073 lhd_tree_inlining_end_inlining): Remove prototypes.
3074 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
3075 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3076 LANG_HOOKS_TREE_INLINING_START_INLINING,
3077 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
3078
3079 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
3080 not set it.
3081
8e5f08fe 30822007-04-08 Anatoly Sokolov <aesok@post.ru>
3083
3084 PR target/29932
3085 * config/avr/predicates.md (io_address_operand): Delete predicate.
3086 (low_io_address_operand): Don't use 'mode' argument.
3087 (higth_io_address_operand): Rename ...
3088 (high_io_address_operand): ... to this. Don't use 'mode' argument.
3089 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
3090 for above change.
3091
cf484390 30922007-04-07 Daniel Berlin <dberlin@dberlin.org>
3093
3094 Revert change removing staticp.
3095
4704b743 30962007-04-07 Anatoly Sokolov <aesok@post.ru>
3097
3098 PR target/30289
ed01e173 3099 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
4704b743 3100 earlyclobber.
3101
0e9b4e74 31022007-04-07 Bruce Korb <bkorb@gnu.org>
3103
3104 * c.opt: Add -Wformat-contains-nul.
3105 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
3106 -Wformat setting.
3107 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
3108 the NUL byte warning.
3109
918ee506 31102007-04-07 H.J. Lu <hongjiu.lu@intel.com>
3111
3112 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
3113
57d1a308 31142007-04-06 Daniel Berlin <dberlin@dberlin.org>
3115
3116 * tree.c (staticp): No longer use staticp langhook.
3117 * langhooks.c (lhd_staticp): Removed.
3118 * langhooks.h (struct lang_hooks): Remove staticp.
3119 * c-common.c (c_staticp): Remove.
3120 * c-common.h (c_staticp): Ditto.
3121 * langhooks-defs.h (lhd_staticp): Ditto.
3122 (LHD_HOOKS_STATICP): Ditto
3123 * tree.h (gcc_assert_lowered): New macro.
3124
d97e22fb 31252007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
3126
3127 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
3128 argument "reliable".
3129 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
3130 Add argument "reliable". Propagate it through calls.
3131 (infer_loop_bounds_from_undefined): Derive number of iterations
3132 estimates from references in blocks that do not dominate loop latch.
3133 (gcov_type_to_double_int): New function.
3134 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
3135 and expected_loop_iterations_unbounded.
3136 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
3137 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
3138 * tree-data-ref.c (estimated_loop_iterations): Export.
3139 (get_references_in_stmt): Fix -- do not return addresses of local
3140 objects.
3141 * cfgloop.h (expected_loop_iterations_unbounded,
3142 estimated_loop_iterations): Declare.
3143
fe0b46c1 31442007-04-06 Andreas Tobler <a.tobler@schweiz.org>
3145
3146 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
3147
9926a1b3 31482007-04-06 Uros Bizjak <ubizjak@gmail.com>
3149
3150 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
3151 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
3152 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
3153 Use output_387_reg_move().
3154 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
3155 expander using X87MODEF12 mode macro.
3156 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
3157 choosing register preferences. Use output_387_reg_move().
3158 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
3159 instead of "x". Use output_387_reg_move().
3160 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
3161 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
3162 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
3163 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
3164 Use output_387_reg_move().
3165 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
3166 mode macro.
3167 (*truncxf?f_i387 splitter): Ditto.
3168
b140c9fd 31692007-04-06 Daniel Berlin <dberlin@dberlin.org>
3170
3171 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
3172 LANG_HOOKS_SAFE_FROM_P.
3173 * expr.c (safe_from_p): Remove langhook call.
3174 * langhooks.h (lang_hooks): Remove safe_from_p.
3175 (lhd_safe_from_p): Remove prototype.
3176 * langhooks.c (lhd_safe_from_p): Remove.
ed01e173 3177
316ef6d8 31782007-04-06 Jan Hubicka <jh@suse.cz>
3179
3180 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
3181 functions.
3182
4c756287 31832007-04-06 Uros Bizjak <ubizjak@gmail.com>
3184
3185 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
3186 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
3187 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
3188 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
3189 alternative.
3190 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
3191 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
3192
32a8f747 31932007-04-05 Richard Henderson <rth@redhat.com>
3194
3195 * config/alpha/alpha.c (print_operand) [+]: Remove.
3196 (alpha_end_function): Print nop if call at end of function.
3197 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
3198 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
3199 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
3200 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
3201 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
3202 the call pattern. Update peepholes to match.
3203
004e23c4 32042007-04-05 Janis Johnson <janis187@us.ibm.com>
3205
3206 * doc/extend.texi (Other Builtins): Add decimal float variants
3207 of signbit.
3208 * builtins.def: Ditto.
3209 * builtins.c (expand_builtin): Ditto.
3210
70169283 32112007-04-05 Uros Bizjak <ubizjak@gmail.com>
3212 H.J. Lu <hongjiu.lu@intel.com>
3213
3214 PR target/31478
3215 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
3216 of V8HImode when calling ix86_binary_operator_ok.
3217 (sse2_pmaddwd): Call ix86_binary_operator_ok.
3218 (sdot_prodv8hi): Operands 1 and 2 must be register.
3219
f3e8be3e 32202007-04-05 Alexandre Oliva <aoliva@redhat.com>
3221
3222 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
3223 initialize align to silence bogus warning.
3224
2e4b8bcd 32252007-04-05 Alexandre Oliva <aoliva@redhat.com>
3226
3227 PR middle-end/22156
3228 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
3229 all_no_warning.
3230 (struct sra_walk_fns): Remove use_all parameter from use.
3231 (sra_hash_tree): Handle BIT_FIELD_REFs.
3232 (sra_elt_hash): Don't hash bitfld blocks.
3233 (sra_elt_eq): Skip them in parent compares as well. Handle
3234 BIT_FIELD_REFs.
3235 (sra_walk_expr): Don't maintain or pass down use_all_p.
3236 (scan_use): Remove use_all parameter.
3237 (scalarize_use): Likewise. Re-expand assignment to
3238 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
3239 output, and re-scalarize after output. Don't mark anything
3240 for no warning.
3241 (scalarize_ldst): Adjust.
3242 (scalarize_walk_gimple_modify_statement): Likewise.
3243 (build_element_name_1): Handle BIT_FIELD_REFs.
3244 (instantiate_element): Don't warn for any element whose parent
3245 is used as a whole.
3246 (instantiate_missing_elements_1): Return the sra_elt.
3247 (canon_type_for_field): New.
3248 (try_instantiate_multiple_fields): New.
3249 (instantiate_missing_elemnts): Use them.
3250 (mark_no_warning): Removed.
3251 (generate_one_element_ref): Handle BIT_FIELD_REFs.
3252 (REPLDUP, sra_build_elt_assignment): New.
3253 (generate_copy_inout): Use them.
3254 (generate_element_copy): Likewise. Handle bitfld differences.
3255 (generate_element_zero): Don't recurse for blocks. Use
3256 sra_build_elt_assignment.
3257 (generate_one_element_int): Take elt instead of var. Use
3258 sra_build_elt_assignment.
3259 (generate_element_init_1): Adjust.
3260 (scalarize_use, scalarize_copy): Use REPLDUP.
3261 (scalarize_ldst): Move assert before dereference.
3262 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
3263
2a515194 32642007-04-05 Steven Bosscher <steven@gcc.gnu.org>
3265
3266 * regmove.c: Fix unused variable warnings due to previous commit.
3267
f9f428c6 32682007-04-05 Steven Bosscher <steven@gcc.gnu.org>
3269
3270 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
3271 (regmove_bb_head): Remove.
3272 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
3273 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
3274 problems with fixup_match_1.
3275 Don't initialize/free regmove_bb_head.
3276
3277 (reg_is_remote_constant_p): If an insn is in the same basic block
3278 but not before INSN, consider it remote, too.
3279
0d528483 32802007-04-05 Anatoly Sokolov <aesok@post.ru>
3281
3282 PR target/25448
ed01e173 3283 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
0d528483 3284 DECL_ASSEMBLER_NAME, not the DECL_NAME.
3285
9f525417 32862007-04-05 H.J. Lu <hongjiu.lu@intel.com>
3287
3288 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
3289 (CONDITIONAL_REGISTER_USAGE): Likewise.
3290
de13ca97 32912007-04-04 Richard Henderson <rth@redhat.com>
3292
3293 * config/alpha/lib1funcs.asm: Remove unused file.
3294
7fbbfa9f 32952007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
3296
3297 PR other/31356
3298 * opts.c (print_specific_help): Fix --help=<language>
3299 header line.
3300 (common_handle_option): Support --help=common.
3301
4b70b183 33022007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
3303
3304 PR other/31353
3305 * gcc.c (main): Do not run the linker if
3306 print_subprocess_help indicates that it shouldn't be
3307 run.
3308
a1d3fae9 33092007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
3310
3311 PR doc/31355
3312 * doc/invoke.texi (--help=): Document <languages> value, fix
3313 formatting in tables of values.
3314
f5b1f90b 33152007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
3316
3317 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
3318 dllimport attribute of virtual methods.
3319
0875e592 33202007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
3321
e865d428 3322 * config/score/crti.asm: Change _bss_start to __bss_start.
3323 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
3324 (OUTGOING_REG_PARM_STACK_SPACE) update.
3325 * config/score/score.opt: add options to make backend support
3326 score5, score5u, score7 and score7d.
3327 * config/score/score.md: Likewise.
3328 * config/score/misc.md: Likewise.
3329 * config/score/mac.md: Likewise.
3330 * doc/invoke.texi: Likewise.
3331 * doc/md.texi: update constraints define.
0875e592 3332
a4521f7e 33332007-04-03 Richard Henderson <rth@redhat.com>
3334
3335 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
3336 an appropriate type, use the mode instead.
3337
223f6dbc 33382007-04-03 Richard Sandiford <richard@codesourcery.com>
3339
3340 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
3341 Set the default --with-arch setting to mips2.
3342 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
3343 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3344 (MULTILIB_OSDIRNAMES): Delete.
3345 (MULTILIB_DIRNAMES): Define.
3346 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
3347 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
3348 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
3349 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
3350 VXWORKS_OS_CPP_BUILTINS.
3351 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
3352 (MIPS_DEBUGGING_INFO): Undefine.
3353 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
3354
f83924bb 33552007-04-03 Jakub Jelinek <jakub@redhat.com>
3356
3357 PR middle-end/30704
3358 * fold-const.c (native_encode_real): Encode real.c provided longs
3359 as a series of 32-bit native integers.
3360 (native_interpret_real): Interpret buffer as a series of 32-bit
3361 native integers.
3362
b0ecf094 33632007-04-03 Richard Guenther <rguenther@suse.de>
3364
3365 * genpreds.c (write_insn_constraint_len): Write function
3366 optimized for CONSTRAINT_LEN implementation.
3367 (write_tm_preds_h): Output insn_constraint_len inline and
3368 use it for CONSTRAINT_LEN.
3369 (write_insn_preds_c): Don't output insn_constraint_len.
3370 * doc/md.texi (define_register_constraint): Document multi-letter
3371 constraints shall have the same length if they start with the same
3372 letter.
3373
79959616 33742007-04-03 Uros Bizjak <ubizjak@gmail.com>
3375
3376 PR target/31175
3377 * config/i386/i386.md (isinf<mode>2): Expand only when
3378 TARGET_C99_FUNCTIONS is set.
3379
6d057ce8 33802007-04-03 Uros Bizjak <ubizjak@gmail.com>
3381
3382 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
3383 (x86_64-*-linux*): Ditto.
3384 * config/i386/i386.opt (mpc): New option.
3385 * config/i386/i386.c (overrride_options): Handle
3386 ix87_precision_string.
3387 * config/i386/crtprec.c: New file.
3388 * config/i386/t-crtpc: Ditto.
3389 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
3390 and -mpc80 options.
3391 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
3392 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
3393 crtprec32.o, crtprec64.o and crtprec80.o.
3394
3395 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
3396 and -mpc80 options.
3397 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
3398
924dc384 33992007-04-02 Eric Christopher <echristo@apple.com>
3400
3401 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
3402 limitations on darwin.
3403
ba92127f 34042007-04-02 Anatoly Sokolov <aesok@post.ru>
3405
3406 PR target/31137
3407 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
3408
8995c1df 34092007-04-02 Dave Korn <dave.korn@artimi.com>
3410
bda7c187 3411 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
924dc384 3412
ac7d39a1 34132007-04-02 Dave Korn <dave.korn@artimi.com>
3414
bda7c187 3415 * libgcc2.h (exception_descriptor): Don't forward-declare.
3416 (__get_eh_table_language, __get_eh_table_version): Delete
ac7d39a1 3417 prototypes of long-dead functions.
3418
bcb0e3ff 34192007-04-01 Daniel Berlin <dberlin@dberlin.org>
3420
3421 * ebitmap.h: New file
3422 * ebitmap.c: New file
3423 * Makefile.in (ebitmap.o): New target.
3424
4486418e 34252007-04-01 Jan Hubicka <jh@suse.cz>
3426
3427 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
3428 before very first instruction.
3429
34302007-04-01 Jan Hubicka <jh@suse.cz>
3431
3432 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
3433 waring on 64bit hosts.
3434 * bitmap.h: Fix typo in bitmap_head_def.
3435
6ca330f8 34362007-04-01 Steven Bosscher <steven@gcc.gnu.org>
3437
3438 PR rtl-optimization/31391
3439 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
3440 into a DELETED_LABEL note, and the label is in an empty basic
3441 block, update BB_END as well as BB_HEAD.
3442
6291249b 34432007-04-01 Richard Henderson <rth@redhat.com>
3444
3445 PR tree-optimization/31169
3446 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
3447 to varying if the range is outside [0, prec-1].
3448
34a43822 34492007-04-01 Richard Sandiford <richard@codesourcery.com>
3450
3451 PR target/31388
3452 * config/mips/mips.md (load_const_gp): New insn.
3453 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
3454 the MIPS16 GP pseudo register if no_new_pseudos.
3455 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
3456
0eafba8d 34572007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
3458
3459 PR target/31364
3460 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
3461 secureplt.
3462 (call_value): Likewise.
3463
42cef9df 34642007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
6d057ce8 3465 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
42cef9df 3466
3467 PR 14737
3468 * doc/invoke.texi: (optimization options): Reword description
3469 of -ffast-math. Document its primary purpose.
924dc384 3470
e3022db7 34712007-03-31 Richard Guenther <rguenther@suse.de>
3472
3473 * omp-low.c (splay-tree.h): Include.
3474 (lookup_decl): Replace splay-tree usage by pointer-map.
3475 (maybe_lookup_decl): Likewise.
3476 (new_omp_context): Likewise.
3477 (delete_omp_context): Likewise.
3478 * gimplify.c (splay-tree.h): Include.
3479 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
3480 pointer-map.
3481 (remap_ssa_name): Likewise.
3482 (remap_decl): Likewise.
3483 (remap_type_1): Likewise.
3484 (remap_type): Likewise.
3485 (copy_body_r): Likewise.
3486 (expand_call_inline): Likewise.
3487 (clone_body): Likewise.
3488 (copy_tree_r): Likewise.
3489 (remap_save_expr): Likewise.
3490 (unsave_r): Likewise.
3491 (unsave_expr_now): Likewise.
3492 (tree_function_versioning): Likewise.
3493 (build_duplicate_type): Likewise.
3494 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
3495 (struct copy_body_data): Replace splay-tree by pointer-map.
3496 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
3497 not $(SPLAY_TREE_H).
3498 (gimplify.o): Depend on $(SPLAY_TREE_H).
3499 (omp-low.p): Likewise.
3500
db54c785 35012007-03-31 Anatoly Sokolov <aesok@post.ru>
3502
924dc384 3503 * config/avr/predicates.md (even_register_operand,
db54c785 3504 odd_register_operand): New predicates.
3505 * config/avr/avr.md (movw peephole2): New.
3506 (movw_r peephole2): New.
3507
81e897e4 35082007-03-30 Rafael Avila de Espindola <espindola@google.com>
3509
3510 * tree.h (get_signed_or_unsigned_type): New.
3511 * fold-const.c (operand_equal_for_comparison_p): Use
3512 get_signed_or_unsigned_type instead of
3513 lang_hooks.types.signed_or_unsigned_type.
3514 * expr.c (store_expr): Ditto.
3515 * langhooks.c (get_signed_or_unsigned_type): New.
3516 (lhd_signed_or_unsigned_type): New.
3517 * langhooks.h (lhd_signed_or_unsigned_type): New.
3518 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
3519
0bbe9142 35202007-03-30 Richard Henderson <rth@redhat.com>
3521
3522 * tree-ssa-loop-ivopts.c: Include target.h.
3523 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
3524 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
3525 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
3526 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
3527
35282007-03-30 Richard Henderson <rth@redhat.com>
3529 Kai Tietz <kai.tietz@onevision.com>
3530
3531 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
3532 default for 64-bit.
3533 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
3534 (TARGET_64BIT_MS_ABI): New.
3535 (DBX_REGISTER_NUMBER): Handle 64-bit.
3536 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
3537 (LONG_TYPE_SIZE): Force to 32.
3538 (REG_PARM_STACK_SPACE): New.
3539 (OUTGOING_REG_PARM_STACK_SPACE): New.
3540 (REGPARM_MAX, SSE_REGPARM_MAX): New.
3541 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
3542 (STACK_BOUNDARY): Use 128 for 64-bit.
3543 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
3544 Add 64-bit implementation.
3545 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
3546 argument unused.
3547 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
3548 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
3549 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
3550 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
3551 (ix86_handle_cconv_attribute): Don't warn when ignoring if
3552 TARGET_64BIT_MS_ABI.
3553 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
3554 (ix86_pass_by_reference): Likewise.
3555 (ix86_function_value_regno_p): Likewise.
3556 (ix86_build_builtin_va_list): Likewise.
3557 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3558 (function_arg_advance_ms_64): New.
3559 (function_arg_advance): Call it.
3560 (function_arg_ms_64): New.
3561 (function_arg): Call it.
3562 (function_value_ms_64): New.
3563 (ix86_function_value_1): Call it.
3564 (return_in_memory_ms_64): New.
3565 (ix86_return_in_memory): Call it.
3566 (setup_incoming_varargs_ms_64): New.
3567 (ix86_setup_incoming_varargs): Call it.
3568 (ix86_expand_prologue): Handle 64-bit stack probing.
3569 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
3570 (output_pic_addr_const): Likewise.
3571 (x86_this_parameter): Likewise.
3572 (x86_output_mi_thunk): Likewise.
3573 (x86_function_profiler): Likewise.
3574 (TARGET_STRICT_ARGUMENT_NAMING): New.
3575 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
3576 (TARGET_64BIT_MS_ABI): New.
3577 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
3578 * config/i386/i386.md (allocate_stack_worker): Remove.
3579 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
3580 describe the clobber of eax without a match_scratch.
3581 (allocate_stack_worker_postreload): Remove.
3582 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
3583 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
3584 (allocate_stack_worker_rex64_postreload): Remove.
3585 (allocate_stack): Handle 64-bit.
3586 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
3587 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
3588 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
3589 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
3590 (STANDARD_STARTFILE_PREFIX_1): Likewise.
3591 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
3592 * config.build (x86_64-*-mingw*): New host.
3593 * config.host (x86_64-*-mingw*): New host.
3594 * config.gcc (x86_64-*-mingw*): New target.
3595 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
3596
3fa3949d 35972007-03-30 Richard Henderson <rth@redhat.com>
3598 Kai Tietz <kai.tietz@onevision.com>
3599
3600 * c-pragma.c (struct def_pragma_macro_value): New.
3601 (struct def_pragma_macro): New.
3602 (pushed_macro_table): New.
3603 (dpm_hash, dpm_eq): New.
3604 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
3605 (init_pragma): Install them.
3606 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
3607
6e9e3dbe 36082007-03-30 Anatoly Sokolov <aesok@post.ru>
3609
924dc384 3610 * config/avr/avr.c (avr_override_options): Clear
6e9e3dbe 3611 'flag_delete_null_pointer_checks'.
3612
481451eb 36132007-03-30 Paolo Carlini <pcarlini@suse.de>
3614
3615 PR c++/26099
3616 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
3617 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
3618 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
3619 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
3620 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
3621 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
3622 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
3623 C++ extensions.
3624 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
3625
e1caca42 36262007-03-30 Steven Bosscher <steven@gcc.gnu.org>
3627
3628 * regmove.c: Move all of pass_stack_adjustments from here...
3629 * combine-stack-adj.c: ...to this new file.
3630 * Makefile.in: Add rules for combine-stack-adj.o.
3631
de33470d 36322007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
3633
3634 PR tree-optimization/31383
3635 * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
3636 to have the same length.
3637
5615be0f 36382007-03-30 Jan Hubicka <jh@suse.cz>
3639
b2e3c5f9 3640 PR middle-end/30700
924dc384 3641 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
5615be0f 3642 availablility; add more sanity checking; ask varpool only about
3643 VAR_DECL.
3644
9c0794a1 36452007-03-29 Richard Henderson <rth@redhat.com>
3646
3647 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
3648 to decide, but __SIZEOF_LONG_LONG__.
3649
bedbe58b 36502007-03-29 Richard Henderson <rth@redhat.com>
3651
3652 * emutls.c (struct __emutls_array): New.
3653 (emutls_destroy): Use it instead of casting element 0 from void*.
3654 (__emutls_get_address): Likewise.
3655
dd1a226e 36562007-03-29 Richard Henderson <rth@redhat.com>
3657
3658 * varasm.c (initializer_constant_valid_p): Don't deny
3659 DECL_DLLIMPORT_P on functions.
3660
3661 * config/i386/cygming.h: Remove function declarations.
3662 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
3663 (ASM_OUTPUT_LABELREF): Remove.
3664 (COMMON_ASM_OP): Remove.
3665 (ASM_OUTPUT_COMMON): Remove.
3666 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
3667 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
3668 (ASM_DECLARE_FUNCTION_NAME): Likewise.
3669 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
3670 Rename from TARGET_ENCODE_SECTION_INFO.
3671 * config/i386/netware.h: Likewise.
3672 * config/i386/i386-protos.h: Update.
3673 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
3674 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
3675 (legitimate_constant_p): Reject dllimports.
3676 (dllimport_map, get_dllimport_decl): New.
3677 (legitimize_dllimport_symbol): New.
3678 (legitimize_address, ix86_expand_move): Use it.
3679 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
3680 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
3681 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
3682 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
3683 * config/i386/predicates.md (constant_call_address_operand): Only
3684 accept symbols; reject dllimport_p symbols.
3685 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
3686 i386_pe_maybe_record_exported_symbol.
3687 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
3688 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
3689 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
3690 trust the setting of DECL_DLLIMPORT_P.
3691 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
3692 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
3693 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
3694 tidy the argument scanning loop.
3695 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
3696 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
3697 (i386_pe_strip_name_encoding): Remove.
3698 (i386_pe_binds_local_p): New.
3699 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
3700 (i386_pe_output_labelref): Remove.
3701 (i386_pe_asm_output_aligned_decl_common): New.
3702 (i386_pe_maybe_record_exported_symbol): Rename from
3703 i386_pe_record_exported_symbol; check for dllexported symbols.
3704
409f9175 37052007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
3706
3707 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
3708 add comment explaining why vsnprintf cannot be used.
3709
a024c245 37102007-03-29 Douglas Gregor <doug.gregor@gmail.com>
3711
3712 PR tree-optimization/30666
3713 * tree.c (build_complex_type): When creating type names for DWARF2
3714 debug info, create TYPE_DECLs for TYPE_NAME instead of
3715 IDENTIFIER_NODEs.
3716 (build_common_tree_nodes_2): Use build_complex_type when building
3717 predefined complex types, to preserve canonical types.
3718
ba45c933 37192007-03-29 Steven Bosscher <steven@gcc.gnu.org>
3720
3721 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
3722 (noce_get_alt_condition): Look at it to determine whether to
3723 reverse the condition or not.
3724 (noce_get_condition): Substitute the truth for lies.
3725 (noce_find_if_block): Set the then_else_reversed field.
3726
5e8ebe59 37272007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
3728
3729 * config/fr30/fr30.md (movdi): Do not accept immediates as the
3730 destination of this insn.
3731 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
3732 than calling gen_rtx_SET directly. Use r0 to hold the value of
3733 'address + 4' rather than a stack based temporary which can be
3734 mis-optimized away.
924dc384 3735
328d5423 37362007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
3737
3738 * config/s390/s390.c (s390_secondary_input_reload_class,
3739 s390_secondary_output_reload_class): Functions removed.
3740 (s390_secondary_reload): New function.
3741 (TARGET_SECONDARY_RELOAD): Target macro defined.
3742 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
3743 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
3744 * config/s390/s390.md ("reload_outti", "reload_outdi",
3745 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
3746 "reload_out<mode>"): Expanders removed.
3747 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
3748 "reload<mode>_nonoffmem_out"): Expanders added.
3749
fc7c3aae 37502007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
3751
3752 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
3753 SRC->DEST replacement failed anyway.
3754
f3e0a067 37552007-03-28 Mike Stump <mrs@apple.com>
3756
3757 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
3758 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
a8654287 3759 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
f3e0a067 3760
d80b6b7d 37612007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3762
3763 * config.gcc: Accept barcelona as a variant of amdfam10.
3764 * config/i386/i386.c (override_options): Likewise.
3765 * doc/invoke.texi: Likewise.
924dc384 3766
74aab153 37672007-03-28 Eric Botcazou <ebotcazou@adacore.com>
3768
3769 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
3770 offsets for BIT_FIELD_REF and COMPONENT_REF.
3771
dc6fafc6 37722007-03-28 Richard Guenther <rguenther@suse.de>
3773
3774 * tree.c (is_global_var): Move ...
3775 * tree-flow-inline.h (is_global_var): ... here.
3776 * tree.h (is_global_var): Remove declaration.
3777
58c9a086 37782007-03-28 Uros Bizjak <ubizjak@gmail.com>
3779
3780 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
3781 option.
3782 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
3783 * config/i386/i386.c (ix86_tune_features): Initialize new
3784 tuning option.
3785 * config/i386/predicates.md (promotable_binary_operator): Use
3786 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
3787
41b0d74f 37882007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
3789
3790 PR target/31380
3791 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
3792
0c570b19 37932007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
95175695 3794
3795 * config/fr30/fr30.md (movsi_internal): Change destination
924dc384 3796 constraint from m to V and add m to the end.
95175695 3797
4a98dc74 37982007-03-28 Christian Bruel <christian.bruel@st.com>
3799
3800 * config/sh/sh.md (movsi_i): Fix type attribute.
3801
0c570b19 38022007-03-28 Christian Bruel <christian.bruel@st.com>
e661b951 3803
3804 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
3805 (movsf_ie): Likewise.
3806
99b0f6d9 38072007-03-28 Christian Bruel <christian.bruel@st.com>
3808
3809 * config.gcc: Add sh4-300 to multilib.
3810 * config/sh/t-mlib-sh4-300: New file.
3811
37e3ac7e 38122007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
3813
3814 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
3815 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
3816 fix_trunc<mode>di2.
924dc384 3817 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
37e3ac7e 3818 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
3819 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
3820 "fixuns_trunctddi2"): Whitespace fix.
3821
f328f118 38222007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
3823
3824 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
3825 the definition of struct sh_args.
3826 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
3827 CALL_COOKIE_INT_REG_GET): Likewise.
3828
0fffdebc 38292007-03-28 Steven Bosscher <steven@gcc.gnu.org>
3830
3831 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
3832 transformations are applied successfully.
3833
5ca99950 38342007-03-27 Douglas Gregor <doug.gregor@gmail.com>
3835
3836 * tree.c (tree_contains_struct): Permit 512 tree codes.
3837 * tree.h (tree_contains_struct): Ditto.
3838 (MAX_TREE_CODES): Ditto.
3839 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
3840 SPARE member to store remaining padding bits.
3841
097373ae 38422007-03-27 Anatoly Sokolov <aesok@post.ru>
3843
924dc384 3844 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
097373ae 3845 architecture.
3846
ca0d2b55 38472007-03-27 Janis Johnson <janis187@us.ibm.com>
3848
88f38265 3849 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
3850 * configure: Regenerate.
3851
ca0d2b55 3852 * configure: Regenerate using the correct version of autoconf.
3853
38542007-03-27 Anatoly Sokolov <aesok@post.ru>
dc39da57 3855
3856 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
3857 pointer regs.
3858 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
3859 regs to "__SP_L__" and "__SP_H__".
3860
209f25b9 38612007-03-27 Richard Guenther <rguenther@suse.de>
3862
3863 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
924dc384 3864 computations with it with a HOST_WIDE_INT variable.
209f25b9 3865
45ccdeb8 38662007-03-26 Mike Stump <mrs@apple.com>
3867
3868 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
3869 objective-c-header, objective-c++-header and objc++-cpp-output
3870 support.
3871 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
3872
1a510660 38732007-03-26 Richard Henderson <rth@redhat.com>
3874
58c9a086 3875 PR target/31361
3876 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
3877 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
3878 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
3879 IX86_BUILTIN_PSRLQ128): New.
3880 (ix86_init_mmx_sse_builtins): Add them.
3881 (ix86_expand_builtin): Expand them.
3882 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
3883 operand 2 be TImode.
3884 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
3885 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
3886 _mm_srli_epi64): Mark __B const.
3887 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
3888 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
924dc384 3889 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
58c9a086 3890 new two-vector shift builtins.
1a510660 3891
c68b42d2 38922007-03-26 Ian Lance Taylor <iant@google.com>
3893
3894 PR tree-optimization/31345
3895 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
3896 [+INF, +INF(OVF)] into VARYING.
3897
f8be92ce 38982007-03-26 Zack Weinberg <zackw@panix.com>
3899
1e837561 3900 * gengtype-parse.c: New file.
3901 * gengtype-yacc.y: Delete.
3902 * gengtype-lex.l: Don't include gengtype-yacc.h.
3903 Define YY_DECL and yyterminate appropriately for recursive
3904 descent parser. yylval is now a string out-parameter to yylex.
3905 (HWS, EOID): New shorthand.
3906 (IWORD): Add a couple more types.
3907 (yylex): Add a setup stanza. Remove the complex rules for
3908 detecting GTY'ed types and typedefs; replace with simple
3909 keyword detectors. Adjust everything for the changed
3910 definition of yylval. Ignore all pp-directives, not just #define.
3911 (yyerror): Delete.
3912 (parse_file): Rename yybegin; do not call yyparse.
3913 (yyend): New.
3914 * gengtype.c (xasprintf): Export again.
3915 (this_file): New. Use everywhere __FILE__ was being used.
3916 (get_lang_bitmap): Special case types defined in gengtype.c.
3917 (do_typedef, new_structure): Suppress definition of certain types.
3918 (new_structure): Improve diagnostics of duplicate definitions.
3919 Make sure location_s is associated with input.h.
3920 (nreverse_pairs, define_location_structures): New functions.
3921 (main): Improve tagging of kludge types. Remove old kludges
3922 for input.h types; use define_location_structures.
3923 * gengtype.h: Update prototypes. Define token codes here.
3924 * Makefile.in: Remove all references to gengtype-yacc.
3925 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
3926 and gengtype.
3927 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
3928 add GTY((skip)) to the field that's only conditionally there.
3929 * doc/install.texi: Document that Bison is no longer required
3930 unless building treelang.
3931
570af75a 3932 * gengtype.c: Don't include gtyp-gen.h.
3933 (srcdir): Declare here.
3934 (base_files, lang_dir_names): Allocate dynamically.
3935 (gt_files, num_gt_files, num_lang_dirs): New globals.
3936 (measure_input_list, read_input_line, read_input_list)
3937 (set_lang_bitmap): New functions.
3938 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
3939 simplify, relying on read_input_list to set up the bitmaps.
3940 (main): Arguments are no longer unused. Check for correct number
3941 of command line arguments, set srcdir and srcdir_len, then call
3942 read_input_list, before doing anything else. No need to worry
3943 about duplicates in main loop.
3944 * configure.ac: Simplify the calculation of all_gtfiles.
3945 Put language tags in there. Don't set or substitute
3946 all_gtfiles_files_langs or all_gtfiles_files_frags.
3947 * Makefile.in: Revamp the way gengtype is invoked, now that it
3948 takes a file on its command line with a much simpler format.
3949 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
3950 (GTFILES): Remove duplicates and C source files.
3951 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
3952 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
3953 * configure: Regenerate.
3954
4097676c 3955 * gengtype.h: Remove all type definitions to gengtype.c; leave
3956 only definitions of options_p, type_p, and pair_p as opaque
3957 pointers. Update prototypes.
3958 * gengtype.c: Many type definitions moved here from gengtype.h.
3959 Consolidate type definitions at the top of the file.
3960 (xvasprintf): Delete.
3961 (xasprintf): Make static.
3962 (create_nested_pointer_option): Add 'next' parameter.
3963 (create_field_all, create_field_at): New functions.
3964 (create_field): Now a thin wrapper around create_field_all.
3965 (create_optional_field): Rename create_optional_field_ and add
3966 line argument. Original name is now a macro which supplies
3967 __LINE__.
3968 (oprintf): Use vsnprintf directly.
3969 (close_output_files): Use fatal rather than perror/exit.
3970 (note_def_vec, note_def_vec_alloc): Use create_field_at.
3971 (main): Set progname. Don't use exit.
3972 * gengtype-yacc.y (struct_fields): Use create_field_at.
3973 (option, optionseqopt): Delete.
3974 (optionseq): Consolidate productions from option here so we
3975 can use the first argument to create_option.
3976
6fee8f02 3977 * gengtype-lex.l: Distinguish unions from structures in the
3978 token type. Don't call find_structure; return the tag as a string.
3979 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
3980 Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
3981 Reorganize typedef_struct production accordingly.
3982 Use create_nested_ptr_option.
3983 * gengtype.c (create_nested_ptr_option): New function.
3984 * gengtype.h: Declare it.
3985
80da8e25 3986 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
3987 (string_type): Don't declare.
3988 (do_scalar_typedef): Declare.
3989 (create_scalar_type): Update prototype.
3990 * gengtype.c (string_type): Make static.
3991 (scalar_nonchar, scalar_char): New.
3992 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
3993 (resolve_typedef): Use scalar_nonchar for error recovery.
3994 (create_scalar_type): Remove name_len field. Return scalar_char
3995 or scalar_nonchar as appropriate.
3996 (adjust_field_type): Look at scalar_is_char boolean to decide whether
3997 to use string_type.
3998 (throughout): Use scalar_nonchar instead of calling create_scalar_type,
3999 whenever possible.
4000 (main): Initialize scalar_char and scalar_nonchar before calling
4001 gen_rtx_next.
4002 * gengtype-lex.l: Adjust for removal of second argument to
4003 create_scalar_type. Use yylval.s instead of yylval.t when
4004 returning SCALAR.
4005 * gengtype-yacc.y: Type of SCALAR is string. Call
4006 create_scalar_type from type:SCALAR rule. Adjust for removal of
4007 second argument to create_scalar_type.
4008
696e7773 4009 * vec.h: Remove all #if IN_GENGTYPE blocks.
4010 Add comment saying that changes may require adjustments to gengtype.
4011 * gengtype.c: Don't include coretypes.h or tm.h.
4012 Add comment to inclusion of errors.h.
4013 (note_def_vec, note_def_vec_alloc): New functions.
4014 * gengtype.h: Declare new functions.
4015 * gengtype-lex.l: Don't include coretypes.h.
4016 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
4017 Delete.
4018 (update_lineno): Remove unnecessary prototype.
4019 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
4020 (VEC rule): Just return VEC_TOKEN.
4021 * gengtype-yacc.y (VEC_TOKEN): New token type.
4022 (type): Add a production for VEC(a,b).
4023 * Makefile.in: Update dependencies.
4024
892ddc0b 4025 * gengtype-lex.l: Remove rules for parsing pointer-to-function
4026 typedefs that use the old PARAMS macro.
4027
f8be92ce 4028 * gengtype-lex.l: Remove all rules and states relating to yacc
4029 input files.
4030 * gengtype-yacc.y: Similarly.
4031 * gengtype.c (note_yacc_type): Delete function.
4032 * gengtype.h: Update prototypes.
4033
e4e0b898 40342007-03-26 Joseph Myers <joseph@codesourcery.com>
4035
4036 * tree-pretty-print.c (dump_generic_node): Report precision of
4037 unnamed integer types.
4038
03dbd7cc 40392007-03-26 Steven Bosscher <steven@gcc.gnu.org>
4040
4041 * ifcvt.c (noce_try_store_flag_constants): Don't check
4042 no_new_pseudos here.
4043 (noce_try_store_flag_constants): Don't check no_new_pseudos.
4044 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
4045 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
4046 noce_try_sign_mask): Likewise.
4047 (if_convert): Check no_new_pseudos here.
4048
4049 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
4050 Remove prototypes.
4051 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
4052 (noce_get_condition): Handle new then_else_reversed argument.
4053 (noce_init_if_info): Remove, fold into noce_find_if_block.
4054 (noce_process_if_block): Take a struct noce_if_info as the
4055 argument. Don't set up one based on ce_if_info. Update pointer
4056 references accordingly.
4057 (cond_move_process_if_block): Likewise.
4058 (process_if_block): Removed.
4059 (find_if_block): Removed. Move functionality two new functions,
4060 noce_find_if_block and cond_exec_find_if_block.
4061 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
4062 blocks and the symmetric IF-ELSE-JOIN case.
4063 (cond_exec_find_if_block): Also new function mostly based on old
4064 find_if_block and process_if_block.
4065 (find_if_header): Replace find_if_block call with separately
4066 guarded calls to noce_find_if_block and cond_exec_find_if_block.
4067 (find_cond_trap): Update noce_get_condition call.
4068 (dead_or_predicable): Likewise.
4069
211d5b9a 40702007-03-26 Jakub Jelinek <jakub@redhat.com>
4071
4072 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
4073 Remove.
4074 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
4075 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
4076 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
4077 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
58c9a086 4078 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
211d5b9a 4079 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
4080 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
4081 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
4082 __builtin_ia32_psrad128 builtins.
4083
4e9abdcc 40842007-03-26 Uros Bizjak <ubizjak@gmail.com>
4085
4086 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
4087 * config/i386/constraints.md
4088 (define_constraint "I"): Use IN_RANGE macro.
4089 (define_constraint "J"): Ditto.
4090 (define_constraint "K"): Ditto.
4091 (define_constraint "M"): Ditto.
4092 (define_constraint "N"): Ditto.
4093 (define_constraint "O"): Ditto.
4094 * config/i386/predicates.md
4095 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
4096 (define_predicate "const_0_to_3_operand"): Ditto.
4097 (define_predicate "const_0_to_7_operand"): Ditto.
4098 (define_predicate "const_0_to_15_operand"): Ditto.
4099 (define_predicate "const_0_to_63_operand"): Ditto.
4100 (define_predicate "const_0_to_255_operand"): Ditto.
4101 (define_predicate "const_1_to_31_operand"): Ditto.
4102 (define_predicate "const_2_to_3_operand"): Ditto.
4103 (define_predicate "const_4_to_7_operand"): Ditto.
4104
87ba92a7 41052007-03-25 David Edelsohn <edelsohn@gnu.org>
4106
4107 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
4108 in SImode for save_world.
4109 * config/rs6000/altivec.md (save_world, restore_world): Convert to
4110 LR hard reg.
4111
3cbad267 41122007-03-25 Dorit Nuzman <dorit@il.ibm.com>
4113
4114 PR tree-optimization/30784
4115 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
4116 BIT_FIELD_REF.
4117
73772494 41182007-03-25 Revital Eres <eres@il.ibm.com>
4119
f8be92ce 4120 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
4121 Fold movement_possibility function into it.
73772494 4122
327202e2 41232007-03-25 David Edelsohn <edelsohn@gnu.org>
4124
4125 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
4126 (load_macho_picbase_{si,di}): Convert to LR hard reg.
4127 (call_indirect_nonlocal_darwin64): Same.
4128 (call_nonlocal_darwin64): Same.
4129 (call_value_indirect_nonlocal_darwin64): Same.
4130 (call_value_nonlocal_darwin64): Same.
4131 (sibcall_nonlocal_darwin64): Same.
4132 (sibcall_value_nonlocal_darwin64): Same.
4133 (sibcall_symbolic_64): Same.
4134 (sibcall_value_symbolic_64): Same.
4135 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
4136 LR pseudo.
4137 (rs6000_emit_load_toc_table): Same.
4138 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
4139 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
4140 (mull_call): Same.
4141 (divss_call): Same.
4142 (divus_call): Same.
4143 (quoss_call): Same.
4144 (quous_call): Same.
4145 (load_toc_v4_pic_si): Same
4146 (load_toc_v4_PIC_1): Same.
4147 (load_toc_v4_PIC_1b): Same.
4148 (call_indirect_aix{32,64}): Same.
4149 (call_value_indirect_aix{32,64}): Same.
4150 (call): Same.
4151 (call_value): Same.
4152 (call_local{32,64}): Same.
4153 (call_value_local{32,64}): Same.
4154 (call_indirect_nonlocal_aix{32,64}): Same.
4155 (call_nonlocal_aix{32,64}): Same.
4156 (call_value_indirect_nonlocal_aix{32,64}): Same.
4157 (call_value_nonlocal_aix{32,64}): Same.
4158 (call_indirect_nonlocal_sysv<mode>): Same.
4159 (call_nonlocal_sysv<mode>): Same.
4160 (call_value_indirect_nonlocal_sysv<mode>): Same.
4161 (call_value_nonlocal_sysv<mode>): Same.
4162 (sibcall): Same.
4163 (sibcall_local{32,64}): Same.
4164 (sibcall_value_local{32,64}): Same.
4165 (sibcall_nonlocal_aix{32,64}): Same.
4166 (sibcall_value_nonlocal_aix{32,64}): Same.
4167 (sibcall_nonlocal_sysv<mode>): Same.
4168 (sibcall_value): Same.
4169 (sibcall_value_nonlocal_sysv<mode>): Same.
4170
8eba3d10 41712007-03-24 Paul Brook <paul@codesourcery.com>
4172
4173 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
4174 * config/arm/linux-eabi.h: Remove legacy syscall hack.
4175
269f7060 41762007-03-24 Richard Henderson <rth@redhat.com>
4177
4178 * config/ia64/constraints.md: New file.
4179 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
4180 satisfies_constraint_?.
4181 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
4182 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
4183 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
4184 ia64_output_mi_thunk): Likewise.
4185 (ia64_const_ok_for_letter_p): Remove.
4186 (ia64_const_double_ok_for_letter_p): Remove.
4187 (ia64_extra_constraint): Remove.
4188 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
4189 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
4190 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
4191 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
4192 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
4193 EXTRA_MEMORY_CONSTRAINT): Remove.
4194 * config/ia64/ia64.md: Include constriants.md. Replace
4195 CONST_OK_FOR_? with satisfies_constraint_?.
4196
10de71e1 41972007-03-23 Michael Meissner <michael.meissner@amd.com>
4198 H.J. Lu <hongjiu.lu@intel.com>
4199
4200 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
4201 DPD or BID name.
4202 (name macros): Use DPD_BID_NAME to convert names properly.
4203
4204 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
4205 decimal floating point format.
4206 (init_floating_libfuncs): Change decimal functions so that they
4207 have a "bid_" prefix if the decimal system uses the BID format,
4208 and "dpd_" prefix if the decimal system uses the DPD format.
4209 (init_interclass_conv_libfuncs): Ditto.
4210 (init_intraclass_conv_libfuncs): Ditto.
4211
4212 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
4213 using the BID format.
4214
4215 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
4216 whether we are using the BID decimal format.
4217 * configure: Regenerate.
4218
4219 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
4220 the compiler has decimal floating point enabled. Define
4221 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
4222 instead of DPD.
4223
4224 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
4225 using the BID format.
4226
4227 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
4228 whether we are using the BID decimal format.
4229 * configure: Regenerate.
4230
4231 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
4232 the compiler has decimal floating point enabled. Define
4233 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
4234 instead of DPD.
4235
4236 * doc/install.texi (--enable-decimal-float): Document BID and DPD
4237 options, and that it is enabled for i386/x86_64 systems.
4238
4239 * Makefile.in (enable_decimal_float): New.
4240 (DECNUMFMT): New.
4241 (DECNUMINC): Add -I$(DECNUMFMT).
4242 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
4243 to $(DECNUMFMT) from $(DECNUM).
4244
4245 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
4246 Substitute enable_decimal_float.
4247 * configure: Regenerated.
4248
4249 PR other/30529
4250 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
4251 unsigned long.
4252
4253 * configure.ac: Enable decimal float for x86_64-*-linux*.
4254 * configure: Regenerated.
4255
4256 PR other/30530
4257 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
4258 decimal128ClearSign to flip and clear the sign bit in decimal128.
4259 (decimal_real_maxval): Set decimal128SetSign to set the sign
4260 bit in decimal128.
4261
558517fd 42622007-03-23 Ian Lance Taylor <iant@google.com>
4263
4264 * fold-const.c (fold_binary): Correct warning for X - c >= X.
4265
fb5b6d1b 42662007-03-23 Ian Lance Taylor <iant@google.com>
4267
4268 * tree-dump.c (dump_files): Correct comment.
4269
f82ccac1 42702007-03-23 Ian Lance Taylor <iant@google.com>
4271
4272 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
4273
207c7ab2 42742007-03-23 Steven Bosscher <steven@gcc.gnu.org>
4275
4276 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
4277 in cfglayout mode. Don't go into and out of cfglayout mode.
4278 Link the blocks in the order of the constructed traces.
4279 (rest_of_handle_tracer): Adjust call to tracer.
4280 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
4281 Don't go into cfglayout mode.
4282 (rtl_loop_done): Don't go out of cfglayout mode.
4283 * cfglayout.c (relink_block_chain): New function, split out from...
4284 (fixup_reorder_chain): ...here. Remove redundant checking.
4285 (cfg_layout_finalize): Don't clear the header, footer, and aux
4286 fields here, move the code to do so to relink_block_chain. Likewise
4287 for free_original_copy_tables.
4288 * rtl.h (tracer): Update prototype.
4289 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
4290 Assert we are in cfglayout mode. Don't go into and out of cfglayout
4291 mode. Use relink_block_chain to serialize the CFG according to the
4292 new basic block order. Move targetm.cannot_modify_jumps_p check from
4293 here...
4294 (gate_handle_reorder_blocks): ...to here.
4295 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
4296 from here...
4297 (gate_duplicate_computed_gotos): ...to here.
4298 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
4299 something always changes when going into and out of cfglayout mode.
4300 Perform an expensive cfg cleanup while going into cfglayout mode.
4301 Always update liveness information on HAVE_conditional_execution
4302 targets. Reserialize the basic blocks and go out of cfglayout mode.
4303 * reg-stack.c: Include cfglayout.h.
4304 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
4305 the call to reorder_basic_blocks.
4306 * basic-block.h (reorder_basic_blocks): Update prototype.
4307 (relink_block_chain): New prototype.
4308 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
4309
f01296c3 43102007-03-23 Joseph Myers <joseph@codesourcery.com>
4311
4312 * config/mips/mips.md (type, hazard, *movdi_32bit,
4313 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
4314 *movhi_internal, *movqi_internal, *movsf_hardfloat,
4315 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
4316 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
4317 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
4318 applicable.
4319 (movcc): Change first xfer to multi.
4320 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
4321 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
4322 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
4323 config/mips/generic.md: Change reservations using "xfer" to use
4324 "mfc,mtc".
4325 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
4326 using match_operand.
4327 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
4328 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
4329 examining mode.
4330 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
4331
788002f3 43322007-03-22 Richard Henderson <rth@redhat.com>
4333
4334 * config/i386/i386.c: Remove unnecessary function declarations.
4335 Move targetm definition, and all related macros, to the end of
4336 the file. Resort some functions to put definitions before uses.
4337 (ix86_attribute_table): Make static. Move to end of file.
4338 (ix86_gimplify_va_arg): Make static.
4339
9c587e53 43402007-03-22 Richard Henderson <rth@redhat.com>
4341
4342 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
4343 don't increase local_regparm with force_align_arg_pointer check.
4344 (ix86_function_sseregparm): Assert 32-bit.
4345 (type_has_variadic_args_p): New.
4346 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
4347 type_has_variadic_args_p.
4348 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
4349 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
4350 use memset instead. Do maybe_vaarg check first; skip attribute
4351 tests if true; skip attribute tests for 64-bit.
4352 (construct_container): Remove TARGET_DEBUG_ARG.
4353 (function_arg_advance_32, function_arg_advance_64): Split out ...
4354 (function_arg_advance): ... from here.
4355 (function_arg_32, function_arg_64): Split out ...
4356 (function_arg): ... from here.
4357 (ix86_pass_by_reference): Tidy.
4358 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
4359 (function_value_32): New, from parts of ix86_function_value
4360 and ix86_value_regno.
4361 (function_value_64): New, from parts of ix86_function_value
4362 and ix86_libcall_value.
4363 (ix86_function_value_1): New.
4364 (ix86_function_value, ix86_libcall_value): Use it.
4365 (return_in_memory_32, return_in_memory_64): Split out ...
4366 (ix86_return_in_memory): ... from here.
4367 (ix86_struct_value_rtx): Skip for 64-bit.
4368 (ix86_libcall_value, ix86_value_regno): Remove.
4369 (setup_incoming_varargs_64): Split out ...
4370 (ix86_setup_incoming_varargs): ... from here.
4371 (ix86_va_start): Remove TARGET_DEBUG_ARG.
4372 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
4373 * config/i386/i386-protos.h (ix86_function_value): Remove.
4374 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
4375
64214dab 43762007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4377
4378 PR other/23572
4379 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
4380 infinities not supported, otherwise emit warning if -Woverflow. On
4381 underflow, emit warning if -Woverflow.
4382 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
4383 and 0 otherwise.
4384 * real.h (real_from_string): Update declaration
f8be92ce 4385
63c68695 43862007-03-22 Kai Tietz <kai.tietz@onevision.com>
4387 Richard Henderson <rth@redhat.com>
4388
4389 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
4390 * calls.c (compute_argument_block_size, expand_call,
4391 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
4392 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4393 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
4394 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
4395 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
4396 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
4397 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
4398 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
4399 Set to 1.
4400
016bf95b 44012007-03-22 Joseph Myers <joseph@codesourcery.com>
4402
4403 * c-incpath.c (add_sysroot_to_chain): New.
4404 (merge_include_chains): Add sysroot argument. Call
4405 add_sysroot_to_chain if sysrooted.
4406 (register_include_chains): Update call to merge_include_chains.
4407 * doc/cppopts.texi: Document use of '=' in include directory
4408 arguments.
4409
a745c94e 44102007-03-22 Uros Bizjak <ubizjak@gmail.com>
4411
4412 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
4413 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
4414 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
4415 insn pattern using X87MODEF12 mode macro.
f8be92ce 4416
02f07e87 44172007-03-21 Seongbae Park <seongbae.park@gmail.com>
4418
4419 * regmove.c (regmove_optimize): Use reg_mentioned_p
4420 instead of reg_overlap_mentioned_p for DST.
4421
dad26ad9 44222007-03-21 Mike Stump <mrs@apple.com>
4423
4424 * c.opt: Fixup for Objective-C/C++.
4425
a745c94e 44262007-03-21 Steve Ellcey <sje@cup.hp.com>
2800ac1a 4427
4428 * explow.c (convert_memory_address): Fold memory reference when
4429 POINTERS_EXTEND_UNSIGNED < 0
4430
0e960ba8 44312007-03-21 Richard Henderson <rth@redhat.com>
4432
4433 PR target/31245
4434 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
4435 * config/i386/mmintrin.h (__m64): Likewise.
4436 * config/i386/xmmintrin.h (__m128): Likewise.
4437
f868f9f1 44382007-03-21 Richard Sandiford <richard@codesourcery.com>
4439
4440 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
4441 (VXWORKS_OS_CPP_BUILTINS): Define.
4442 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
4443 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
4444
3aba99c8 44452007-03-21 Richard Sandiford <richard@codesourcery.com>
4446
4447 * rtl.h (constant_pool_reference_p): Delete.
4448 (find_constant_src): Declare.
4449 * rtlanal.c (find_constant_src): New function.
4450 * simplify-rtx.c (constant_pool_reference_p): Delete.
4451 * config/i386/i386.md: Use find_constant_src instead of
4452 constant_pool_reference_p/avoid_constant_pool_reference pairs.
4453
7a0eea86 44542007-03-21 Richard Sandiford <richard@codesourcery.com>
4455
4456 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
4457 * c-cppbuiltin.c (c_cpp_builtins): Define them.
4458
a457f9f8 44592007-03-20 Mark Mitchell <mark@codesourcery.com>
4460
4461 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
4462 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
4463 (arm_elf_asm_constructor): Use it.
4464 (arm_elf_asm_destructor): New function.
4465
76021441 44662007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
4467
4468 * jump.c (mark_jump_label): Treat SEQUENCE specially.
4469
08b2466e 44702007-03-20 Nathan Sidwell <nathan@codesourcery.com>
4471
4472 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
4473
2b9f2e46 44742007-03-19 Andrew Haley <aph@redhat.com>
4475
4476 PR tree-optimization/31264
4477 * tree-vrp.c (register_edge_assert_for_1): Don't look though
4478 VIEW_CONVERT_EXPRs.
4479
243f24c5 44802007-03-19 Paolo Bonzini <bonzini@gnu.org>
4481
4482 PR rtl-optimization/30907
4483 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
4484 (fwprop_init): Always call loop_optimizer_initialize.
4485 (fwprop_done): Always call loop_optimizer_finalize.
4486 (fwprop): We always have loop info now.
4487 (gate_fwprop_addr): Remove.
4488 (pass_fwprop_addr): Use gate_fwprop as gate.
4489
4490 PR rtl-optimization/30841
4491 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
4492 df_chain_alloc): Call df_reorganize_refs unconditionally.
4493 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
4494 refs_organized to refs_organized_size.
4495 (df_ref_create_structure): Use refs_organized_size instead of
4496 bitmap_size if refs had been organized, and keep refs_organized_size
4497 up-to-date.
4498 * df.h (struct df_ref_info): Change refs_organized to
4499 refs_organized_size.
4500 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
4501 bitmap_size.
4502
9519f67b 45032007-03-19 Mark Mitchell <mark@codesourcery.com>
4504
4505 * except.c (output_function_exception_table): Do not reference the
4506 EH personality routine for functions that do not require an
4507 exception table.
4508
3d8785bc 45092007-03-20 Jakub Jelinek <jakub@redhat.com>
4510
aedd6e32 4511 PR c/30762
4512 * c-typeck.c (convert_for_assignment): Call comptypes for
4513 RECORD_TYPE or UNION_TYPE.
4514
3d8785bc 4515 PR inline-asm/30505
4516 * reload1.c (reload): Do invalid ASM checking after
4517 cleanup_subreg_operands.
4518
94ca4916 45192007-03-19 Jeff Law <law@redhat.com>
4520
4521 * tree-cfg.c (find_taken_edge): Tighten conditions for
4522 optimizing computed gotos.
4523
a8bb7059 45242007-03-19 Michael Matz <matz@suse.de>
4525
4526 * builtins.c (expand_builtin_sync_operation,
4527 expand_builtin_compare_and_swap,
4528 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
4529 correctly.
4530
4531 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
4532 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
4533 for operand 3.
4534
021a18ba 45352007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
4536
4537 * doc/tm.texi: Add brackets around the return type of
4538 TARGET_SECONDARY_RELOAD.
4539
d42c14ae 45402007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4541 Richard Guenther <rguenther@suse.de>
4542
4543 PR tree-optimization/31254
4544 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
4545 Use handled_component_p () where appropriate. Continue
4546 propagating into the rhs if we propagated into an INDIRECT_REF
4547 on the lhs.
4548
1f8e70bc 45492007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
4550
4551 * config/s390/s390.md (op_type attribute): RRR instruction type added.
4552 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
4553 (xde, xdee): Mode attributes adjusted to support DFP modes.
4554 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
4555 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
f8be92ce 4556 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
1f8e70bc 4557 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
4558 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
4559 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
f8be92ce 4560 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
1f8e70bc 4561 numbers.
4562 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
4563 "movsf"): Insn definitions removed.
4564 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
4565 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
4566 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
4567 definitions added.
4568 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
4569 "reload_in<mode>", "reload_out<mode>"): Expander added.
4570 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
4571 Expander removed.
4572
708607d5 45732007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
4574
4575 * config/s390/s390.md: Only non-functional changes. Renamed
4576 FPR mode macro to BFP all over the file.
4577
0c2edaa7 45782007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
4579
4580 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
4581 (op_type attribute): RRF instruction type added.
4582 (fT0): New mode attribute.
4583 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
4584 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
4585 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
4586 no secondary memory is needed when moving DFmode values between GPRs
4587 and FPRs.
4588
7818a08e 45892007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
4590
4591 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
4592 inverted and documentation adjusted.
4593 ("mhard-dfp", "msoft-dfp"): New options.
4594 * config/s390/s390.c (s390_handle_arch_option): New architecture
4595 switch: z9-ec.
4596 (override_options): Sanity checks for the new options added.
4597 * config.gcc: New architecture switch: z9-ec.
4598 * config/s390/s390.h (processor_flags): PF_DFP added.
4599 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
4600 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
4601 when the bit is NOT set so remove it from the defaults.
4602
3b55c036 46032007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
4604
4605 * genemit.c (main): Print include statement for dfp.h.
4606 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
4607 is not available.
4608
55d19f36 46092007-03-19 Hans-Peter Nilsson <hp@axis.com>
4610
4611 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
4612
99971c03 46132007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
4614
4615 PR target/31022
4616 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
4617 instead of PATTERN.
4618
c5559ed4 46192007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4620
4621 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
4622 attr_length_call, output_call, output_indirect_call): Cleanup
4623 formatting of targetm calls.
4624
fed42b71 46252007-03-19 Hans-Peter Nilsson <hp@axis.com>
4626
4627 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
4628
7d9f62cc 46292007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4630
4631 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
4632 reservation, bypass and anti-bypass descriptions for these instructions.
4633 Update move patterns.
4634 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
4635 TYPE_FPSTORE.
f8be92ce 4636
e817bf15 46372007-03-18 Dorit Nuzman <dorit@il.ibm.com>
4638
4639 * tree-vect-transform.c (get_initial_def_for_induction): Replace
4640 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
4641 (get_initial_def_for_reduction): Likewise.
4642
c1d4daae 46432007-03-16 Daniel Berlin <dberlin@dberlin.org>
4644
4645 Fix PR tree-optimization/29922
4646 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
4647 (get_representative): Removed.
4648 (value_dies_in_block_x): Update for rvuse removal.
4649 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
4650 (compute_antic_aux): Handle when PHI nodes appear in
f8be92ce 4651 non-single-successors.
c1d4daae 4652 (dump_bitmap_of_names): Removed.
4653 (compute_antic_safe): Renamed and removed rvuse calculation.
4654 Calculate only antic safe.
4655 (insert_into_preds_of_block): Remove assert.
4656 (execute_pre): Update for renamed functions.
4657 (defer_or_phi_translate_block): New function.
f8be92ce 4658
f6a0d06f 46592007-03-17 Kazu Hirata <kazu@codesourcery.com>
4660
4661 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
4662 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
4663 typos.
4664 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
4665 Follow spelling conventions.
4666
10f4b721 4667 * tree-data-ref.h: Remove the prototype for analyze_array.
4668
8d072f6d 46692007-03-17 Dorit Nuzman <dorit@il.ibm.com>
4670
4671 PR tree-optimization/31041
4672 * tree-vect-transform.c (get_initial_def_for_induction): Call
4673 force_gimple_operand.
f8be92ce 4674
51e779f4 46752007-03-17 Olga Golovanevsky <olga@il.ibm.com>
f8be92ce 4676
51e779f4 4677 * ipa-type-escape.c (look_for_casts) : Revert code to use
4678 handled_component_p due to ada test a-numaux.adb.
4679
f8df4da2 46802007-03-17 Kazu Hirata <kazu@codesourcery.com>
4681
4682 * final.c (final_scan_insn): Alter the condition of a
4683 conditional trap if we have nonstandard CC.
4684
95cd4953 46852007-03-16 Alexandre Oliva <aoliva@redhat.com>
4686
4687 * configure.ac: Remove excess quoting from asm line 0 test.
4688 * configure: Rebuilt.
4689
59dd8856 46902007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4691
4692 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
4693 * c-common.c (convert_and_check): Move warning logic to...
4694 (warnings_for_convert_and_check): ...here. Define.
4695 * c-common.h (warnings_for_convert_and_check): Declare.
f8be92ce 4696
ec94117d 46972007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4698
4699 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
4700 (output_call): Likewise.
4701
ac03c1db 47022007-03-16 Richard Sandiford <richard@codesourcery.com>
4703
4704 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
4705
e9204790 47062007-03-16 Richard Sandiford <richard@codesourcery.com>
4707
4708 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
4709
d53e2283 47102007-03-16 Uros Bizjak <ubizjak@gmail.com>
4711
4712 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
4713 opteron, athlon-64 and athlon-fx processor_alias_table entries.
4714
a75122be 47152007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
4716
4717 PR tree-optimization/31183
f8be92ce 4718 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
a75122be 4719 Use double_int instead of unsigned int for representing access_strides.
4720 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
4721
15ec875c 47222007-03-16 Richard Guenther <rguenther@suse.de>
4723
4724 PR tree-optimization/31146
4725 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
4726 to allow recursion of forward_propagate_addr_expr.
4727 (forward_propagate_addr_into_variable_array_index): Likewise.
4728 (forward_propagate_addr_expr): Likewise.
4729 (tree_ssa_forward_propagate_single_use_vars): Likewise.
4730 (forward_propagate_addr_expr_1): Recurse on simple copies
4731 instead of propagating into them. Do so for useless conversions
4732 as well.
4733 (forward_propagate_addr_expr): Clean up unused statements after
4734 recursion.
4735
3737e769 47362007-03-16 Richard Guenther <rguenther@suse.de>
4737
4738 * builtins.c (expand_builtin_cexpi): Use the right argument
4739 for the expansion via cexp.
4740
5c17a266 47412007-03-16 Alexandre Oliva <aoliva@redhat.com>
4742
4743 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
4744 * configure: Rebuilt.
4745
a357c7c2 47462007-03-16 Alexandre Oliva <aoliva@redhat.com>
4747
4748 PR debug/29906
4749 * dwarf2out.c (force_type_die): Adjust comment.
4750 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
4751
89c31ddb 47522007-03-15 DJ Delorie <dj@redhat.com>
4753
4754 * config/frv/predicates.md (minmax_operator): Don't check operands
4755 here.
4756
4b4ab846 47572007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
4758
4759 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
4760 Update constant estimates of number of iterations.
4761 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
4762 argument renamed to "realistic".
4763 (compute_estimated_nb_iterations): Removed.
4764 (record_niter_bound): New function.
4765 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
4766 call record_nonwrapping_iv with upper = false.
4767 (infer_loop_bounds_from_signedness): Pass upper argument to
4768 record_nonwrapping_iv.
4769 (estimate_numbers_of_iterations_loop): Do not call
4770 compute_estimated_nb_iterations. Record estimate based on profile
4771 information. Initialize the constant estimates of number of
4772 iterations.
4773 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
4774 estimates.
4775 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
4776 number of iterations is too small.
4777 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
4778 (EST_NOT_AVAILABLE): Removed.
4779 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
4780 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
4781 fields.
4782
8cd53b4f 47832007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
4784
4785 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
4786 Handle NE_EXPR guards.
4787
aa509316 47882007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4789
4790 PR c++/24924
4791 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
4792 Set also -pedantic-errors by default for the preprocessor unless
4793 -fpermissive is given.
f8be92ce 4794
fc0dfa6e 47952007-03-15 Richard Guenther <rguenther@suse.de>
4796
4797 PR middle-end/29719
4798 PR middle-end/31161
4799 * builtins.c (expand_builtin_cexpi): As a fallback if we
4800 don't have builtins for sincos or cexp create a function
4801 declaration for cexp and expand to a call to that.
4802 (expand_builtin_int_roundingfn): Always fall
4803 back to floor/ceil and its variants even if they may be
4804 not available.
4805
4aaec180 48062007-03-15 Steven Bosscher <steven@gcc.gnu.org>
4807
4808 PR middle-end/31159
4809 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
4810 jump tables, move the call to delete_dead_jumptables from here...
4811 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
4812 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
4813 don't allow merging of blocks that try_redirect_by_replacing_jump
4814 also does not handle when not optimizing.
4815
a1758a13 48162007-03-15 Uros Bizjak <ubizjak@gmail.com>
4817 Francois-Xavier Coudert <coudert@clipper.ens.fr>
4818
4819 * config/i386/i386.md (x86_sahf_1): Correctly handle
4820 HAVE_AS_IX86_SAHF.
4821
ed2235c8 48222007-03-15 Uros Bizjak <ubizjak@gmail.com>
4823
4824 PR target/31167
4825 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
4826 x86_64_general_operand as operand[2] predicate. Remove "iF"
4827 from operand constraints and use "e" constraint instead.
4828 (*subti3_1, *subti3_1 splitter): Ditto.
4829 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
4830 operand[1] predicate.
4831
28d4f5a1 48322007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
4833
4834 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
4835 arrays, multiply the access strides by the size of the sub-array.
4836 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
4837
735630ef 48382007-03-14 Uros Bizjak <ubizjak@gmail.com>
4839
4840 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
4841 the configured assembler supports the sahf mnemonic.
4842 * configure: Regenerate.
4843 * config.in: Regenerate.
4844
4845 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
4846 emit "sahf" or ".byte\t0x9e" as asm template.
4847
2b28c681 48482007-03-14 Michael Meissner <michael.meissner@amd.com>
4849
4850 PR 31018
4851 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
4852 option to replace hard coded TARGET_xxx in md file.
4853 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
4854 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
4855 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
4856 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
4857 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
4858 (X86_TUNE_NOT_VECTORMODE): Ditto.
4859 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
4860 (TUNE_AVOID_VECTOR_DECODE): Ditto.
4861 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
4862 (TUNE_SLOW_IMUL_IMM8): Ditto.
4863 (TUNE_MOVE_M1_VIA_OR): Ditto.
4864 (TUNE_NOT_UNPAIRABLE): Ditto.
4865 (TUNE_NOT_VECTORMODE): Ditto.
f8be92ce 4866
2b28c681 4867 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
4868 options.
4869
4870 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
4871 tuning options instead of hard coded TARGET_xxx.
4872 (fix ssemode peephole2's): Ditto.
4873 (imul peephole2's): Ditto.
4874 (movsi_or): Ditto.
4875 (movdi_or_rex64): Ditto.
4876 (move peephole2): Ditto.
4877 (not peephole2's): Ditto.
4878
ffe8fd56 48792007-03-14 Dirk Mueller <dmueller@suse.de>
4880
4881 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
4882 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
4883 * c-parser.c (c_parser_if_body): Always add an empty statement in case
4884 of empty body.
4885 * c-parser.c (c_parser_do_statement): Warn about empty body in
4886 do/while statement.
4887 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
4888 * doc/invoke.texi (-Wempty-body): Update documentation.
4889
f092582b 48902007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4891
4892 PR c/21438
4893 * c-common.h (warn_for_div_by_zero): Declare.
4894 * c-common.c (warn_for_div_by_zero): Define.
4895 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
4896 warning.
4897
72d997cb 48982007-03-14 Richard Sandiford <richard@codesourcery.com>
4899
4900 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
4901 to PREFIX and STANDARD_PREFIX.
4902
efe5559c 49032007-03-14 Richard Sandiford <richard@codesourcery.com>
4904 Phil Edwards <phil@codesourcery.com>
4905
4906 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
4907 (__gthread_once_t): Remove busy field for RTPs.
4908 (__GTHREAD_ONCE_INIT): Update accordingly.
4909
809bb1c7 49102007-03-14 Richard Sandiford <richard@codesourcery.com>
4911
4912 * doc/invoke.texi: Document VxWorks options.
4913
e85fd4fb 49142007-03-14 Uros Bizjak <ubizjak@gmail.com>
4915
4916 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
4917
fdf6266d 49182007-03-13 Seongbae Park <seongbae.park@gmail.com>
4919
4920 PR tree-optimization/30590
4921 * tree-nrv.c (tree_nrv): Check for the partial update of the
4922 return value.
4923
b6c1bd72 49242007-03-13 Alexandre Oliva <aoliva@redhat.com>
4925
4926 * flags.h (flag_random_seed): Remove declaration, in favor of...
4927 * toplev.h (get_random_seed, set_random_seed): ... these.
4928 * tree.c (get_file_function_name): Use the former.
4929 * opts.c (common_handle_option): Use the latter.
4930 * toplev.c
4931
3752d411 49322007-03-13 Steven Bosscher <steven@gcc.gnu.org>
4933
4934 PR middle-end/31127
4935 * cse.c (cse_find_path): Do not bail out if a basic block that
4936 we already visited now becomes part of a path that starts at a
4937 different basic block. Just disallow this, to make sure we
4938 visit each basic block at most once.
4939
24bc216e 49402007-03-13 Jan Hubicka <jh@suse.cz>
4941
4942 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
4943 when profile esitmate is present, calls with very low frequency are
4944 cold.
4945
a463eaea 49462007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
4947
4948 PR tree-optimization/30730
4949 PR tree-optimization/26900
4950 * tree-ssa-loop-niter.c: Include gmp.h.
4951 (bounds): New type.
4952 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
4953 split_to_var_and_offset, determine_value_range,
4954 bound_difference_of_offsetted_base, refine_bounds_using_guard,
4955 bound_difference, bounds_add, bounds_negate,
4956 number_of_iterations_ne_max, dump_affine_iv): New functions.
4957 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
4958 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
4959 difference of initial and final value of control iv to validate
4960 results.
4961 (number_of_iterations_cond): Add loop parameter. Determine bounds
4962 on the difference of the extremes of the control iv. Add dumps.
4963 (expand_simple_operations): Handle phi nodes.
4964 (simplify_using_initial_conditions): Do not record used conditions.
4965 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
4966 Do not set additional_info.
4967 (implies_nonnegative_p, implies_ge_p): Removed.
4968 (derive_constant_upper_bound): Do not use parameter `additional'.
4969 (record_estimate): Parameter `additional' removed. Parameter
4970 `i_bound' added. Do not call derive_constant_upper_bound.
4971 (record_nonwrapping_iv): Use derive_constant_upper_bound to
4972 bound the number of iterations estimate.
4973 (estimate_numbers_of_iterations_loop): Pass the estimate from
4974 the number of iterations analysis to record_estimate.
4975 * tree.h (multiple_of_p): Declare.
4976 * tree-scalar-evolution.c (expression_expensive_p): Removed.
4977 (scev_const_prop): Do not check expression_expensive_p.
4978 * fold-const.c (multiple_of_p): Exported.
4979 * double-int.c (double_int_mask): Exported.
4980 * double-int.h (double_int_mask): Declare.
4981 * tree-flow.h (struct tree_niter_desc): Removed additional_info
4982 field. Added max field.
4983
e238d235 49842007-03-13 David Taylor <taylor@candd.org>
4985
4986 PR driver/12448:
4987 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
4988 default -MQ.
4989
a0ece9f6 49902007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4991
73fc3472 4992 PR target/31123
a0ece9f6 4993 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
4994 two unamed patterns.
f8be92ce 4995
92a5086b 49962007-03-13 Uros Bizjak <ubizjak@gmail.com>
4997
4998 * config/i386/i386.opt (mcx16, msahf): New options.
4999 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
5000 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
5001
5002 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
5003 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
5004 Output -mcx16 and -msahf options when corresponding bit is set.
5005
5006 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
5007 and -msahf options.
5008
a8971681 50092007-03-13 Alexandre Oliva <aoliva@redhat.com>
5010
5011 * configure.ac: Test for assembler tolerance to # 0 "".
5012 * configure, config.in: Rebuilt.
5013 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
5014
c99afad8 50152007-03-13 Geoffrey Keating <geoffk@apple.com>
5016
5017 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
47adc701 5018
5019 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
5020 (handle_syscall): Handle direct system calls.
5021 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
5022
6713f0a0 50232007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
5024
5025 * doc/invoke.texi: Fix cpp.info cross-reference.
5026 * doc/passes.texi: Fix gcc.info cross-reference.
5027
f8494ea3 50282007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
5029
5030 PR tree-optimization/30835
5031 * lambda-code.c (can_convert_to_perfect_nest): Check whether
5032 bb_for_stmt is not NULL before accessing it.
5033
021d874e 50342007-03-12 Joseph Myers <joseph@codesourcery.com>
5035
5036 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
5037 some multilibs.
5038
16e1a7da 50392007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
5040
5041 PR 30635
5042 * doc/install.texi: Document --enable-stage1-languages
5043
154480b1 50442007-03-12 Steven Bosscher <steven@gcc.gnu.org>
5045
5046 * tree-pass.h (pass_into_cfg_layout_mode,
5047 pass_outof_cfg_layout_mode): Declare.
5048 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
5049 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
5050 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
5051 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
5052
aaafd660 50532007-03-12 Seongbae Park <seongbae.park@gmail.com>
5054
5055 * c-decl.c (warn_variable_length_array): New function.
5056 Refactored from grokdeclarator to handle warn_vla
5057 and handle unnamed array case.
5058 (grokdeclarator): Refactored VLA warning case.
5059 * c.opt (Wvla): New flag.
974bc84e 5060 * doc/invoke.texi (Wvla): New warning.
aaafd660 5061
cc2af183 50622007-03-12 Richard Henderson <rth@redhat.com>
5063
5064 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
5065 (TARGET_SECTION_TYPE_FLAGS): New.
5066
0b769e4a 50672007-03-12 Richard Henderson <rth@redhat.com>
5068
f8494ea3 5069 * config/darwin.c (machopic_reloc_rw_mask): New.
5070 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
5071 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
0b769e4a 5072
a8bb4f69 50732007-03-12 Mark Mitchell <mark@codesourcery.com>
5074
5075 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
5076 * cppdefault.h (cpp_PREFIX): Document.
5077 (cpp_PREFIX_len): Likewise.
5078 (cpp_EXEC_PREFIX): New variable.
5079 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
5080 * c-incpath.c (add_standard_paths): Correct logic for relocating
5081 paths within prefix.
5082
d3fcb417 50832007-03-12 Uros Bizjak <ubizjak@gmail.com>
5084
5085 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
5086 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
5087 mode macro.
5088 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
5089 fix_truncdfdi_sse using SSEMODEF mode macro.
5090 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
5091 fix_truncdfsi_sse using SSEMODEF mode macro.
5092 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
5093 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
5094
ac2799d5 50952007-03-12 Richard Sandiford <richard@codesourcery.com>
5096
5097 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
5098 elfos.h to tm_file.
5099
96b038b0 51002007-03-12 Olga Golovanevsky <olga@il.ibm.com>
f8be92ce 5101
96b038b0 5102 * tree.h : Add multiple_of_p declaration.
f8be92ce 5103 * fold-const.c (multiple_of_p): Make multiple_of_p public.
96b038b0 5104 * ipa-type-escape.c (results_of_malloc): Redundant.
5105 (visited_stmts): New. Visited stmt for walk_use_def_chains.
5106 (cast_type): Extended with new members.
5107 (check_cast): Returns cast_type.
5108 (cast): New structure for data of walk_use_def_chains.
5109 (is_malloc_result, is_cast_from_non_pointer_1,
f8be92ce 5110 is_cast_from_non_pointer,
96b038b0 5111 is_array_access_through_pointer_and_index): New functions.
5112 (look_for_casts): Returns cast types.
5113 (check_call): Returns void.
5114 (okay_pointer_operation): Use support of pointer plus index,
5115 pointer plus constant and allow all multiplications.
f8be92ce 5116
62065c0b 51172007-03-11 Richard Guenther <rguenther@suse.de>
5118
5119 PR tree-optimization/31115
5120 * tree-vrp.c (extract_range_from_binary_expr): Make sure
5121 the shift count is positive and non-anti-range for RSHIFT_EXPR.
5122 A shift count of zero is not special as with *_DIV_EXPR.
5123 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
5124 direction.
5125
659753d3 51262007-03-11 Ian Lance Taylor <iant@google.com>
5127
5128 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
5129 the *_DIV_EXPR codes correctly with overflow infinities.
5130
72443169 51312007-03-11 Ira Rosen <irar@il.ibm.com>
5132
f8be92ce 5133 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
72443169 5134 indicate success/failure of the analysis. Add negation to subtrahend
5135 in case of subtraction. Fail if both operands contain constants.
5136 (create_data_ref): Fail if analyze_offset fails.
5137
4209e9f9 51382007-03-11 Uros Bizjak <ubizjak@gmail.com>
5139
5140 * config/i386/i386.md (frndintxf2): Rename to ...
5141 (rintxf2): ... this. Remove expander having same name.
5142 (rintsf2, rintdf2): Implement using SSEMODEF macro.
5143 (roundsf2, rounddf2): Ditto.
5144 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
5145 (lround<mode>di2, lround<mode>si2): Ditto.
5146
db1c50be 51472007-03-11 Steven Bosscher <steven@gcc.gnu.org>
5148
5149 * lower-subreg.c: Include except.h.
5150 (decompose_multiword_subregs): Verify that the only control flow
5151 insns we can split are loads to multi-words pseudos.
5152 Handle breaking such blocks after splitting, instead of calling
5153 find_many_sub_basic_blocks.
5154
5155 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
5156 on the new basic block. Add a lengthy comment explaining why we
5157 thought this was necessary.
5158 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
5159
6783c055 51602007-03-10 Mark Mitchell <mark@codesourcery.com>
5161
752d462d 5162 PR c++/30924
6783c055 5163 * tree.c (walk_type_fields): Recurse into the element type of
5164 ARRAY_TYPEs if there is a pointer set.
5165
e6978426 51662007-03-10 Dirk Mueller <dmueller@suse.de>
5167
5168 * c-common.c (warn_logical_operator): Fix condition.
5169
c6134e23 5170