vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
[gcc.git] / gcc / ChangeLog
1 2007-03-21 Richard Sandiford <richard@codesourcery.com>
2
3 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
4 (VXWORKS_OS_CPP_BUILTINS): Define.
5 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
6 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
7
8 2007-03-21 Richard Sandiford <richard@codesourcery.com>
9
10 * rtl.h (constant_pool_reference_p): Delete.
11 (find_constant_src): Declare.
12 * rtlanal.c (find_constant_src): New function.
13 * simplify-rtx.c (constant_pool_reference_p): Delete.
14 * config/i386/i386.md: Use find_constant_src instead of
15 constant_pool_reference_p/avoid_constant_pool_reference pairs.
16
17 2007-03-21 Richard Sandiford <richard@codesourcery.com>
18
19 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
20 * c-cppbuiltin.c (c_cpp_builtins): Define them.
21
22 2007-03-20 Mark Mitchell <mark@codesourcery.com>
23
24 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
25 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
26 (arm_elf_asm_constructor): Use it.
27 (arm_elf_asm_destructor): New function.
28
29 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
30
31 * jump.c (mark_jump_label): Treat SEQUENCE specially.
32
33 2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
34
35 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
36
37 2007-03-19 Andrew Haley <aph@redhat.com>
38
39 PR tree-optimization/31264
40 * tree-vrp.c (register_edge_assert_for_1): Don't look though
41 VIEW_CONVERT_EXPRs.
42
43 2007-03-19 Paolo Bonzini <bonzini@gnu.org>
44
45 PR rtl-optimization/30907
46 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
47 (fwprop_init): Always call loop_optimizer_initialize.
48 (fwprop_done): Always call loop_optimizer_finalize.
49 (fwprop): We always have loop info now.
50 (gate_fwprop_addr): Remove.
51 (pass_fwprop_addr): Use gate_fwprop as gate.
52
53 PR rtl-optimization/30841
54 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
55 df_chain_alloc): Call df_reorganize_refs unconditionally.
56 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
57 refs_organized to refs_organized_size.
58 (df_ref_create_structure): Use refs_organized_size instead of
59 bitmap_size if refs had been organized, and keep refs_organized_size
60 up-to-date.
61 * df.h (struct df_ref_info): Change refs_organized to
62 refs_organized_size.
63 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
64 bitmap_size.
65
66 2007-03-19 Mark Mitchell <mark@codesourcery.com>
67
68 * except.c (output_function_exception_table): Do not reference the
69 EH personality routine for functions that do not require an
70 exception table.
71
72 2007-03-20 Jakub Jelinek <jakub@redhat.com>
73
74 PR c/30762
75 * c-typeck.c (convert_for_assignment): Call comptypes for
76 RECORD_TYPE or UNION_TYPE.
77
78 PR inline-asm/30505
79 * reload1.c (reload): Do invalid ASM checking after
80 cleanup_subreg_operands.
81
82 2007-03-19 Jeff Law <law@redhat.com>
83
84 * tree-cfg.c (find_taken_edge): Tighten conditions for
85 optimizing computed gotos.
86
87 2007-03-19 Michael Matz <matz@suse.de>
88
89 * builtins.c (expand_builtin_sync_operation,
90 expand_builtin_compare_and_swap,
91 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
92 correctly.
93
94 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
95 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
96 for operand 3.
97
98 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
99
100 * doc/tm.texi: Add brackets around the return type of
101 TARGET_SECONDARY_RELOAD.
102
103 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
104 Richard Guenther <rguenther@suse.de>
105
106 PR tree-optimization/31254
107 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
108 Use handled_component_p () where appropriate. Continue
109 propagating into the rhs if we propagated into an INDIRECT_REF
110 on the lhs.
111
112 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
113
114 * config/s390/s390.md (op_type attribute): RRR instruction type added.
115 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
116 (xde, xdee): Mode attributes adjusted to support DFP modes.
117 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
118 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
119 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
120 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
121 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
122 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
123 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
124 numbers.
125 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
126 "movsf"): Insn definitions removed.
127 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
128 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
129 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
130 definitions added.
131 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
132 "reload_in<mode>", "reload_out<mode>"): Expander added.
133 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
134 Expander removed.
135
136 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
137
138 * config/s390/s390.md: Only non-functional changes. Renamed
139 FPR mode macro to BFP all over the file.
140
141 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
142
143 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
144 (op_type attribute): RRF instruction type added.
145 (fT0): New mode attribute.
146 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
147 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
148 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
149 no secondary memory is needed when moving DFmode values between GPRs
150 and FPRs.
151
152 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
153
154 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
155 inverted and documentation adjusted.
156 ("mhard-dfp", "msoft-dfp"): New options.
157 * config/s390/s390.c (s390_handle_arch_option): New architecture
158 switch: z9-ec.
159 (override_options): Sanity checks for the new options added.
160 * config.gcc: New architecture switch: z9-ec.
161 * config/s390/s390.h (processor_flags): PF_DFP added.
162 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
163 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
164 when the bit is NOT set so remove it from the defaults.
165
166 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
167
168 * genemit.c (main): Print include statement for dfp.h.
169 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
170 is not available.
171
172 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
173
174 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
175
176 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
177
178 PR target/31022
179 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
180 instead of PATTERN.
181
182 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
183
184 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
185 attr_length_call, output_call, output_indirect_call): Cleanup
186 formatting of targetm calls.
187
188 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
189
190 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
191
192 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
193
194 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
195 reservation, bypass and anti-bypass descriptions for these instructions.
196 Update move patterns.
197 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
198 TYPE_FPSTORE.
199
200 2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
201
202 * tree-vect-transform.c (get_initial_def_for_induction): Replace
203 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
204 (get_initial_def_for_reduction): Likewise.
205
206 2007-03-16 Daniel Berlin <dberlin@dberlin.org>
207
208 Fix PR tree-optimization/29922
209 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
210 (get_representative): Removed.
211 (value_dies_in_block_x): Update for rvuse removal.
212 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
213 (compute_antic_aux): Handle when PHI nodes appear in
214 non-single-successors.
215 (dump_bitmap_of_names): Removed.
216 (compute_antic_safe): Renamed and removed rvuse calculation.
217 Calculate only antic safe.
218 (insert_into_preds_of_block): Remove assert.
219 (execute_pre): Update for renamed functions.
220 (defer_or_phi_translate_block): New function.
221
222 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
223
224 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
225 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
226 typos.
227 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
228 Follow spelling conventions.
229
230 * tree-data-ref.h: Remove the prototype for analyze_array.
231
232 2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
233
234 PR tree-optimization/31041
235 * tree-vect-transform.c (get_initial_def_for_induction): Call
236 force_gimple_operand.
237
238 2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
239
240 * ipa-type-escape.c (look_for_casts) : Revert code to use
241 handled_component_p due to ada test a-numaux.adb.
242
243 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
244
245 * final.c (final_scan_insn): Alter the condition of a
246 conditional trap if we have nonstandard CC.
247
248 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
249
250 * configure.ac: Remove excess quoting from asm line 0 test.
251 * configure: Rebuilt.
252
253 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
254
255 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
256 * c-common.c (convert_and_check): Move warning logic to...
257 (warnings_for_convert_and_check): ...here. Define.
258 * c-common.h (warnings_for_convert_and_check): Declare.
259
260 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
261
262 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
263 (output_call): Likewise.
264
265 2007-03-16 Richard Sandiford <richard@codesourcery.com>
266
267 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
268
269 2007-03-16 Richard Sandiford <richard@codesourcery.com>
270
271 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
272
273 2007-03-16 Uros Bizjak <ubizjak@gmail.com>
274
275 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
276 opteron, athlon-64 and athlon-fx processor_alias_table entries.
277
278 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
279
280 PR tree-optimization/31183
281 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
282 Use double_int instead of unsigned int for representing access_strides.
283 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
284
285 2007-03-16 Richard Guenther <rguenther@suse.de>
286
287 PR tree-optimization/31146
288 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
289 to allow recursion of forward_propagate_addr_expr.
290 (forward_propagate_addr_into_variable_array_index): Likewise.
291 (forward_propagate_addr_expr): Likewise.
292 (tree_ssa_forward_propagate_single_use_vars): Likewise.
293 (forward_propagate_addr_expr_1): Recurse on simple copies
294 instead of propagating into them. Do so for useless conversions
295 as well.
296 (forward_propagate_addr_expr): Clean up unused statements after
297 recursion.
298
299 2007-03-16 Richard Guenther <rguenther@suse.de>
300
301 * builtins.c (expand_builtin_cexpi): Use the right argument
302 for the expansion via cexp.
303
304 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
305
306 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
307 * configure: Rebuilt.
308
309 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
310
311 PR debug/29906
312 * dwarf2out.c (force_type_die): Adjust comment.
313 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
314
315 2007-03-15 DJ Delorie <dj@redhat.com>
316
317 * config/frv/predicates.md (minmax_operator): Don't check operands
318 here.
319
320 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
321
322 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
323 Update constant estimates of number of iterations.
324 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
325 argument renamed to "realistic".
326 (compute_estimated_nb_iterations): Removed.
327 (record_niter_bound): New function.
328 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
329 call record_nonwrapping_iv with upper = false.
330 (infer_loop_bounds_from_signedness): Pass upper argument to
331 record_nonwrapping_iv.
332 (estimate_numbers_of_iterations_loop): Do not call
333 compute_estimated_nb_iterations. Record estimate based on profile
334 information. Initialize the constant estimates of number of
335 iterations.
336 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
337 estimates.
338 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
339 number of iterations is too small.
340 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
341 (EST_NOT_AVAILABLE): Removed.
342 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
343 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
344 fields.
345
346 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
347
348 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
349 Handle NE_EXPR guards.
350
351 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
352
353 PR c++/24924
354 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
355 Set also -pedantic-errors by default for the preprocessor unless
356 -fpermissive is given.
357
358 2007-03-15 Richard Guenther <rguenther@suse.de>
359
360 PR middle-end/29719
361 PR middle-end/31161
362 * builtins.c (expand_builtin_cexpi): As a fallback if we
363 don't have builtins for sincos or cexp create a function
364 declaration for cexp and expand to a call to that.
365 (expand_builtin_int_roundingfn): Always fall
366 back to floor/ceil and its variants even if they may be
367 not available.
368
369 2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
370
371 PR middle-end/31159
372 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
373 jump tables, move the call to delete_dead_jumptables from here...
374 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
375 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
376 don't allow merging of blocks that try_redirect_by_replacing_jump
377 also does not handle when not optimizing.
378
379 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
380 Francois-Xavier Coudert <coudert@clipper.ens.fr>
381
382 * config/i386/i386.md (x86_sahf_1): Correctly handle
383 HAVE_AS_IX86_SAHF.
384
385 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
386
387 PR target/31167
388 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
389 x86_64_general_operand as operand[2] predicate. Remove "iF"
390 from operand constraints and use "e" constraint instead.
391 (*subti3_1, *subti3_1 splitter): Ditto.
392 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
393 operand[1] predicate.
394
395 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
396
397 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
398 arrays, multiply the access strides by the size of the sub-array.
399 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
400
401 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
402
403 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
404 the configured assembler supports the sahf mnemonic.
405 * configure: Regenerate.
406 * config.in: Regenerate.
407
408 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
409 emit "sahf" or ".byte\t0x9e" as asm template.
410
411 2007-03-14 Michael Meissner <michael.meissner@amd.com>
412
413 PR 31018
414 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
415 option to replace hard coded TARGET_xxx in md file.
416 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
417 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
418 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
419 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
420 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
421 (X86_TUNE_NOT_VECTORMODE): Ditto.
422 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
423 (TUNE_AVOID_VECTOR_DECODE): Ditto.
424 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
425 (TUNE_SLOW_IMUL_IMM8): Ditto.
426 (TUNE_MOVE_M1_VIA_OR): Ditto.
427 (TUNE_NOT_UNPAIRABLE): Ditto.
428 (TUNE_NOT_VECTORMODE): Ditto.
429
430 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
431 options.
432
433 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
434 tuning options instead of hard coded TARGET_xxx.
435 (fix ssemode peephole2's): Ditto.
436 (imul peephole2's): Ditto.
437 (movsi_or): Ditto.
438 (movdi_or_rex64): Ditto.
439 (move peephole2): Ditto.
440 (not peephole2's): Ditto.
441
442 2007-03-14 Dirk Mueller <dmueller@suse.de>
443
444 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
445 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
446 * c-parser.c (c_parser_if_body): Always add an empty statement in case
447 of empty body.
448 * c-parser.c (c_parser_do_statement): Warn about empty body in
449 do/while statement.
450 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
451 * doc/invoke.texi (-Wempty-body): Update documentation.
452
453 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
454
455 PR c/21438
456 * c-common.h (warn_for_div_by_zero): Declare.
457 * c-common.c (warn_for_div_by_zero): Define.
458 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
459 warning.
460
461 2007-03-14 Richard Sandiford <richard@codesourcery.com>
462
463 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
464 to PREFIX and STANDARD_PREFIX.
465
466 2007-03-14 Richard Sandiford <richard@codesourcery.com>
467 Phil Edwards <phil@codesourcery.com>
468
469 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
470 (__gthread_once_t): Remove busy field for RTPs.
471 (__GTHREAD_ONCE_INIT): Update accordingly.
472
473 2007-03-14 Richard Sandiford <richard@codesourcery.com>
474
475 * doc/invoke.texi: Document VxWorks options.
476
477 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
478
479 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
480
481 2007-03-13 Seongbae Park <seongbae.park@gmail.com>
482
483 PR tree-optimization/30590
484 * tree-nrv.c (tree_nrv): Check for the partial update of the
485 return value.
486
487 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
488
489 * flags.h (flag_random_seed): Remove declaration, in favor of...
490 * toplev.h (get_random_seed, set_random_seed): ... these.
491 * tree.c (get_file_function_name): Use the former.
492 * opts.c (common_handle_option): Use the latter.
493 * toplev.c
494
495 2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
496
497 PR middle-end/31127
498 * cse.c (cse_find_path): Do not bail out if a basic block that
499 we already visited now becomes part of a path that starts at a
500 different basic block. Just disallow this, to make sure we
501 visit each basic block at most once.
502
503 2007-03-13 Jan Hubicka <jh@suse.cz>
504
505 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
506 when profile esitmate is present, calls with very low frequency are
507 cold.
508
509 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
510
511 PR tree-optimization/30730
512 PR tree-optimization/26900
513 * tree-ssa-loop-niter.c: Include gmp.h.
514 (bounds): New type.
515 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
516 split_to_var_and_offset, determine_value_range,
517 bound_difference_of_offsetted_base, refine_bounds_using_guard,
518 bound_difference, bounds_add, bounds_negate,
519 number_of_iterations_ne_max, dump_affine_iv): New functions.
520 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
521 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
522 difference of initial and final value of control iv to validate
523 results.
524 (number_of_iterations_cond): Add loop parameter. Determine bounds
525 on the difference of the extremes of the control iv. Add dumps.
526 (expand_simple_operations): Handle phi nodes.
527 (simplify_using_initial_conditions): Do not record used conditions.
528 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
529 Do not set additional_info.
530 (implies_nonnegative_p, implies_ge_p): Removed.
531 (derive_constant_upper_bound): Do not use parameter `additional'.
532 (record_estimate): Parameter `additional' removed. Parameter
533 `i_bound' added. Do not call derive_constant_upper_bound.
534 (record_nonwrapping_iv): Use derive_constant_upper_bound to
535 bound the number of iterations estimate.
536 (estimate_numbers_of_iterations_loop): Pass the estimate from
537 the number of iterations analysis to record_estimate.
538 * tree.h (multiple_of_p): Declare.
539 * tree-scalar-evolution.c (expression_expensive_p): Removed.
540 (scev_const_prop): Do not check expression_expensive_p.
541 * fold-const.c (multiple_of_p): Exported.
542 * double-int.c (double_int_mask): Exported.
543 * double-int.h (double_int_mask): Declare.
544 * tree-flow.h (struct tree_niter_desc): Removed additional_info
545 field. Added max field.
546
547 2007-03-13 David Taylor <taylor@candd.org>
548
549 PR driver/12448:
550 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
551 default -MQ.
552
553 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
554
555 PR target/31123
556 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
557 two unamed patterns.
558
559 2007-03-13 Uros Bizjak <ubizjak@gmail.com>
560
561 * config/i386/i386.opt (mcx16, msahf): New options.
562 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
563 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
564
565 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
566 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
567 Output -mcx16 and -msahf options when corresponding bit is set.
568
569 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
570 and -msahf options.
571
572 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
573
574 * configure.ac: Test for assembler tolerance to # 0 "".
575 * configure, config.in: Rebuilt.
576 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
577
578 2007-03-13 Geoffrey Keating <geoffk@apple.com>
579
580 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
581
582 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
583 (handle_syscall): Handle direct system calls.
584 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
585
586 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
587
588 * doc/invoke.texi: Fix cpp.info cross-reference.
589 * doc/passes.texi: Fix gcc.info cross-reference.
590
591 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
592
593 PR tree-optimization/30835
594 * lambda-code.c (can_convert_to_perfect_nest): Check whether
595 bb_for_stmt is not NULL before accessing it.
596
597 2007-03-12 Joseph Myers <joseph@codesourcery.com>
598
599 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
600 some multilibs.
601
602 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
603
604 PR 30635
605 * doc/install.texi: Document --enable-stage1-languages
606
607 2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
608
609 * tree-pass.h (pass_into_cfg_layout_mode,
610 pass_outof_cfg_layout_mode): Declare.
611 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
612 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
613 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
614 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
615
616 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
617
618 * c-decl.c (warn_variable_length_array): New function.
619 Refactored from grokdeclarator to handle warn_vla
620 and handle unnamed array case.
621 (grokdeclarator): Refactored VLA warning case.
622 * c.opt (Wvla): New flag.
623 * doc/invoke.texi (Wvla): New warning.
624
625 2007-03-12 Richard Henderson <rth@redhat.com>
626
627 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
628 (TARGET_SECTION_TYPE_FLAGS): New.
629
630 2007-03-12 Richard Henderson <rth@redhat.com>
631
632 * config/darwin.c (machopic_reloc_rw_mask): New.
633 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
634 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
635
636 2007-03-12 Mark Mitchell <mark@codesourcery.com>
637
638 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
639 * cppdefault.h (cpp_PREFIX): Document.
640 (cpp_PREFIX_len): Likewise.
641 (cpp_EXEC_PREFIX): New variable.
642 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
643 * c-incpath.c (add_standard_paths): Correct logic for relocating
644 paths within prefix.
645
646 2007-03-12 Uros Bizjak <ubizjak@gmail.com>
647
648 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
649 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
650 mode macro.
651 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
652 fix_truncdfdi_sse using SSEMODEF mode macro.
653 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
654 fix_truncdfsi_sse using SSEMODEF mode macro.
655 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
656 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
657
658 2007-03-12 Richard Sandiford <richard@codesourcery.com>
659
660 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
661 elfos.h to tm_file.
662
663 2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
664
665 * tree.h : Add multiple_of_p declaration.
666 * fold-const.c (multiple_of_p): Make multiple_of_p public.
667 * ipa-type-escape.c (results_of_malloc): Redundant.
668 (visited_stmts): New. Visited stmt for walk_use_def_chains.
669 (cast_type): Extended with new members.
670 (check_cast): Returns cast_type.
671 (cast): New structure for data of walk_use_def_chains.
672 (is_malloc_result, is_cast_from_non_pointer_1,
673 is_cast_from_non_pointer,
674 is_array_access_through_pointer_and_index): New functions.
675 (look_for_casts): Returns cast types.
676 (check_call): Returns void.
677 (okay_pointer_operation): Use support of pointer plus index,
678 pointer plus constant and allow all multiplications.
679
680 2007-03-11 Richard Guenther <rguenther@suse.de>
681
682 PR tree-optimization/31115
683 * tree-vrp.c (extract_range_from_binary_expr): Make sure
684 the shift count is positive and non-anti-range for RSHIFT_EXPR.
685 A shift count of zero is not special as with *_DIV_EXPR.
686 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
687 direction.
688
689 2007-03-11 Ian Lance Taylor <iant@google.com>
690
691 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
692 the *_DIV_EXPR codes correctly with overflow infinities.
693
694 2007-03-11 Ira Rosen <irar@il.ibm.com>
695
696 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
697 indicate success/failure of the analysis. Add negation to subtrahend
698 in case of subtraction. Fail if both operands contain constants.
699 (create_data_ref): Fail if analyze_offset fails.
700
701 2007-03-11 Uros Bizjak <ubizjak@gmail.com>
702
703 * config/i386/i386.md (frndintxf2): Rename to ...
704 (rintxf2): ... this. Remove expander having same name.
705 (rintsf2, rintdf2): Implement using SSEMODEF macro.
706 (roundsf2, rounddf2): Ditto.
707 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
708 (lround<mode>di2, lround<mode>si2): Ditto.
709
710 2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
711
712 * lower-subreg.c: Include except.h.
713 (decompose_multiword_subregs): Verify that the only control flow
714 insns we can split are loads to multi-words pseudos.
715 Handle breaking such blocks after splitting, instead of calling
716 find_many_sub_basic_blocks.
717
718 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
719 on the new basic block. Add a lengthy comment explaining why we
720 thought this was necessary.
721 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
722
723 2007-03-10 Mark Mitchell <mark@codesourcery.com>
724
725 PR c++/30924
726 * tree.c (walk_type_fields): Recurse into the element type of
727 ARRAY_TYPEs if there is a pointer set.
728
729 2007-03-10 Dirk Mueller <dmueller@suse.de>
730
731 * c-common.c (warn_logical_operator): Fix condition.
732
733 2007-03-10 Tobias Schlüter <tobi@gcc.gnu.org>
734
735 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
736 quotation mark.
737 * config/darwin.c (machopic_select_section): Remove superfluous
738 argument in call to categorize_decl_for_section. Remove unused
739 variable shlib.
740
741 2007-03-10 Joseph Myers <joseph@codesourcery.com>
742
743 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
744 defined.
745 * configure: Regenerate.
746
747 2007-03-10 Uros Bizjak <ubizjak@gmail.com>
748
749 PR target/31101
750 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
751 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
752 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
753 Add LABEL_NUSES to emitted label.
754 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
755 branch probability value to emitted jump insn.
756 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
757 Do not check life information and do not re-arrange input operands
758 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
759
760 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
761
762 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
763 the change of decode_asm_operands.
764
765 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
766
767 * mode-switching.c (create_pre_exit): Skip blockage insn.
768
769 2007-03-09 Diego Novillo <dnovillo@redhat.com>
770
771 * tree-pass.h (TODO_update_smt_usage): Remove.
772 Update all users.
773 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
774 argument SOME.
775 Update all users.
776
777 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
778
779 * pa.c (attr_length_call): Revise condition for long pc-relative branch.
780 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
781 calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on
782 SOM target.
783
784 2007-03-09 Geoffrey Keating <geoffk@apple.com>
785
786 * gcc.c: Document %{, in big comment at top.
787 (input_suffix_matches): Remove special handling for .s and
788 .S.
789 (input_spec_matches): New.
790 (handle_braces): Handle %{,.
791 (validate_switches): ',' indicates a value which is not a switch.
792 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
793 to detect assembler input.
794 * config/i386/sol2.h (CPP_SPEC): Likewise.
795 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
796 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
797 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
798 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
799 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
800 -m64 causes deployment target to default to 10.5.
801 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
802
803 2007-03-09 Richard Henderson <rth@redhat.com>
804
805 PR target/26090
806 * target.h (targetm.asm.out.reloc_rw_mask): New.
807 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
808 (TARGET_ASM_OUT): Use it.
809 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
810 * varasm.c (categorize_decl_for_section): Remove shlib argument;
811 use the new reloc_rw_mask target hook instead.
812 (default_section_type_flags_1): Merge into...
813 (default_section_type_flags): ... here.
814 (decl_readonly_section_1): Merge into...
815 (decl_readonly_section): ... here.
816 (default_elf_select_section_1): Merge into...
817 (default_elf_select_section): ... here.
818 (default_unique_section_1): Merge into...
819 (default_unique_section): ... here.
820 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
821 (default_select_rtx_section): Use it.
822 (default_elf_select_rtx_section): Likewise.
823 * output.h: Update to match.
824 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
825 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
826 (TARGET_ASM_RELOC_RW_MASK): New.
827 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
828 to categorize_decl_for_section.
829 (x86_64_elf_unique_section): Likewise.
830 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
831 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
832 (TARGET_ASM_RELOC_RW_MASK): New.
833 * config/ia64/ia64.c (ia64_rwreloc_select_section,
834 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
835 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
836 (TARGET_RWRELOC): Remove.
837 (ia64_section_type_flags): Adjust call to default_section_type_flags.
838 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
839 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
840 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
841 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
842 (rs6000_xcoff_select_section): Use decl_readonly_section.
843 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
844 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
845 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
846 (TARGET_SECTION_TYPE_FLAGS): Remove.
847 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
848
849 2007-03-09 Roger Sayle <roger@eyesopen.com>
850
851 * fold-const.c (fold_comparison): Remove compile-time evaluation of
852 complex constant equality/inequality comparisons for here.
853 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
854 known at compile-time or can be simplified to a scalar comparison.
855 (fold_relational_const): Move compile-time evaluation of complex
856 constant equality/inequality comparisons to here.
857
858 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
859
860 PR rtl-optimization/30643
861 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
862 dest_addr_elt.
863 (fold_rtx): Recurse, like before 2006-11-03.
864
865 2007-03-09 DJ Delorie <dj@redhat.com>
866
867 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
868 m32c-pragma.o.
869
870 2007-03-09 Aldy Hernandez <aldyh@redhat.com>
871
872 PR tree-optimization/30375
873 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
874 LHS of statements is not the same.
875 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
876
877 2007-03-09 Chao-ying Fu <fu@mips.com>
878
879 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
880 REV 2.
881 * doc/invoke.texi (-mdspr2): Document new option.
882 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
883 New unspec for DSP REV 2.
884 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
885 these instructions are extended in DSP REV 2.
886 (mips-dspr2.md): Include.
887 * config/mips/mips.opt (mdspr2): New option.
888 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
889 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
890 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
891 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
892 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
893 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
894 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
895 and 2 builtins.
896 (bdesc_map): Add one field of unsupported_target_flags.
897 (bdesc_arrays): Update entries to have extra fields. Add
898 dsp_32only_bdesc.
899 (mips_init_builtins): Initialize new function types.
900 Check unsupported_target_fileds to filter out builtins.
901 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
902 TARGET_DSPR2.
903 (ASM_SPEC): Pass mdspr2 to the assembler.
904 * config/mips/mips-dspr2.md: New file.
905
906 2007-03-09 Sa Liu <saliu@de.ibm.com>
907
908 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
909
910 2007-03-09 Ian Lance Taylor <iant@google.com>
911
912 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
913 argument) like -Wstrict-overflow=2.
914 * doc/invoke.texi (Warning Options): Update documentation.
915
916 2007-03-09 Dirk Mueller <dmueller@suse.de>
917
918 PR c++/17946
919 * doc/invoke.texi (-Wlogical-op): Document.
920 * common.opt (-Wlogical-op): New.
921 * c-common.h (warn_logical_operator): Declare.
922 * c-common.c (warn_logical_operator): Define.
923 * c-typeck.c (parser_build_binary_op): Call
924 warn_logical_operator.
925
926 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
927
928 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
929 * final.c (final_scan_insn): Test for non-"" file name.
930
931 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
932
933 * doc/loop.texi: Document the Omega linear constraints solver.
934 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
935 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
936 omega-hash-table-size, omega-max-keys, and
937 omega-eliminate-redundant-constraints.
938 * tree-pass.h (pass_check_data_deps): Declared.
939 * omega.c: New.
940 * omega.h: New.
941 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
942 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
943 pass_check_data_deps): New.
944 * tree-data-ref.c (init_data_ref): Remove declaration.
945 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
946 (analyze_array): Renamed init_array_ref, move up initializations.
947 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
948 Removed arguments that are set to NULL.
949 (analyze_indirect_ref): Correct indentation, correct call to
950 init_pointer_ref.
951 (object_analysis): Call init_array_ref instead of analyze_array.
952 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
953 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
954 of DR_ACCESS_FNS_ADDR.
955 (init_omega_eq_with_af, omega_extract_distance_vectors,
956 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
957 ddr_consistent_p): New.
958 (compute_affine_dependence): Check consistency of ddrs when
959 flag_check_data_deps is passed.
960 (analyze_all_data_dependences): Uncomment.
961 (tree_check_data_deps): New.
962 * tree-data-ref.h: Include omega.h.
963 (DR_ACCESS_FNS_ADDR): Removed.
964 (data_dependence_relation): Add inner_loop.
965 (DDR_INNER_LOOP): New.
966 * common.opt (fcheck-data-deps): New.
967 * tree-flow.h (tree_check_data_deps): Declare.
968 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
969 (OBJS-common): Depend on omega.o.
970 (omega.o): Define.
971 * passes.c (pass_check_data_deps): Scheduled.
972 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
973 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
974 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
975 PARAM_VECT_MAX_VERSION_CHECKS,
976 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
977
978 2007-03-09 Richard Guenther <rguenther@suse.de>
979
980 PR tree-optimization/30904
981 PR middle-end/31058
982 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
983 the same way as *_DIV_EXPR.
984
985 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
986
987 * recog.c (decode_asm_operands): No mixed declarations and code.
988
989 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
990
991 * rtl.def (ASM_INPUT): Add location.
992 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
993 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
994 (decode_asm_operands): Add loc operand.
995 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
996 * stmt.c (expand_asm): Rename to...
997 (expand_asm_loc): ... this. Add locus argument. Pass it on to
998 gen_rtx_ASM_INPUT_loc.
999 (expand_asm_expr): Adjust.
1000 * recog.c (decode_asm_operands): Add loc operand.
1001 (check_asm_operands, extract_insn): Adjust.
1002 * reload1.c (maybe_fix_stack_asms): Likewise.
1003 * final.c (asm_insn_count): Likewise.
1004 (final_scan_insn): Output # line before and after asm.
1005
1006 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
1007
1008 * tree-ssa-structalias.c (variable_info): Remove
1009 finished_solution.
1010 (new_var_info): Ditto.
1011 (shared_bitmap_info_t): New structure.
1012 (shared_bitmap_table): New variable.
1013 (shared_bitmap_hash): New function.
1014 (shared_bitmap_eq): Ditto
1015 (shared_bitmap_lookup): Ditto.
1016 (shared_bitmap_add): Ditto.
1017 (merge_smts_into): Change to take bitmap directly.
1018 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
1019 (init_alias_vars): Init shared bitmap hashtable.
1020 (delete_points_to_sets): Delete shared bitmap hashtable.
1021 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
1022 is_aliased removal as a change that was still necessary was
1023 deleted.
1024
1025 2007-03-09 Uros Bizjak <ubizjak@gmail.com>
1026
1027 * config/i386/i386.h (override_options): Conditionally disable
1028 x86_sahf for 64bit targets only.
1029
1030 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1031
1032 PR C/31072
1033 * c-decl.c (merge_decls): Don't call make_var_volatile.
1034 * varasm.c (make_var_volatile): Remove.
1035 * output.h (make_var_volatile): Remove.
1036
1037 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
1038
1039 PR tree-optimization/31085
1040 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
1041
1042 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1043
1044 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
1045 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
1046 ATTR_CONST_NOTHROW_LIST.
1047
1048 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
1049 FIX_TRUNC_EXPR.
1050
1051 2007-03-08 Diego Novillo <dnovillo@redhat.com>
1052
1053 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
1054
1055 2007-03-08 Geoffrey Keating <geoffk@apple.com>
1056
1057 PR 31013
1058 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
1059 is declared.
1060 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
1061 passed, use shared libgcc.
1062
1063 2007-03-08 Roger Sayle <roger@eyesopen.com>
1064
1065 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
1066 instead of calling build2 with a GIMPLE_MODIFY_STMT.
1067 (honor_protect_cleanup_actions, lower_try_finally_switch):
1068 Likewise.
1069 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
1070 ifc_temp_var): Likewise.
1071 * tree-inline.c (setup_one_parameter): Likewise.
1072 * tree-mudflap.c (mf_decl_cache_locals,
1073 mf_build_check_statement_for): Likewise.
1074 * tree-nested.c (init_tmp_var, save_tmp_var,
1075 finalize_nesting_tree_1): Likewise.
1076 * tree-outof-ssa.c (insert_copy_on_edge,
1077 insert_backedge_copies): Likewise.
1078 * tree-profile.c (tree_gen_edge_profiler,
1079 tree_gen_ic_profiler): Likewise.
1080 * tree-scalar-evolution.c (scev_const_prop): Likewise.
1081 * tree-sra.c (sra_build_assignment): Likewise.
1082 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
1083 * tree-ssa-math-opts.c (insert_reciprocals,
1084 execute_cse_sincos_1): Likewise.
1085 * tree-tailcall.c (adjust_accumulator_values,
1086 adjust_return_value): Likewise.
1087 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
1088 * tree-vect-transform.c (vect_create_data_ref_ptr,
1089 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
1090 vect_create_epilog_for_reduction, vectorizable_reduction,
1091 vectorizable_call, vectorizable_conversion,
1092 vectorizable_assignment, vectorizable_operation,
1093 vectorizable_type_demotion, vect_gen_widened_results_half,
1094 vect_permute_store_chain, vectorizable_store,
1095 vect_setup_realignment, vect_permute_load_chain,
1096 vectorizable_load, vectorizable_condition,
1097 vect_create_cond_for_align_checks): Likewise.
1098 * tree-vrp.c (build_assert_expr_for): Likewise.
1099
1100 2007-03-08 Ian Lance Taylor <iant@google.com>
1101
1102 * tree-vrp.c: Include "intl.h".
1103 (usable_range_p): New static function.
1104 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
1105 overflowed values, juts set *strict_overflow_p.
1106 (compare_values): Only return -2 if one of the operands is not a
1107 constant.
1108 (compare_ranges): Call usable_range_p.
1109 (compare_range_with_value): Likewise.
1110 (vrp_evaluate_conditional_warnv): Rename from
1111 vrp_evaluate_conditional. Make static. Change all callers.
1112 (vrp_evaluate_conditional): New function.
1113 (simplify_div_or_mod_using_ranges): Issue warning about reliance
1114 on signed overflow.
1115 (simplify_abs_using_ranges): Likewise.
1116 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
1117 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
1118 within_stmt parameter.
1119 * tree-ssa-propagate.c (fold_predicate_in): Update call to
1120 vrp_evaluate_conditional.
1121 * tree-ssa-threadedge.c
1122 (record_temporary_equivalences_from_stmts_at_dest): Change
1123 simplify parameter to take a second tree parameter.
1124 (simplify_control_stmt_condition): Likewise.
1125 (thread_across_edge): Likewise.
1126 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
1127 (thread_across_edge): Likewise.
1128 * gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
1129
1130 2007-03-08 Uros Bizjak <ubizjak@gmail.com>
1131
1132 * config/i386/i386.h (TARGET_SAHF): New define.
1133 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
1134 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
1135 (x86_sahf): New global variable.
1136 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
1137 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
1138 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
1139 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
1140 for 64-bit.
1141 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
1142 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
1143 when expanding fcomi/sahf based tests.
1144 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
1145 expanding sahf based alternative. Emit sahf based sequence when
1146 optimizing for code size.
1147 * config/i386/i386.md (x86_sahf_1): Do not disable for
1148 TARGET_64BIT, enable for TARGET_SAHF.
1149
1150 2007-03-08 Martin Michlmayr <tbm@cyrius.com>
1151
1152 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
1153 spurious whitespace from error message.
1154
1155 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
1156
1157 PR c++/30852
1158 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
1159
1160 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
1161
1162 * c-decl.c (grokdeclarator): Disable warnings for anonymous
1163 bitfields.
1164 * tree-sra.c (instantiate_element): Propagate disabled warnings
1165 from the element itself to the created variable.
1166
1167 2007-03-07 Richard Henderson <rth@redhat.com>
1168
1169 PR target/30848
1170 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
1171 silently fix up the stack in the case of a missing register.
1172
1173 2007-03-07 Paul Brook <paul@codesourcery.com>
1174
1175 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
1176
1177 2007-03-07 Joseph Myers <joseph@codesourcery.com>
1178
1179 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
1180 New.
1181 (phase1_vrs): Use them.
1182 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
1183 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
1184 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
1185 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
1186 __gnu_Unwind_Restore_WMMXC if required.
1187 (_Unwind_VRS_Pop): Implement iWMMXt support.
1188 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
1189 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
1190 gnu_Unwind_Save_WMMXC): Define.
1191
1192 2007-03-07 Richard Sandiford <richard@codesourcery.com>
1193
1194 * config/vxworks.h (vxworks_override_options): Declare.
1195 (VXWORKS_OVERRIDE_OPTIONS): Use it.
1196 * config/vxworks.c: Include target.h and toplev.h.
1197 (vxworks_override_options): New function.
1198 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
1199
1200 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
1201
1202 * config/s390/s390.c (override_options): Don't emit an error when
1203 -mstack-size is used without providing -mstack-guard.
1204 (s390_emit_prologue): Choose stack_guard value automatically if not
1205 provided via command line.
1206 * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
1207
1208 2007-03-07 Richard Sandiford <richard@codesourcery.com>
1209
1210 * config/i386/i386.c (output_set_got): Add a GOT initialization
1211 sequence for VxWorks PIC.
1212 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
1213 around labels as well as symbols. Use gotoff_operand instead
1214 of local_symbolic_operand.
1215 (legitimize_pic_address): Use gotoff_operand instead of
1216 local_symbolic_operand. Use @GOT accesses for labels as
1217 well as symbols.
1218 (ix86_output_addr_diff_elt): Use PC-relative rather than
1219 GP-relative offsets for VxWorks PIC.
1220 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
1221 no_new_pseudos. Check whether the returned register is op0.
1222 * config/i386/i386.md (tablejump): Use PC-relative rather than
1223 GP-relative offsets for VxWorks PIC.
1224 * config/i386/predicates.md (gotoff_operand): New predicate.
1225
1226 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1227
1228 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
1229 before defining.
1230 * config/vxworks-dummy.h: New file.
1231 * config/i386/i386.h: Include it.
1232
1233 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
1234
1235 * dwarf2out.c (is_inlined_entry_point): New
1236 (add_high_low_attributes): Emit DW_AT_entry_pc along with
1237 DW_AT_ranges if the first subblock is the entry point.
1238
1239 2007-03-06 David Daney <ddaney@avtrex.com>
1240
1241 * doc/install.texi (mips-*-*): Change recommended binutils
1242 version.
1243
1244 2007-03-06 Anatoly Sokolov <aesok@post.ru>
1245
1246 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
1247 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
1248 devices.
1249 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1250 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1251
1252 2007-03-06 Jan Hubicka <jh@suse.cz>
1253
1254 * errors.h (warning, error, fatal, internal_error): Mark as cold.
1255 * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
1256 are hot.
1257 (probably_cold_bb_p): Cold functions are cold.
1258 (probably_never_executed_bb_p): Cold functions are cold.
1259 (tree_bb_level_predictions): Predict calls to cold functions as not
1260 taken.
1261 (compute_function_frequency): Check hot/cold attributes.
1262 * function.h (function_frequency): Update comments.
1263 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
1264 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
1265 (c_common_att): Add cold and hot.
1266
1267 * doc/extend.texi (hot,cold attributes): Document.
1268
1269 2007-03-06 Andrew Haley <aph@redhat.com>
1270
1271 * function.c (expand_function_end): Move blockage to just after we
1272 emit the label for the naked return from the function.
1273
1274 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1275
1276 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
1277 before redefining.
1278
1279 2007-03-06 Jan Hubicka <jh@suse.cz>
1280
1281 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
1282 loaded for constant large models. Non-large 64bit PIC can do.
1283 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
1284 * cmodel.h: Add LARGE PIC.
1285 * i386.md (UNSPEC_PLTOFF): New.
1286 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
1287 needed.
1288 (*call_1_rex64): Disable for large models.
1289 (*call_1_rex64_large): New.
1290 (*call_value_1_rex64): Disable for large models.
1291 (*call_value_1_rex64_large): New.
1292 (set_rip_rex4): New.
1293 (set_got_offset_rex64): New.
1294 * predicates.md (constant_call_address_operand): For large model
1295 constant calls are not possible.
1296 * i386-protos.h (construct_plt_address): Declare.
1297 * i386.c (override_options): Accept large models.
1298 (ix86_expand_prologue): Expand large PIC GOT pointer load.
1299 (legitimate_constant_p): Add new UNSPECs.
1300 (legitimate_pic_operand_p): Likewise.
1301 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
1302 (legitimize_pic_address): Do easy RIP relative way for TLS only for
1303 non-large model.
1304 (output_pic_addr_const): Add PLTOFF.
1305 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
1306 (ix86_expand_move): Legitimize pic address when in PIC mode.
1307 (construct_plt_address): New function.
1308 (ix86_expand_call): Offload the address to register and use GOT pointer
1309 for large model.
1310 * invoke.texi (mcmodel=large): Update documentation.
1311
1312 2007-03-06 Richard Henderson <rth@redhat.com>
1313
1314 * config/i386/i386.c (x86_use_leave, x86_push_memory,
1315 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
1316 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
1317 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
1318 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
1319 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
1320 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
1321 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
1322 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
1323 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
1324 x86_partial_reg_dependency, x86_memory_mismatch_stall,
1325 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
1326 x86_sse_partial_reg_dependency, x86_sse_split_regs,
1327 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
1328 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
1329 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
1330 x86_schedule, x86_use_bt, x86_pad_returns,
1331 x86_use_xchgb): Merge into ...
1332 (ix86_tune_features): ... here. New array.
1333 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
1334 x86_bswap): Merge into ...
1335 (ix86_arch_features): ... here. New array.
1336 (x86_3dnow_a): Remove.
1337 (x86_accumulate_outgoing_args): Make static.
1338 (x86_arch_always_fancy_math_387): Make static.
1339 (ix86_tune_mask, ix86_arch_mask): Move ...
1340 (override_options): ... to local variables here. Apply the
1341 appropriate mask to each element of ix86_arch_features and
1342 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
1343 as were done in the old macros.
1344 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
1345 * config/i386/i386.h (x86_use_leave, x86_push_memory,
1346 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
1347 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
1348 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
1349 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
1350 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
1351 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
1352 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
1353 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
1354 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
1355 x86_partial_reg_dependency, x86_memory_mismatch_stall,
1356 x86_accumulate_outgoing_args, x86_prologue_using_move,
1357 x86_epilogue_using_move, x86_decompose_lea,
1358 x86_arch_always_fancy_math_387, x86_shift1,
1359 x86_sse_partial_reg_dependency, x86_sse_split_regs,
1360 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
1361 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
1362 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
1363 x86_use_incdec, x86_pad_returns, x86_bswap,
1364 x86_partial_flag_reg_stall): Remove.
1365 (enum ix86_tune_indices): New.
1366 (ix86_tune_features): New.
1367 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
1368 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
1369 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
1370 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
1371 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
1372 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
1373 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
1374 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
1375 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
1376 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
1377 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
1378 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
1379 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
1380 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
1381 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
1382 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
1383 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
1384 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
1385 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
1386 TARGET_EXT_80387_CONSTANTS): Use it.
1387 (enum ix86_arch_indices): New.
1388 (ix86_arch_features): New.
1389 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
1390 TARGET_BSWAP): Use it.
1391 (ix86_tune_mask, ix86_arch_mask): Remove.
1392
1393 2007-03-06 Joseph Myers <joseph@codesourcery.com>
1394
1395 PR bootstrap/31020
1396 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
1397 Define using $${sysroot_headers_suffix}.
1398 * configure: Regenerate.
1399 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
1400 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
1401 defined.
1402 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
1403 * gcc.c (print_sysroot_headers_suffix): New.
1404 (option_map): Include --print-sysroot-headers-suffix.
1405 (display_help): Mention -print-sysroot-headers-suffix.
1406 (process_command): Handle -print-sysroot-headers-suffix.
1407 (do_spec_1): Append multilib directory to include-fixed path if
1408 sysroot suffixes in use.
1409 (main): Handle -print-sysroot-headers-suffix.
1410 * Makefile.in (start.encap): Don't depend on xlimits.h
1411 (xlimits.h): Remove.
1412 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
1413 limits.h for each multilib in fixinc_list.
1414 (fixinc_list, s-fixinc_list): New.
1415 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
1416 generate them for each multilib in fixinc_list.
1417 (stmp-fixproto): Use include-fixed. Run fixproto for each
1418 multilib in fixinc_list.
1419 (mostlyclean): Don't remove xlimits.h.
1420 (clean): Remove include-fixed.
1421 (real-install-headers-tar, real-install-headers-cpio,
1422 real-install-headers-cp): Don't copy include, only include-fixed.
1423 (install-mkheaders): Depend on fixinc_list. Don't depend on
1424 xlimits.h. Save limits.h files for each multilib in fixinc_list.
1425 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
1426 SYSTEM_HEADER_DIR setting in mkheaders.conf.
1427
1428 2007-03-06 Jan Hubicka <jh@suse.cz>
1429
1430 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
1431 NANs easilly.
1432
1433 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1434
1435 * configure.ac: Allow tm_file to contain build-directory files.
1436 * configure: Regenerate.
1437 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
1438 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
1439 * config/m68k/print-sysroot-suffix.sh: New file.
1440
1441 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1442
1443 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
1444 of pic_offset_table_rtx if reload_completed.
1445 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
1446 PIC_OFFSET_TABLE_REGNUM.
1447 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
1448 return true.
1449 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
1450 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
1451
1452 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1453
1454 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
1455 functions that call eh_return.
1456
1457 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1458
1459 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
1460 functions that need a constant pool.
1461
1462 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1463
1464 PR target/28181
1465 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
1466 (m68k_preferred_reload_class): Likewise.
1467 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
1468 (SECONDARY_RELOAD_CLASS): Define.
1469 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
1470 (LIMIT_RELOAD_CLASS): Delete.
1471 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
1472 registers from storing bytes.
1473 (m68k_secondary_reload_class): New function.
1474 (m68k_preferred_reload_class): Likewise.
1475
1476 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1477
1478 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
1479 leaf functions.
1480 (m68k_expand_prologue): Likewise.
1481
1482 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1483
1484 * config/m68k/m68k-protos.h (output_sibcall): Declare.
1485 (mips_expand_epilogue): Add a bool parameter.
1486 (m68k_legitimize_sibcall_address): Declare.
1487 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
1488 (m68k_expand_epilogue): Add a parameter to select between sibling
1489 and normal epilogues. Only generate a return for the latter.
1490 (m68k_ok_for_sibcall_p): New function.
1491 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
1492 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
1493 (sibcall_value, *sibcall_value): Likewise.
1494 (*call, *call_value): Require !SIBLING_CALL_P.
1495 (epilogue): Update call to m68k_expand_epilogue.
1496 (sibcall_epilogue): New pattern.
1497 * config/m68k/predicates.md (const_call_operand): Say that this
1498 predicate applies to sibling calls too.
1499 (sibcall_operand): New predicate.
1500
1501 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1502
1503 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
1504 alternatives as movsi_cf.
1505 (movsf_cf_hard): Add commentary.
1506
1507 2007-03-06 Kazu Hirata <kazu@codesourcery.com>
1508 Richard Sandiford <richard@codesourcery.com>
1509
1510 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
1511 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
1512 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
1513 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
1514 as being live on exit from an interrupt function.
1515 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
1516 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
1517 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
1518 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
1519 (m68k_interrupt_function_p): Globalize.
1520 (m68k_compute_frame_layout): Remove reverse mask code.
1521 (m68k_emit_movem, m68k_set_frame_related): New functions.
1522 (m68k_output_function_prologue): Delete in favor of...
1523 (m68k_expand_prologue): ...this new function.
1524 (m68k_output_function_epilogue): Delete in favor of...
1525 (m68k_expand_epilogue): ...this new function.
1526 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
1527 functions.
1528 (print_operand): Handle %?.
1529 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
1530 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
1531 (prologue, epilogue): New patterns.
1532 (return): Turn into a define_expand.
1533 (*return): New pattern, derived from old "return" pattern. Use rte
1534 rather than rts for interrupt functions. Only use rtd if the pop
1535 count is nonzero.
1536 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
1537 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
1538 (link, *link, unlink, *unlink, load_got): Likewise.
1539
1540 2007-03-06 Richard Sandiford <richard@codesourcery.com>
1541
1542 PR target/23482
1543 PR target/17114
1544 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
1545 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
1546 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
1547 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
1548 and m68k_matches_u_p.
1549 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
1550 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
1551 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
1552 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
1553 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
1554 (REG_STRICT_P): New macro.
1555 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
1556 PCREL_GENERAL_OPERAND_OK.
1557 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
1558 m68k_legitimate_base_reg_p.
1559 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
1560 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
1561 (PIC_CASE_VECTOR_ADDRESS): Update comment.
1562 * config/m68k/m68k.c (m68k_address): New structure.
1563 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
1564 (m68k_decompose_index, m68k_legitimate_constant_address_p)
1565 (m68k_jump_table_ref_p, m68k_decompose_address)
1566 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
1567 (m68k_matches_u_p): New functions.
1568 (print_operand_address): Rewrite to use m68k_decompose_index.
1569
1570 2007-03-05 David Taylor <dtaylor@emc.com>
1571
1572 * gcc.c: Correct copyright date in --version output.
1573
1574 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1575
1576 * pa.md: In unamed move patterns, disparge copies between general
1577 and floating point registers using '?' modifier. Don't include 'f'
1578 constraint for register preferences in DImode, SImode, HImode and
1579 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
1580 Remove constraints for copies between general and floating registers
1581 in soft-float DFmode pattern.
1582 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
1583 floating register.
1584 (movsf): Likewise.
1585
1586 2007-03-05 Mike Stump <mrs@apple.com>
1587
1588 * c-common.c (targetcm): Add.
1589 * c-opts.c (c_common_handle_option): Handle language specific
1590 target options.
1591 * opts.c (handle_option): Verify language for target options, if
1592 any are given.
1593 * opth-gen.awk: Add CL_LANG_ALL.
1594 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
1595 (TARGETCM_INITIALIZER): Add.
1596 * target.h (struct gcc_targetcm): Add.
1597 (targetcm): Add.
1598 * targhooks.c (default_handle_c_option): Add.
1599 * targhooks.h (default_handle_c_option): Add.
1600 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
1601
1602 * config/darwin.opt (iframework): Add.
1603 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
1604 * config/darwin-c.c (handle_c_option): Add.
1605 (TARGET_HANDLE_C_OPTION): Add.
1606 (targetcm): Add.
1607 * doc/invoke.texi (Darwin Options): Add -iframework.
1608
1609 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1610
1611 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
1612 conversion.
1613
1614 2007-03-05 Ian Lance Taylor <iant@google.com>
1615
1616 * c.opt (fgnu89-inline): New option.
1617 * c-opts.c (c_common_post_options): Set default value for
1618 flag_gnu89_inline.
1619 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
1620 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
1621 inline functions.
1622 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
1623 (grokdeclarator, start_function): Likewise.
1624 * c-cppbuiltin.c (c_cpp_builtins): Define either
1625 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
1626 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
1627 (C Dialect Options): Document -fgnu89-inline.
1628 * doc/extend.texi (Function Attributes): Explain what the
1629 gnu_inline attribute does.
1630 * doc/cpp.texi (Common Predefined Macros): Document
1631 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
1632
1633 2007-03-05 Ian Lance Taylor <iant@google.com>
1634
1635 PR tree-optimization/31034
1636 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
1637 half-range if the other side is an overflow infinity.
1638
1639 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
1640
1641 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
1642 (bfin*-linux-uclibc*): New configuration.
1643 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
1644 defining.
1645 * config/bfin/linux.h: New file.
1646 * config/bfin/libgcc-bfin.ver: New file.
1647 * config/bfin/t-bfin-uclinux: New file.
1648 * config/bfin/t-bfin-linux: New file.
1649 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
1650 (TARGET_OS_CPP_BUILTINS): New macro.
1651
1652 2007-03-05 Richard Guenther <rguenther@suse.de>
1653
1654 * fold-const.c (fold_binary): Remove duplicate folding
1655 of comparison of non-null ADDR_EXPR against null.
1656
1657 2007-03-05 Richard Guenther <rguenther@suse.de>
1658 Dorit Nuzman <dorit@il.ibm.com>
1659
1660 PR tree-optimization/26420
1661 * tree-vectorizer.c (vectorize_loops): Bail out early if there
1662 are no loops in the function. Only print the number of
1663 vectorized loops if it is greater than zero or we are supposed
1664 to print information about unvectorized loops.
1665
1666 2007-03-05 Revital Eres <eres@il.ibm.com>
1667
1668 * gcc.dg/var-expand1.c: New test.
1669 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
1670 when an accumulator is expanded.
1671
1672 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1673
1674 PR other/30465
1675 * c-common.c (convert_and_check): Don't give warnings for
1676 conversion if 'expr' already overflowed.
1677
1678 2007-03-04 Roger Sayle <roger@eyesopen.com>
1679
1680 PR middle-end/30744
1681 * fold-const.c (fold_comparison): Enforce type consistency when
1682 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
1683
1684 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
1685
1686 * tree-ssa-address.c (create_mem_ref): Do not put an expression
1687 containing a cast to the base of TARGET_MEM_REF.
1688
1689 2007-03-04 Martin Michlmayr <tbm@cyrius.com>
1690
1691 * tree.c (tree_contains_struct_check_failed): Remove spurious
1692 whitespace from error message.
1693
1694 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
1695
1696 PR target/30406
1697 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
1698 instead of precision.
1699
1700 2007-03-04 Roman Zippel <zippel@linux-m68k.org>
1701 Nathan Sidwell <nathan@codesourcery.com>
1702
1703 * emit-rtl.c (find_auto_inc): New.
1704 (try_split): recreate REG_INC notes,
1705 Use regular for loops rather than whiles.
1706
1707 2007-03-03 Andreas Schwab <schwab@suse.de>
1708
1709 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
1710 * configure: Regenerate.
1711
1712 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1713
1714 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
1715 flag_rounding_math, not flag_unsafe_math_optimizations.
1716
1717 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
1718 fold_build2.
1719 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
1720 alpha_fold_vector_minmax): Likewise.
1721 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1722 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1723
1724 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
1725
1726 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
1727 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
1728 if the lhs has side-effects.
1729 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
1730
1731 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
1732
1733 * config/i386/i386.h (TUNEMASK): Remove define.
1734 (ARCHMASK): Remove define.
1735 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
1736 Use ix86_arch_mask variable instead of ARCHMASK.
1737 * config/i386/i386.c (override_options): Ditto.
1738 (standard_80387_constant_p): Ditto.
1739
1740 2007-03-02 Ian Lance Taylor <iant@google.com>
1741
1742 Used signed infinities in VRP.
1743 * tree-vrp.c (uses_overflow_infinity): New static function.
1744 (supports_overflow_infinity): New static function.
1745 (make_overflow_infinity): New static function.
1746 (negative_overflow_infinity): New static function.
1747 (positive_overflow_infinity): New static function.
1748 (is_negative_overflow_infinity): New static function.
1749 (is_positive_overflow_infinity): New static function.
1750 (is_overflow_infinity): New static function.
1751 (overflow_infinity_range_p): New static function.
1752 (compare_values_warnv): New function split out of compare_values.
1753 (compare_value): Call it.
1754 (set_value_range_to_nonnegative): Add overflow_infinity
1755 parameter. Change caller.
1756 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
1757 Change callers.
1758 (vrp_expr_computes_nonzero): Likewise.
1759 (compare_ranges, compare_range_with_value): Likewise.
1760 (compare_name_with_value, compare_names): Likewise.
1761 (vrp_evaluate_conditional): Likewise.
1762 (set_value_range): Handle infinity
1763 (vrp_operand_equal_p, operand_less_p): Likewise.
1764 (extract_range_from_assert): Likewise.
1765 (vrp_int_const_binop): Likewise.
1766 (extract_range_from_binary_expr): Likewise.
1767 (extract_range_from_unary_expr): Likewise.
1768 (extract_range_from_comparison): Likewise.
1769 (extract_range_from_expr): Likewise.
1770 (dump_value_range): Likewise.
1771 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
1772 (test_for_singularity): Likewise.
1773 (vrp_int_const_binop): Remove inline qualifier.
1774 (adjust_range_with_scev): Add comment.
1775 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
1776
1777 2007-03-02 Diego Novillo <dnovillo@redhat.com>
1778
1779 * tree-ssa-structalias.c (could_have_pointers): Tidy.
1780 (get_constraint_for): Likewise.
1781 (do_structure_copy): Likewise.
1782 (find_func_aliases): Fix references to MODIFY_EXPR.
1783 (intra_create_variable_infos): Tidy.
1784 * tree-ssa-operands.c (add_virtual_operand): Add argument
1785 IS_CALL_SITE.
1786 When adding members of alias sets, if IS_CALL_SITE is true and
1787 the symbol is not call-clobbered, skip it.
1788 Adjust all callers.
1789
1790 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
1791
1792 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1793 entry by means of emit_insn_at_entry.
1794
1795 2007-03-02 Richard Henderson <rth@redhat.com>
1796
1797 * expr.h (promoted_input_arg): Remove decl.
1798 * function.c (promoted_input_arg): Merge into ...
1799 * combine.c (setup_incoming_promotions): ... only caller.
1800 Rearrange to avoid double loop.
1801
1802 2007-03-02 Ben Elliston <bje@au.ibm.com>
1803 Peter Bergner <bergner@vnet.ibm.com>
1804 Janis Johnson <janis187@us.ibm.com>
1805
1806 * config/rs6000/dfp.md: New file.
1807 * config/rs6000/rs6000.md: Include dfp.md.
1808 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
1809 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
1810 and TDmode decimal float modes in FP registers.
1811 (num_insns_constant): Likewise.
1812 (rs6000_legitimate_offset_address_p): Likewise.
1813 (rs6000_legitimize_address): Likewise.
1814 (rs6000_legitimize_reload_address): Likewise.
1815 (rs6000_legitimate_address): Likewise.
1816 (rs6000_emit_move): Likewise.
1817 (function_arg_boundary): Likewise.
1818 (function_arg_advance): Likewise.
1819 (rs6000_darwin64_record_arg_recurse): Likewise.
1820 (function_arg): Likewise.
1821 (rs6000_gimplify_va_arg): Likewise.
1822 (rs6000_split_multireg_move): Likewise.
1823 (rs6000_output_function_epilogue): Likewise.
1824 (rs6000_output_function_epilogue): Likewise.
1825 (rs6000_register_move_cost): Likewise.
1826 (rs6000_function_value): Likewise.
1827 (rs6000_libcall_value): Likewise.
1828
1829 2007-03-02 Richard Sandiford <richard@codesourcery.com>
1830
1831 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
1832
1833 2007-03-02 Richard Sandiford <richard@codesourcery.com>
1834
1835 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
1836 Use $MULTIDIR to choose between the kernel and RTP headers,
1837 and use $WIND_BASE and $WIND_USR to locate them.
1838
1839 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
1840
1841 * config/i386/i386.c (override_options): Put initialization of
1842 ix86_tune_mask and ix86_arch_mask to the correct place.
1843
1844 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
1845 Michael Meissner <michael.meissner@amd.com>
1846
1847 PR target/31019
1848 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
1849 (ARCHMASK): Define.
1850 (TARGET_CMOVE): Use ARCHMASK.
1851 (TARGET_CMPXCHG): Ditto.
1852 (TARGET_CMPXCHG8B): Ditto.
1853 (TARGET_XADD): Ditto.
1854 (TARGET_BSWAP): Ditto.
1855 * config/i386/i386.c (ix86_tune_mask): New global variable.
1856 (ix86_arch_mask): Ditto.
1857 (override_options): Initialize ix86_tune_mask and
1858 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
1859 target_flags.
1860
1861 2007-03-02 Ben Elliston <bje@au.ibm.com>
1862
1863 PR 30992
1864 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
1865
1866 2007-03-02 Joseph Myers <joseph@codesourcery.com>
1867
1868 * target.h (init_dwarf_reg_sizes_extra): New target hook.
1869 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
1870 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
1871 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
1872 hook.
1873 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
1874 rs6000_init_dwarf_reg_sizes_extra): New.
1875 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
1876 SPE register high parts.
1877
1878 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1879
1880 * Makefile.in: Add install-pdf target as
1881 copied from automake v1.10 rules.
1882 * configure.ac: Add install-pdf to target list.
1883 * configure: Regenerate.
1884
1885 2007-03-01 Paul Brook <paul@codesourcery.com>
1886
1887 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
1888 modes to LDRD for DImode.
1889 (output_move_double): Fixup out of range ldrd/strd.
1890 (vfp_secondary_reload_class): Rename...
1891 (coproc_secondary_reload_class): ... to this. Add wb argument.
1892 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
1893 coproc_secondary_reload_class for CLASS_IWMMXT.
1894 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
1895 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
1896
1897 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
1898
1899 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the unroll
1900 factor by the estimated number of iterations.
1901 (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
1902 prefetch latency.
1903
1904 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
1905 decode_caches_intel, detect_caches_intel): New functions.
1906 (host_detect_local_cpu): Use detect_caches_amd and
1907 detect_caches_intel.
1908
1909 2007-03-01 Richard Henderson <rth@redhat.com>
1910
1911 * expr.c (emit_move_complex_push): Export.
1912 (emit_move_complex_parts): Split out from ...
1913 (emit_move_complex): ... here.
1914 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
1915 * config/i386/i386.md (movcdi): New.
1916
1917 2007-03-01 Uros Bizjak <ubizjak@gmail.com>
1918
1919 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
1920 size of mode1 to check for tieable modes in MMX case.
1921
1922 2007-03-01 Richard Sandiford <richard@codesourcery.com>
1923
1924 * Makefile.in (rtlanal.o): Depend on tree.h.
1925 * rtl.h (offset_within_section_p, split_const): Declare.
1926 * rtlanal.c: Include tree.h.
1927 (offset_within_block_p): New function, taken from
1928 mips_offset_within_object_p.
1929 (split_const): New function, taken from mips_split_const.
1930 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
1931 Declare.
1932 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
1933 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
1934 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
1935 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
1936 (m68k_illegitimate_symbolic_constant_p): New function.
1937 * config/m68k/m68k.md (movsi): Remove misleading predicates.
1938 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
1939 symbolic constant that might be outside the symbol's section,
1940 move the symbol first and then add the offset.
1941 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
1942 Override.
1943 * config/mips/mips.c (mips_split_const): Delete.
1944 (mips_offset_within_object_p): Delete.
1945 (mips_symbolic_constant_p): Use offset_within_section_p and
1946 split_const instead of mips_offset_within_object_p and
1947 mips_split_const.
1948 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
1949 (mips_legitimize_const_move, print_operand_reloc)
1950 (mips_dangerous_for_la25_p): Use split_const instead of
1951 mips_split_const.
1952
1953 2007-02-28 Eric Christopher <echristo@apple.com>
1954
1955 * Makefile.in (install-include-dir): Don't rm -rf include.
1956
1957 2007-02-28 Richard Guenther <rguenther@suse.de>
1958
1959 PR middle-end/30364
1960 * fold-const.c (fold_binary): Do not associate expressions
1961 with more than one variable for integer types that do not wrap.
1962
1963 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
1964
1965 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
1966 Delete, and replace with...
1967 (fold_builtin_call_array): This. Update callers to use it.
1968 * fold-const.c (fold_build_call_list): Delete, and replace with...
1969 (fold_build_call_array): This.
1970 (fold_build_call_list_initializer): Delete, and replace with...
1971 (fold_build_call_array_initializer): This.
1972 * tree.h: Update declarations to reflect above changes.
1973
1974 * c-typeck.c (build_function_call): Store converted arguments
1975 in a stack-allocated array instead of building a list.
1976 (convert_arguments): Store arguments in the array passed in as an
1977 argument, and return the actual number of arguments.
1978 * c-format.c: (check_function_format): Pass arguments in an
1979 array instead of a list.
1980 * c-common.c (check_function_nonnull): Likewise.
1981 (check_function_sentinel): Likewise.
1982 (check_function_arguments): Likewise.
1983 * c-common.h: Update declarations to reflect above changes.
1984
1985 2007-02-28 Jan Hubicka <jh@suse.cz>
1986
1987 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
1988 PRED_NEGATIVE_RETURN): Update outcomes.
1989
1990 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
1991
1992 * calls.c (emit_library_call_value_1): Handle partial registers
1993 correctly when building up CALL_INSN_FUNCTION_USAGE.
1994
1995 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1996
1997 * pa/predicates.md (move_src_operand): Allow zero for mode.
1998 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
1999 move pattern.
2000
2001 2007-02-27 Uros Bizjak <ubizjak@gmail.com>
2002
2003 PR target/30970
2004 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
2005 *movv2df_internal): Enable pattern only for valid operand
2006 combinations.
2007 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
2008 tie only 128bit modes. For MMX registers, tie only 64bit modes.
2009
2010 2007-02-27 Mike Stump <mrs@apple.com>
2011
2012 * config/darwin-crt3.c: Avoid compilation when compiling for a
2013 kext multilib.
2014
2015 2007-02-27 Joseph Myers <joseph@codesourcery.com>
2016
2017 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
2018 FIXED_INCLUDE_DIR.
2019 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
2020 for fixed headers and limits.h.
2021 (install-include-dir, install-headers-tar, install-headers-cpio,
2022 install-headers-cp, real-install-headers-tar,
2023 real-install-headers-cpio, real-install-headers-cp): Handle
2024 include-fixed as well as include.
2025 (install-mkheaders): Don't install files that go only in include
2026 not include-fixed.
2027 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
2028 from GCC_INCLUDE_DIR.
2029 * gcc.c (process_command): Remove special -BstageN/ handling.
2030 (do_spec_1): Add include-fixed directories.
2031
2032 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
2033
2034 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
2035 _smulsi3_highpart.
2036 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
2037 New functions.
2038 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
2039 patterns.
2040
2041 2007-02-27 Mark Mitchell <mark@codesourcery.com>
2042
2043 * c-common.c (get_priority): Add check for
2044 SUPPORTS_INIT_PRIORITY.
2045
2046 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
2047
2048 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
2049
2050 * config/bfin/bfin.c: Include "cfglayout.h".
2051 (MAX_LSETUP_DISTANCE): New macro.
2052 (struct loop_info): New members incoming, incoming_src and
2053 incoming_dest. Delete member predecessor.
2054 (length_for_loop): New function.
2055 (bfin_optimize_loop): Handle more different loop structures.
2056 (bfin_discover_loop): Rework detection of predecessor blocks by
2057 examining incoming edges.
2058 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
2059 bfin_reorg_loops.
2060 (bfin_reorder_loops): New function.
2061 (bfin_reorg_loops): Use these three new functions.
2062
2063 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
2064 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
2065 (CONSTRAINT_LEN): Add entry for 'q'.
2066 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
2067 Add 'q' constraints.
2068 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
2069 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
2070
2071 * config/bfin/bfin.md (add_with_carry): New pattern.
2072 (s_or_u, su_optab, su_modifier): New code macros/attrs.
2073 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
2074 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
2075 support unsigned multiplies too. Removed incorrect commutativity from
2076 operand 1 constraint where appropriate.
2077 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
2078 patterns.
2079 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
2080 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
2081 New patterns.
2082 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
2083 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
2084 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
2085 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
2086 usmulhisi_hh_huh): New patterns.
2087
2088 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
2089 lshifthi3): Fix output template to use half reg for operand 2.
2090
2091 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
2092 instead of R2.
2093
2094 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
2095
2096 2007-02-27 Andreas Schwab <schwab@suse.de>
2097
2098 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
2099
2100 2007-02-27 Jan Hubicka <jh@suse.cz>
2101
2102 * predict.c (last_basic_block_p): Remove.
2103 (tree_estimate_probability): Update return heuristic for commonized
2104 return blocks.
2105
2106 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
2107
2108 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
2109
2110 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
2111
2112 * doc/include/gcc-common.texi (versionsubtitle): New macro.
2113 * doc/cpp.texi: Standardize title page.
2114 * doc/cppinternals.texi: Likewise.
2115 * doc/gcc.texi: Standardize title page, remove version number
2116 from copyright page.
2117 * doc/gccint.texi: Likewise.
2118 * doc/install.texi: Standardize title page, add table of
2119 contents.
2120
2121 2007-02-26 Jan Hubicka <jh@suse.cz>
2122
2123 * predict.def: Set outcomes according to more recent results.
2124 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
2125 Remove dead predictors.
2126 * predict.c (return_prediction): Fix pasto.
2127
2128 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
2129
2130 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
2131 change; avoid a memory leak when returning early.
2132
2133 2007-02-26 Mark Mitchell <mark@codesourcery.com>
2134
2135 * c-decl.c (static_ctors): Move to c-common.c.
2136 (static_dtors): Likewise.
2137 (finish_function): Use c_record_cdtor_fn.
2138 (build_cdtor): Move to c-common.c.
2139 (c_write_global_declarations): Use c_build_cdtor_fns.
2140 * c-common.h (static_ctors): Declare.
2141 (static_dtors): Likewise.
2142 (c_record_cdtor_fn): Likewise.
2143 (c_build_cdtor_fns): Likewise.
2144 * c-common.c (static_ctors): New variable.
2145 (static_dtors): Likewise.
2146 (c_record_cdtor_fn): New function.
2147 (build_cdtor): Move from c-decl.c
2148 (c_build_cdtor_fns): New function.
2149
2150 * output.h (assemble_addr_to_section): Declare.
2151 (get_cdtor_priority_section): Likewise.
2152 * varasm.c (assemble_addr_to_section): New function.
2153 (get_cdtor_priority_section): Likewise.
2154 (default_named_section_asm_out_destructor): Use them.
2155 (destor_dtor_section_asm_out_destructor): Likewise.
2156 (default_named_section_asm_out_constructor): Likewise.
2157 (default_ctor_section_asm_out_constructor): Likewise.
2158 * config.gcc (*-*-vxworks*): Include vxworks.o.
2159 * config/t-vxworks (vxworks.o): New target.
2160 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
2161 (TARGET_ASM_CONSTRUCTOR): Define.
2162 (TARGET_ASM_DESTRUCTOR): Likewise.
2163 (vxworks_asm_out_constructor): Declare.
2164 (vxworks_asm_out_destructor): Likewise.
2165
2166 * c-common.c (get_priority): Check that we have not just an
2167 INTEGER_CST, but an integer constant with integeral type.
2168
2169 2007-02-25 Uros Bizjak <ubizjak@gmail.com>
2170
2171 PR tree-optimization/30938
2172 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
2173 use &dt[nargs-1] instead of &dt[nargs] in the call to
2174 vect_is_simple_use().
2175
2176 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
2177
2178 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
2179 from register elimination as PRE_MODIFY / POST_MODIFY increments.
2180 Do not attempt to handle MEM inside auto-inc expressions.
2181 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
2182 of a register modified by an auto-inc expression. However, do handle
2183 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
2184 (elimination_effects): Prohibit elimination of a register modified
2185 by an auto-inc expression. Disable register elimination rules whose
2186 target register is modified by an auto-inc expression with variable
2187 increment.
2188
2189 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
2190
2191 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
2192 off-by-one error.
2193 (array_at_struct_end_p): New function.
2194 (idx_infer_loop_bounds): Use it.
2195 (estimate_numbers_of_iterations_loop): Export.
2196 * predict.c (predict_loops): Use estimated_loop_iterations_int.
2197 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
2198 (tree_estimate_probability): Call record_loop_exits.
2199 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
2200 (estimated_loop_iterations, estimated_loop_iterations_int,
2201 estimated_loop_iterations_tree): New functions.
2202 (analyze_siv_subscript_cst_affine,
2203 compute_overlap_steps_for_affine_1_2,
2204 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
2205 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
2206 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
2207 (PRED_LOOP_ITERATIONS_GUESSED): New.
2208 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
2209 * cfgloop.h (estimate_numbers_of_iterations_loop,
2210 estimated_loop_iterations_int): Declare.
2211
2212 2007-02-25 Mark Mitchell <mark@codesourcery.com>
2213
2214 * doc/extend.texi: Document optional priority argument to
2215 constructors and destructors.
2216 * tree.c (init_priority_for_decl): Adjust GTY markers.
2217 (init_ttree): Use priority-info hash functions for
2218 init_priority_for_decl.
2219 (tree_map_eq): Rename to ...
2220 (tree_map_base_eq): ... this.
2221 (tree_map_marked_p): Rename to ...
2222 (tree_map_base_marked_p): ... this.
2223 (tree_map_base_hash): New function.
2224 (decl_init_priority_lookup): Rework.
2225 (decl_fini_priority_lookup): New function.
2226 (decl_priority_info): New function.
2227 (decl_init_priority_insert): Use it.
2228 (decl_fini_priority_insert): Likewise.
2229 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
2230 hierarchy.
2231 (decl_restrict_base_insert): Likewise.
2232 (decl_debug_expr_insert): Likewise.
2233 (decl_value_expr_lookup): Likewise.
2234 (decl_value_expr_insert): Likewise.
2235 * tree.h (priority_type): New type.
2236 (decl_init_priority_lookup): Use priority_type.
2237 (decl_fini_priority_lookup): New function.
2238 (decl_init_priority_insert): Use priority_type.
2239 (decl_fini_priority_insert): New function.
2240 (DECL_HAS_INIT_PRIORITY): Tweak comments.
2241 (DECL_INIT_PRIORITY): Likewise.
2242 (SET_DECL_INIT_PRIORITY): Add comment.
2243 (DECL_FINI_PRIORITY): New macro.
2244 (SET_DECL_FINI_PRIORITY): Likewise.
2245 (DEFAULT_INIT_PRIORITY): Document.
2246 (MAX_INIT_PRIORITY): Likewise.
2247 (MAX_RESERVED_INIT_PRIORITY): Likewise.
2248 (tree_map_base): New type.
2249 (tree_map_base_eq): New function.
2250 (tree_map_base_hash): Likewise.
2251 (tree_map_base_marked_p): Likewise.
2252 (tree_map): Inherit from tree_map_base.
2253 (tree_map_eq): Make it a macro.
2254 (tree_map_marked_p): Likewise.
2255 (tree_int_map): Inherit from tree_map_base.
2256 (tree_int_map_eq): Make it a macro.
2257 (tree_int_map_hash): Likewise.
2258 (tree_int_map_marked_p): Likewise.
2259 (tree_priority_map): New type.
2260 (tree_priority_map_eq): New macro.
2261 (tree_priority_map_hash): Likewise.
2262 (tree_priority_map_marked_p): Likewise.
2263 * varasm.c (emults_decl): Adjust for refactoring of tree_map
2264 hierarchy.
2265 (emutls_common_1): Likewise.
2266 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
2267 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
2268 of tree_map hierarchy.
2269 * tree-cfg.c (move_stmt_r): Likewise.
2270 (new_label_mapper): Likewise.
2271 * c-tree.h (c_expand_body): Move to ...
2272 * c-common.h (c_expand_body): ... here.
2273 * c-decl.c (c_expand_body): Move to ...
2274 * c-common.c (c_expand_body): ... here.
2275 (c_common_attribute_table): Allow 1 argument for the constructor
2276 and destructor attributes.
2277 (get_priority): New function.
2278 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
2279 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
2280
2281 2007-02-24 Jan Hubicka <jh@suse.cz>
2282
2283 PR middle-end/30509
2284 * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
2285
2286 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
2287 Jan Hubicka <jh@suse.cz>
2288
2289 PR target/30778
2290 * i386.c (counter_mode): New function.
2291 (expand_set_or_movmem_via_loop): Use it.
2292 (expand_movmem_epilogue): Likewise; fix pasto.
2293 (ix86_expand_movmem): Do emit guard even for constant counts.
2294 (ix86_expand_setmem): Likewise.
2295
2296 2007-02-25 Nick Clifton <nickc@redhat.com>
2297
2298 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
2299 (JUMP_TABLES_IN_TEXT_SECTION): Define.
2300
2301 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
2302
2303 PR target/30770
2304 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
2305 count argument with 0x10, not with 0x16.
2306 (expand_setmem_epilogue): Ditto.
2307
2308 2007-02-24 Mike Stump <mrs@apple.com>
2309
2310 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
2311 symbols.
2312
2313 2007-02-24 Richard Guenther <rguenther@suse.de>
2314
2315 PR middle-end/30951
2316 * fold-const.c (fold_binary): Fold x +- CST op x for
2317 EQ_EXPR and NE_EXPR.
2318
2319 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2320
2321 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
2322
2323 2007-02-24 Jan Hubicka <jh@suse.cz>
2324
2325 * cgraphunit.c (decide_is_function_needed): Honor
2326 -fkeep-inline-functions.
2327
2328 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2329
2330 * builtins.c (fold_builtin_modf): New.
2331 (fold_builtin_2): Use it.
2332
2333 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
2334
2335 * loop-iv.c (implies_p): Detect additional cases where A implies B.
2336 (determine_max_iter): Take additional LOOP arg; all callers changed.
2337 Lose broken logic dealing with PLUS. Try to limit the upper bound by
2338 one using simplifications.
2339 (simplify_using_initial_values): Return if the expression becomes
2340 invalid due to altered regs.
2341
2342 2007-02-23 DJ Delorie <dj@redhat.com>
2343
2344 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
2345
2346 2007-02-23 Mike Stump <mrs@apple.com>
2347
2348 * tlink.c (scan_linker_output): Parse linker messages from
2349 darwin9's linker better.
2350
2351 2007-02-23 Steve Ellcey <sje@cup.hp.com>
2352
2353 PR debug/29614
2354 * varpool.c (varpool_assemble_pending_decls): Set
2355 varpool_last_needed_node to null.
2356
2357 2007-02-23 DJ Delorie <dj@redhat.com>
2358
2359 * config/i386/i386.c (ix86_data_alignment): Don't specify an
2360 alignment bigger than the object file can handle.
2361
2362 2007-02-23 Uros Bizjak <ubizjak@gmail.com>
2363
2364 PR target/30825
2365 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
2366 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
2367 (*movsf_1): Penalize MMX moves.
2368
2369 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
2370
2371 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
2372 2^32-1 or more times unless flag_unsafe_loop_optimizations.
2373
2374 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
2375
2376 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2377
2378 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
2379 (fold_builtin_1): Use them.
2380 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
2381 BUILT_IN_SIGNIFICAND.
2382
2383 2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
2384
2385 * config/i386/i386.c (bdesc_1arg): Initialize
2386 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
2387 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
2388 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
2389 and IX86_BUILTIN_MOVSLDUP.
2390
2391 2007-02-22 Paolo Bonzini <bonzini@gnu.org>
2392
2393 PR rtl-optimization/30841
2394 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
2395
2396 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2397
2398 * builtins.c (fold_builtin_frexp): New.
2399 (fold_builtin_2): Use it.
2400
2401 2007-02-22 Mark Mitchell <mark@codesourcery.com>
2402
2403 * doc/invoke.texi (Spec Files): Document getenv spec function.
2404
2405 * gcc.c (getenv_spec_function): New function.
2406 (static_spec_functions): Add it.
2407 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
2408 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
2409 header files.
2410
2411 2007-02-22 Michael Matz <matz@suse.de
2412
2413 PR c++/29433
2414 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
2415 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
2416
2417 2007-02-22 Ian Lance Taylor <iant@google.com>
2418
2419 PR debug/30898
2420 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
2421 (mem_loc_descriptor): Call it.
2422
2423 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
2424 Ira Rosen <irar@il.ibm.com>
2425
2426 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
2427
2428 2007-02-22 Ira Rosen <irar@il.ibm.com>
2429
2430 PR tree-optimization/30843
2431 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
2432 stores only after all the group is vectorized.
2433
2434 2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
2435
2436 PR tree-optimization/30858
2437 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
2438 in the reduction cycle have a single use in the loop.
2439 * tree-vectorizer.h (relevant): Add documentation.
2440
2441 2007-02-20 Mike Stump <mrs@apple.com>
2442
2443 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
2444 * configure: Regenerate.
2445
2446 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2447
2448 Change the defaults of some parameters and options.
2449 * config/spu/spu-protos.h (spu_optimization_options): Declare.
2450 * config/spu/spu.c (spu_optimization_options): Add.
2451 (spu_override_options): Change params in spu_optimization_options.
2452 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
2453
2454 Register 127 is only 16 byte aligned when used as a frame pointer.
2455 * config/spu/spu-protos.h (spu_init_expanders): Declare.
2456 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
2457 HARD_FRAME_POINTER_REGNUM.
2458 (spu_legitimate_address): Use regno_aligned_for_reload.
2459 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
2460 aligned when frame_pointer_needed is true.
2461 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
2462 to 8 bits.
2463 * config/spu/spu.h (INIT_EXPANDERS): Define.
2464
2465 Make sure shift and rotate instructions have valid immediate operands.
2466 * config/spu/predicates.md (spu_shift_operand): Remove.
2467 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
2468 * config/spu/constraints.md (W, O): Extend range.
2469 * config/spu/spu.md (umask, nmask): Define.
2470 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
2471 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
2472 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
2473 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
2474 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
2475 (lshr<mode>3_reg): Fix rtl description.
2476
2477 Make sure mulhisi immediate operands are valid.
2478 * config/spu/predicates.md (imm_K_operand): Add.
2479 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
2480
2481 Generate constants using fsmbi and andi.
2482 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
2483 (print_operand, spu_split_immediate, classify_immediate,
2484 fsmbi_const_p): Handle IC_FSMBI2.
2485
2486 Correctly handle a CONST_VECTOR containing symbols.
2487 * config/spu/spu.c (print_operand): Handle HIGH correctly.
2488 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
2489 (immediate_load_p): Allow symbols that use 2 instructions to create.
2490 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
2491 with symbols when flag_pic is set.
2492 (const_vector_immediate_p): New.
2493 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
2494 accept a CONST_VECTOR with symbols.
2495 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
2496 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
2497 correctly.
2498 * config/spu/spu.md (high, low): Delete.
2499 (low_<mode>): Define.
2500
2501 Remove INTRmode and INTR_REGNUM, which didn't work.
2502 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
2503 of INTR_REGNUM.
2504 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
2505 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
2506 peephole2 pattern): Don't use INTR or 131.
2507 (movintrcc): Delete.
2508 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
2509 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
2510 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
2511 (UNSPEC_SET_INTR): Add.
2512 * config/spu/spu-modes.def (INTR): Remove.
2513
2514 More accurate warnings about run-time relocations.
2515 * config/spu/spu.c (reloc_diagnostic): Test in_section.
2516
2517 Correctly warn about immediate arguments to specific intrinsics.
2518 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
2519 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
2520 the instruction predicate.
2521
2522 Fix tree check errors with latest update.
2523 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
2524 CALL_EXPR_ARG.
2525 (spu_expand_builtin): Use CALL_EXPR_FN.
2526
2527 Add missing specific intrinsics.
2528 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
2529 si_bislede.
2530 * config/spu/spu_internals.h: Ditto.
2531
2532 Fix incorrect operand modifiers.
2533 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
2534 * config/spu/spu.md (xor<mode>3): Change %S to %J.
2535
2536 Optimize one case of zero_extend of a vec_select.
2537 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
2538
2539 Accept any immediate for hbr.
2540 * config/spu/spu.md (hbr): Change s constraints to i.
2541
2542 2007-02-21 Paul Brook <paul@codesourcery.com>
2543
2544 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
2545 condexec_count when skipping USE and CLOBBER.
2546
2547 2007-02-21 Nick Clifton <nickc@redhat.com>
2548
2549 * common.opt (Warray-bounds): Add Warning attribute.
2550 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
2551 Likewise.
2552 (fsized-zeroes): Add Optimization attribute.
2553 (fsplit-wide-types, ftree-scev-cprop): Likewise.
2554 * c.opt (Wc++0x-compat): Add Warning attribute.
2555
2556 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
2557
2558 PR middle-end/30761
2559 * reload1.c (eliminate_regs_in_insn): In the single_set special
2560 case, attempt to re-recognize the insn before falling back to
2561 having reload fix it up.
2562
2563 2007-02-20 Eric Christopher <echristo@gmail.com>
2564
2565 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
2566 Rewrite accordingly.
2567 (frv_read_iacc_argument): Ditto.
2568 (frv_expand_set_builtin): Take a call instead of arglist, update for
2569 above changes.
2570 (frv_expand_unop_builtin): Ditto.
2571 (frv_expand_binop_builtin): Ditto.
2572 (frv_expand_cut_builtin): Ditto.
2573 (frv_expand_binopimm_builtin): Ditto.
2574 (frv_expand_voidbinop_builtin): Ditto.
2575 (frv_expand_int_void2arg): Ditto.
2576 (frv_expand_prefetches): Ditto.
2577 (frv_expand_voidtriop_builtin): Ditto.
2578 (frv_expand_voidaccop_builtin): Ditto.
2579 (frv_expand_load_builtin): Ditto.
2580 (frv_expand_store_builtin): Ditto.
2581 (frv_expand_mdpackh_builtin): Ditto.
2582 (frv_expand_mclracc_builtin): Ditto.
2583 (frv_expand_mrdacc_builtin): Ditto.
2584 (frv_expand_mwtacc_builtin): Ditto.
2585 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
2586 calls for above.
2587
2588 2007-02-20 Janis Johnson <janis187@us.ibm.com>
2589
2590 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
2591 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
2592 cmpb instruction.
2593 (HAVE_GAS_DFP): Check for assembler support of decimal floating
2594 point instructions.
2595 * configure: Regenerate.
2596 * config.in: Regenerate.
2597 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
2598 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
2599 masks to power6 and power6x and to POWERPC_MASKS.
2600 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2601 _ARCH_PWR6.
2602 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
2603 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
2604 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2605 Access PROTOTYPE as variable, not mask.
2606
2607 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
2608
2609 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
2610 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
2611 * combine.c (adjust_for_new_dest): Use it.
2612 * postreload.c (reload_combine): Likewise.
2613
2614 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
2615
2616 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
2617 notes on an insn with multiple sets, even if single_set returns
2618 non-NULL for that insn.
2619
2620 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2621
2622 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
2623 scalbn and scalbln.
2624
2625 2007-02-20 Geoffrey Keating <geoffk@apple.com>
2626
2627 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
2628 if user didn't pass it.
2629 * config/i386/darwin.h (CC1_SPEC): Likewise.
2630 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
2631 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
2632 -mmacosx-version-min.
2633
2634 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2635 Uros Bizjak <ubizjak@gmail.com>
2636
2637 * optabs.h (enum optab_index): Add new OTI_scalb.
2638 (scalb_optab): Define corresponding macro.
2639 * optabs.c (init_optabs): Initialize scalb_optab.
2640 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
2641 patterns.
2642 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
2643 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
2644 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
2645 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
2646 flag_unsafe_math_optimizations is set.
2647
2648 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
2649 to implement scalbf, scalb and scalbl built-ins as inline x87
2650 intrinsics.
2651
2652 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2653 DJ Delorie <dj@redhat.com>
2654
2655 PR other/30824
2656 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
2657 (diagnostic_report_diagnostic): ... here, and turn them into real
2658 errors. If warnings are inhibited, no need to do anything.
2659
2660 2007-02-20 Uros Bizjak <ubizjak@gmail.com>
2661
2662 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
2663 better code generation.
2664
2665 2007-02-20 Ben Elliston <bje@au.ibm.com>
2666
2667 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
2668
2669 2007-02-20 Kazu Hirata <kazu@codesourcery.com>
2670
2671 * config/alpha/alpha.c, config/alpha/alpha.md,
2672 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
2673 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
2674 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
2675 config/arm/lib1funcs.asm: Follow spelling conventions.
2676
2677 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
2678 config/fr30/fr30.md, config/i386/i386.h,
2679 config/iq2000/iq2000.h, config/iq2000/predicates.md,
2680 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
2681 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2682 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
2683 config/rs6000/altivec.md, config/rs6000/rs6000.c,
2684 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
2685 config/sparc/sparc.c, config/sparc/sparc.h,
2686 config/sparc/sparc.md, config/spu/constraints.md,
2687 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
2688 conventions.
2689
2690 2007-02-20 Alan Modra <amodra@bigpond.net.au>
2691
2692 PR target/29943
2693 * varasm.c (use_blocks_for_decl_p): Return false for decls with
2694 alias attribute.
2695
2696 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
2697
2698 * doc/invoke.texi (-ftree-lrs): Remove.
2699
2700 2007-02-19 Diego Novillo <dnovillo@redhat.com>
2701
2702 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
2703 NULL.
2704
2705 2007-02-19 Lee Millward <lee.millward@codesourcery.com>
2706
2707 * config/ia64/ia64.c (ia64_expand_builtin): Use the
2708 new CALL_EXPR_FN macro for retrieving the function
2709 declaration of the input expression.
2710
2711 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2712
2713 * c.opt (Waddress): New.
2714 * common.opt (Walways-true): Delete.
2715 (Wstring-literal-comparison): Delete.
2716 * doc/invoke.texi (Warning Options): Delete -Walways-true and
2717 -Wstring-literal-comparison. Add -Waddress.
2718 (Waddress): New.
2719 (Walways-true): Delete.
2720 (Wstring-literal-comparison): Delete.
2721 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
2722 consistently instead of -Walways-true in example.
2723 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
2724 * c-typeck.c (parser_build_binary_op): Replace
2725 -Wstring-literal-comparison and -Walways-true with -Waddress.
2726 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
2727 with -Waddress.
2728
2729 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
2730
2731 * tree-cfg.c (dump_function_to_file): Be prepared for functions
2732 without DECL_STRUCT_FUNCTION initialized.
2733
2734 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
2735
2736 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
2737 due to calls to functions taking pointers as parameters.
2738
2739 2007-02-19 Richard Henderson <rth@redhat.com>
2740
2741 PR debug/29558
2742 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
2743 in memory.
2744
2745 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
2746
2747 * config/s390/s390.c (s390_call_saved_register_used,
2748 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
2749 accessed to the new scheme.
2750
2751 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2752
2753 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
2754 (cris_print_index, cris_print_operand, cris_print_operand_address)
2755 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
2756 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
2757 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
2758 GET_CODE () == xxx.
2759 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
2760 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
2761 GO_IF_LEGITIMATE_ADDRESS): Ditto.
2762 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
2763 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
2764 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
2765 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
2766 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
2767 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
2768 (uminsi3, call, call_value): Ditto.
2769 (define_split: indir_to_reg_split, unnamed): Ditto.
2770
2771 2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
2772
2773 PR tree-optimization/30975
2774 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
2775 wrong assert.
2776
2777 2007-02-18 Eric Christopher <echristo@gmail.com>
2778
2779 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
2780 Remove use of arglist.
2781 (mips_expand_builtin): Remove use of arglist, pass in expr.
2782 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
2783 (mips_expand_builtin_movtf): Ditto.
2784 (mips_expand_builtin_compare): Ditto.
2785
2786 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
2787
2788 * tree-sra.c (sra_build_assignment): Replace assertion
2789 checking with a comment explaining why it can't be done.
2790
2791 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
2792
2793 PR middle-end/30833
2794 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
2795 during CALL_EXPR representation conversion.
2796 * tree-ssa-propagate.c (set_rhs): Likewise.
2797
2798 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
2799
2800 * tree-sra.c (sra_build_assignment): Disable assertion checking
2801 for now.
2802
2803 2007-02-18 Roger Sayle <roger@eyesopen.com>
2804
2805 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
2806 instead of calling build2 with a GIMPLE_MODIFY_STMT.
2807 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
2808 Likewise.
2809 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
2810 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
2811 gimplify_init_ctor_eval_range, gimple_push_cleanup,
2812 gimplify_omp_for, gimplify_omp_atomic_pipeline,
2813 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
2814 force_gimple_operand): Likewise.
2815 * ipa-cp.c (constant_val_insert): Likewise.
2816 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
2817 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
2818 perfect_nestify): Likewise.
2819 * langhooks.c (lhd_omp_assignment): Likewise.
2820 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
2821 lower_copyprivate_clauses, lower_send_clauses,
2822 lower_send_shared_vars, expand_parallel_call,
2823 expand_omp_for_generic, expand_omp_for_static_nochunk,
2824 expand_omp_for_static_chunk, expand_omp_sections,
2825 lower_omp_single_copy, lower_omp_for_lastprivate,
2826 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
2827 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
2828 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
2829 Likewise.
2830
2831 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
2832
2833 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
2834 config/sh/sh.md: Follow spelling conventions.
2835
2836 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
2837 config/frv/predicates.md: Follow spelling conventions.
2838
2839 * config/m68k/linux-unwind.h: Fix a comment typo.
2840 * target.h: Follow spelling conventions.
2841
2842 2007-02-18 Roger Sayle <roger@eyesopen.com>
2843
2844 PR rtl-optimization/28173
2845 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
2846 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
2847 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
2848 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
2849 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
2850
2851 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2852
2853 * builtins.c (fold_builtin_load_exponent): New.
2854 (fold_builtin_2): Use it.
2855
2856 2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
2857
2858 PR rtl-optimization/30773
2859 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
2860 if we fail to attach a REG_EQUIV note.
2861
2862 2007-02-18 David Edelsohn <edelsohn@gnu.org>
2863 Roger Sayle <roger@eyesopen.com>
2864
2865 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
2866
2867 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
2868
2869 * calls.c (initialize_argument_information): Pass original EXP
2870 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
2871 code to split complex arguments here, as part of initializing the
2872 ARGS array.
2873 (expand_call): Remove code that builds a list of arguments and
2874 inserts implicit arguments into it. Instead, just count how many
2875 implicit arguments there will be so we can determine the size of
2876 the ARGS array, and let initialize_argument_information do the work.
2877 (split_complex_values): Delete unused function.
2878
2879 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
2880
2881 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
2882
2883 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
2884
2885 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
2886 for arg pointer based indexed addressing.
2887
2888 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
2889
2890 * config/ia64/ia64.h, config/ia64/ia64.md,
2891 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
2892 spelling conventions.
2893
2894 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
2895
2896 * config/m68k/m68k.c (split_di): New.
2897 * config/m68k/m68k-protos.h: Declare split_di.
2898 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
2899 Improve predicate handling and split constant shifts.
2900
2901 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
2902
2903 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
2904 parameter for register bitfield operations, general predicates
2905 cleanup
2906
2907 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
2908
2909 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
2910 * config/m68k/linux-unwind.h: New file.
2911
2912 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
2913
2914 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
2915 config/i386/athlon.md, config/ia64/ia64.md,
2916 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
2917 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
2918 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
2919 tree-ssa-loop-niter.c, tree-vect-analyze.c,
2920 tree-vect-transform.c: Fix comment typos.
2921
2922 2007-02-17 Kazu Hirata <kazu@codesourcery.com>
2923
2924 * sched-deps.c (find_insn_list): Remove.
2925 * sched-int.h: Remove the prototype for find_insn_list.
2926
2927 2007-02-16 Geoffrey Keating <geoffk@apple.com>
2928
2929 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
2930 to linker.
2931 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
2932 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
2933 darwin_rs6000_override_options.
2934 (C_COMMON_OVERRIDE_OPTIONS): Expect
2935 darwin_macosx_version_min to be non-NULL always.
2936 (TARGET_C99_FUNCTIONS): Likewise.
2937 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
2938 (DARWIN_MINVERSION_SPEC): New.
2939 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
2940 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
2941 to cc1*.
2942 (DARWIN_MINVERSION_SPEC): New.
2943 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
2944 value.
2945 * config/darwin-c.c (darwin_cpp_builtins): Expect
2946 darwin_macosx_version_min to be non-NULL always.
2947
2948 * config/rs6000/rs6000.c: Clean up trailing whitespace.
2949
2950 2007-02-16 Uros Bizjak <ubizjak@gmail.com>
2951
2952 * config/i386/i386.h (x86_use_xchgb): New.
2953 (TARGET_USE_XCHGB): New macro.
2954 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
2955 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
2956 Split after reload into bswaphi for shifts of 8.
2957 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
2958 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
2959 or when optimizing for size.
2960
2961 2007-02-16 Richard Guenther <rguenther@suse.de>
2962 Christian Bruel <christian.bruel@st.com>
2963
2964 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
2965 DECLs but prefer SSA_NAMEs over DECLs.
2966
2967 2007-02-16 Richard Guenther <rguenther@suse.de>
2968
2969 * tree-flow-inline.h (single_imm_use_p): Remove.
2970 (zero_imm_uses_p): Likewise.
2971 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
2972 instead of single_imm_use_p.
2973 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
2974 zero_imm_uses_p.
2975
2976 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2977
2978 PR other/27843
2979 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
2980 nested double- and backquotes.
2981
2982 2007-02-15 Roger Sayle <roger@eyesopen.com>
2983
2984 PR middle-end/30391
2985 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
2986 should be unreachable.
2987 (build2_stat): Allow construction of MODIFY_EXPR at any time.
2988 For the time being redirect GIMPLE_MODIFY_STMT to the new
2989 (renamed) build_gimple_modify_stmt_stat.
2990 (build2_gimple_stat): Rename to...
2991 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
2992 Always build a GIMPLE_MODIFY_STMT node.
2993 * tree.h (build2_gimple, build2_gimple_stat): Delete.
2994 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
2995 declarations.
2996
2997 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
2998 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
2999 * tree-complex.c (set_component_ssa_name, expand_complex_move,
3000 expand_complex_div_wide): Likewise.
3001 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
3002 * tree-ssa-loop-im.c (schedule_sm): Likewise.
3003 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
3004 * tree-ssa-loop-manip.c (create_iv): Likewise.
3005 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
3006 abs_replacement): Likewise.
3007 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
3008 realify_fake_stores): Likewise.
3009
3010 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
3011 node rather than a GIMPLE_MODIFY_STMT node.
3012 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
3013 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
3014 Likewise.
3015 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
3016 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
3017 GIMPLE_MODIFY_STMT.
3018
3019 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3020
3021 PR middle-end/30433
3022 * fold-const.c (fold_comparison): Add back the
3023 folding of constant complex comparisions.
3024
3025 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3026
3027 PR middle-end/30729
3028 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
3029 effects unknown to this function, return early.
3030
3031 2007-02-15 Ian Lance Taylor <iant@google.com>
3032
3033 * lower-subreg.c (move_eh_region_note): New static function.
3034 (resolve_simple_move): Call it.
3035 (decompose_multiword_subregs): Track blocks for which we resolve a
3036 simple move which is also a control flow insn. Pass them to
3037 find_many_sub_basic_blocks.
3038 (pass_lower_subreg): Add TODO_verify_flow.
3039 (pass_lower_subreg2): Likewise.
3040
3041 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
3042 Brooks Moses <brooks.moses@codesourcery.com>
3043 Lee Millward <lee.millward@codesourcery.com>
3044
3045 * tree.h (enum tree_code_class): Add tcc_vl_exp.
3046 (VL_EXP_CLASS_P): New.
3047 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
3048 TREE_CODE_LENGTH.
3049 (TREE_OPERAND_CHECK_CODE): Likewise.
3050 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
3051 (TREE_RTL_OPERAND_CHECK): Likewise.
3052 (tree_operand_check_failed): Make second parameter the whole tree
3053 instead of its code. Fixed callers.
3054 (VL_EXP_CHECK): New.
3055 (TREE_OPERAND_LENGTH): New.
3056 (VL_EXP_OPERAND_LENGTH): New.
3057 (CALL_EXPR_FN): New.
3058 (CALL_EXPR_STATIC_CHAIN): New.
3059 (CALL_EXPR_ARGS): New.
3060 (CALL_EXPR_ARG): New.
3061 (call_expr_nargs): New.
3062 (CALL_EXPR_ARGP): New.
3063 (build_nt_call_list): Declare.
3064 (build_vl_exp_stat): Declare.
3065 (build_vl_exp): New.
3066 (build_call_list): Declare.
3067 (build_call_nary): Declare.
3068 (build_call_valist): Declare.
3069 (build_call_array): Declare.
3070 (call_expr_arg): Declare.
3071 (call_expr_argp): Declare.
3072 (call_expr_arglist): Declare.
3073 (fold_build_call_list): Declare.
3074 (fold_build_call_list_initializer): Declare.
3075 (fold_call_expr): Declare to replace fold_builtin.
3076 (fold_builtin_fputs): Update to agree with modified definition.
3077 (fold_builtin_strcpy): Likewise.
3078 (fold_builtin_strncpy): Likewise.
3079 (fold_builtin_memory_chk): Likewise.
3080 (fold_builtin_stxcpy_chk): Likewise.
3081 (fold_builtin_strncpy_chk): Likewise.
3082 (fold_builtin_next_arg): Likewise.
3083 (fold_build_call_expr): Declare.
3084 (fold_builtin_call_list): Declare.
3085 (fold_builtin_call_valist): Declare.
3086 (build_call_expr): Declare.
3087 (validate_arglist): Update to agree with modified definition.
3088 (tree_operand_length): New.
3089 (call_expr_arg_iterator): New.
3090 (init_call_expr_arg_iterator): New.
3091 (next_call_expr_arg): New.
3092 (first_call_expr_arg): New.
3093 (more_call_expr_args_p): New.
3094 (FOR_EACH_CALL_EXPR_ARG): New.
3095
3096 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
3097 and tcc_gimple_stmt.
3098 (tree_code_size): Update documentation. Use sizeof (tree) rather
3099 than sizeof (char *).
3100 (tree_size): Likewise. Add case for tcc_vl_exp.
3101 (tree_node_structure): Add case for tcc_vl_exp.
3102 (contains_placeholder_p): Likewise.
3103 (substitute_in_expr): Likewise.
3104 (substitute_placeholder_in_expr): Likewise.
3105 (stabilize_reference_1): Likewise.
3106 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
3107 to diagnose breakage of this interface for constructing CALL_EXPRs.
3108 (build_nt): Add similar assertion here.
3109 (build_nt_call_list): New.
3110 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
3111 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
3112 TREE_CODE_LENGTH.
3113 (get_callee_fndecl): Use new CALL_EXPR accessors.
3114 (tree_operand_check_failed): Change parameters to pass entire node
3115 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
3116 (process_call_operands): New.
3117 (build_vl_exp_stat): New.
3118 (build_call_list): New.
3119 (build_call_nary): New.
3120 (build_call_valist): New.
3121 (build_call_array): New.
3122 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3123 (call_expr_arglist): New.
3124
3125 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
3126 tcc_vl_exp instead of a fixed-size tcc_expression.
3127
3128 * doc/c-tree.texi (CALL_EXPR): Document new representation and
3129 accessors for CALL_EXPRs.
3130 (AGGR_INIT_EXPR): Likewise.
3131
3132 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
3133 Brooks Moses <brooks.moses@codesourcery.com>
3134 Lee Millward <lee.millward@codesourcery.com>
3135
3136 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
3137 (expand_builtin_nonlocal_goto): Change parameter to be entire
3138 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
3139 (expand_builtin_prefetch): Likewise.
3140 (expand_builtin_classify_type): Likewise.
3141 (mathfn_built_in): Return NULL_TREE instead of 0.
3142 (expand_errno_check): Use new CALL_EXPR accessors.
3143 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
3144 Return NULL_RTX instead of 0.
3145 (expand_builtin_mathfn_2): Likewise.
3146 (expand_builtin_mathfn_3): Likewise.
3147 (expand_builtin_interclass_mathfn): Likewise.
3148 (expand_builtin_sincos): Likewise.
3149 (expand_builtin_cexpi): Likewise.
3150 (expand_builtin_int_roundingfn): Likewise.
3151 (expand_builtin_int_roundingfn_2): Likewise.
3152 (expand_builtin_pow): Likewise.
3153 (expand_builtin_powi): Likewise.
3154 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
3155 of arglist, fixing callers appropriately. Use new CALL_EXPR
3156 accessors and constructors. Return NULL_RTX instead of 0.
3157 (expand_builtin_strstr): Likewise.
3158 (expand_builtin_strchr): Likewise.
3159 (expand_builtin_strrchr): Likewise.
3160 (expand_builtin_strpbrk): Likewise.
3161 (expand_builtin_memcpy): Likewise.
3162 (expand_builtin_mempcpy): Likewise.
3163 (expand_builtin_mempcpy_args): New.
3164 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
3165 (expand_builtin_memmove_args): New.
3166 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
3167 (expand_movstr): Likewise.
3168 (expand_builtin_strcpy): Likewise.
3169 (expand_builtin_strcpy_args): New.
3170 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
3171 (expand_builtin_strncpy): Likewise.
3172 (expand_builtin_memset): Likewise.
3173 (expand_builtin_memset_args): New.
3174 (expand_builtin_bzero): Similarly to expand_builtin_memset.
3175 (expand_builtin_memcmp): Likewise.
3176 (expand_builtin_strcmp): Likewise.
3177 (expand_builtin_strncmp): Likewise.
3178 (expand_builtin_strcat): Likewise.
3179 (expand_builtin_strncat): Likewise.
3180 (expand_builtin_strspn): Likewise.
3181 (expand_builtin_strcspn): Likewise.
3182 (expand_builtin_args_info): Likewise.
3183 (expand_builtin_va_start): Likewise.
3184 (gimplify_va_arg_expr): Likewise.
3185 (expand_builtin_va_end): Likewise.
3186 (expand_builtin_va_copy): Likewise.
3187 (expand_builtin_frame_address): Likewise.
3188 (expand_builtin_alloca): Likewise.
3189 (expand_builtin_bswap): Likewise.
3190 (expand_builtin_unop): Likewise.
3191 (expand_builtin_fputs): Likewise.
3192 (expand_builtin_expect): Likewise.
3193 (expand_builtin_fabs): Likewise.
3194 (expand_builtin_copysign): Likewise.
3195 (expand_builtin_printf): Likewise.
3196 (expand_builtin_fprintf): Likewise.
3197 (expand_builtin_sprintf): Likewise.
3198 (expand_builtin_init_trampoline): Likewise.
3199 (expand_builtin_signbit): Likewise.
3200 (expand_builtin_fork_or_exec): Likewise.
3201 (expand_builtin_sync_operation): Likewise.
3202 (expand_builtin_compare_and_swap): Likewise.
3203 (expand_builtin_lock_test_and_set): Likewise.
3204 (expand_builtin_lock_release): Likewise.
3205 (expand_builtin): Likewise.
3206 (builtin_mathfn_code): Likewise.
3207
3208 (fold_builtin_constant_p): Pass call arguments individually instead
3209 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
3210 accessors and constructors. Return NULL_TREE instead of 0.
3211 (fold_builtin_expect): Likewise.
3212 (fold_builtin_classify_type): Likewise.
3213 (fold_builtin_strlen): Likewise.
3214 (fold_builtin_nan): Likewise.
3215 (integer_valued_real_p): Likewise.
3216 (fold_trunc_transparent_mathfn): Likewise.
3217 (fold_fixed_mathfn): Likewise.
3218 (fold_builtin_cabs): Likewise.
3219 (fold_builtin_sqrt): Likewise.
3220 (fold_builtin_cbrt): Likewise.
3221 (fold_builtin_cos): Likewise.
3222 (fold_builtin_cosh): Likewise.
3223 (fold_builtin_tan): Likewise.
3224 (fold_builtin_sincos): Likewise.
3225 (fold_builtin_cexp): Likewise.
3226 (fold_builtin_trunc): Likewise.
3227 (fold_builtin_floor): Likewise.
3228 (fold_builtin_ceil): Likewise.
3229 (fold_builtin_round): Likewise.
3230 (fold_builtin_int_roundingfn): Likewise.
3231 (fold_builtin_bitop): Likewise.
3232 (fold_builtin_bswap): Likewise.
3233 (fold_builtin_logarithm): Likewise.
3234 (fold_builtin_hypot): Likewise.
3235 (fold_builtin_pow): Likewise.
3236 (fold_builtin_powi): Likewise.
3237 (fold_builtin_exponent): Likewise.
3238 (fold_builtin_memset): Likewise.
3239 (fold_builtin_bzero): Likewise.
3240 (fold_builtin_memory_op): Likewise.
3241 (fold_builtin_bcopy): Deleted; call site changed to invoke
3242 fold_builtin_memory_op directly.
3243 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
3244 (fold_builtin_strncpy): Likewise.
3245 (fold_builtin_memcmp): Likewise.
3246 (fold_builtin_strcmp): Likewise.
3247 (fold_builtin_strncmp): Likewise.
3248 (fold_builtin_signbit): Likewise.
3249 (fold_builtin_copysign): Likewise.
3250 (fold_builtin_isascii): Likewise.
3251 (fold_builtin_toascii): Likewise.
3252 (fold_builtin_isdigit): Likewise.
3253 (fold_builtin_fabs): Likewise.
3254 (fold_builtin_abs): Likewise.
3255 (fold_builtin_fmin_fmax): Likewise.
3256 (fold_builtin_carg): Likewise.
3257 (fold_builtin_classify): Likewise.
3258 (fold_builtin_unordered_cmp): Likewise.
3259
3260 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
3261 New functions split out from fold_builtin_1.
3262 (fold_builtin_n): New.
3263 (fold_builtin_varargs): New.
3264 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
3265 instead.
3266 (fold_call_expr): New.
3267 (build_function_call_expr): Rewrite to use new helper function.
3268 (fold_builtin_call_list): New.
3269 (build_call_expr): New.
3270 (fold_builtin_call_valist): New.
3271 (rewrite_call_expr): New.
3272 (validate_arg): New.
3273 (validate_arglist): Change parameter to be entire CALL_EXPR instead
3274 of an arglist. Change return type to bool. Use new CALL_EXPR
3275 accessors.
3276
3277 (fold_builtin_strstr): Pass call arguments individually instead
3278 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
3279 accessors and constructors. Return NULL_TREE instead of 0.
3280 (fold_builtin_strchr): Likewise.
3281 (fold_builtin_strrchr): Likewise.
3282 (fold_builtin_strpbrk): Likewise.
3283 (fold_builtin_strcat): Likewise.
3284 (fold_builtin_strncat): Likewise.
3285 (fold_builtin_strspn): Likewise.
3286 (fold_builtin_strcspn): Likewise.
3287 (fold_builtin_fputs): Likewise.
3288 (fold_builtin_next_arg): Likewise.
3289 (fold_builtin_sprintf): Likewise.
3290
3291 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
3292 NULL_RTX instead of 0.
3293 (expand_builtin_memory_chk): Likewise.
3294 (maybe_emit_chk_warning): Likewise.
3295 (maybe_emit_sprintf_chk_warning): Likewise.
3296
3297 (fold_builtin_object_size): Pass call arguments individually instead
3298 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
3299 accessors and constructors. Return NULL_TREE instead of 0.
3300 (fold_builtin_memory_chk): Likewise.
3301 (fold_builtin_stxcpy_chk): Likewise.
3302 (fold_builtin_strncpy_chk): Likewise.
3303 (fold_builtin_strcat_chk): Likewise.
3304 (fold_builtin_strcat_chk): Likewise.
3305 (fold_builtin_strncat_chk): Likewise.
3306 (fold_builtin_sprintf_chk): Likewise.
3307 (fold_builtin_snprintf_chk): Likewise.
3308 (fold_builtin_printf): Likewise.
3309 (fold_builtin_vprintf): Likewise.
3310
3311 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
3312 constructors.
3313 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
3314 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3315 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
3316 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
3317 (fold_unary): Likewise.
3318 (fold_binary): Likewise.
3319 (fold_ternary): Remove CALL_EXPR case, since they are no longer
3320 ternary expressions.
3321 (fold): Add logic for tcc_vl_exp.
3322 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
3323 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3324 (fold_build3_stat): Add assertion to flag broken interface for
3325 constructing CALL_EXPRs.
3326 (fold_build_call_list): New.
3327 (fold_build_call_list_initializer): New.
3328 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
3329 constructors.
3330 (fold_strip_sign_ops): Likewise.
3331
3332 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
3333 Brooks Moses <brooks.moses@codesourcery.com>
3334 Lee Millward <lee.millward@codesourcery.com>
3335
3336 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
3337 accessors and dump arguments explicitly.
3338
3339 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
3340 TREE_CODE_LENGTH.
3341 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
3342 explicitly.
3343 (print_call_name): Use new CALL_EXPR accessors.
3344
3345 * print-tree.c (print_node): Add case tcc_vl_exp. Print
3346 CALL_EXPR arguments explicitly instead of as a list. Use
3347 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3348
3349 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
3350 (vrp_visit_stmt): Likewise.
3351
3352 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
3353 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
3354 TREE_CODE_LENGTH.
3355 (force_move_till_expr): Likewise.
3356
3357 * targhooks.c (default_external_stack_protect_fail): Use
3358 build_call_expr instead of build_function_call_expr.
3359 (default_hidden_stack_protect_fail): Likewise.
3360
3361 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
3362 build the call.
3363
3364 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
3365 and walk arguments explicitly.
3366
3367 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
3368 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3369 (expand_simple_operations): Likewise.
3370 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
3371
3372 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
3373 of TREE_CODE_LENGTH.
3374 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
3375
3376 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
3377 instead of TREE_CODE_LENGTH.
3378
3379 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
3380 (tree_ic_transform): Likewise.
3381 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
3382 parameter instead of arglist. Fix callers.
3383 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
3384 (tree_stringops_transform): Likewise.
3385 (tree_indirect_call_to_profile): Likewise.
3386 (tree_stringops_values_to_profile): Likewise.
3387
3388 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
3389 (eliminate_tail_call): Likewise.
3390
3391 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
3392
3393 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3394 Use TREE_OPERAND_LENGTH and generalize to handle any number of
3395 operands.
3396 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
3397
3398 * omp-low.c (build_omp_barrier): Use build_call_expr.
3399 (lower_rec_input_clauses): Likewise.
3400 (lower_reduction_clauses): Likewise.
3401 (expand_parallel_call): Likewise.
3402 (maybe_catch_exception): Likewise.
3403 (expand_omp_for_generic): Likewise.
3404 (expand_omp_for_static_nochunk): Likewise.
3405 (expand_omp_sections): Likewise.
3406 (lower_omp_single_simple): Likewise.
3407 (lower_omp_single_copy): Likewise.
3408 (lower_omp_master): Likewise.
3409 (lower_omp_ordered): Likewise.
3410 (lower_omp_critical): Likewise.
3411
3412 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
3413 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
3414
3415 * tree-gimple.c (is_gimple_call_addr): Fix doc.
3416 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
3417 TREE_CODE_LENGTH. Add tcc_vl_exp case.
3418
3419 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
3420 and generalize to handle any number of operands.
3421 (chrec_contains_undetermined): Likewise.
3422 (tree_contains_chrecs): Likewise.
3423 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
3424
3425 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
3426
3427 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
3428 fold_call_expr instead of fold_builtin.
3429 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
3430 match declarations there.
3431 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
3432 updates.
3433
3434 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
3435 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3436
3437 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
3438 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
3439
3440 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
3441 accessors.
3442
3443 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
3444 (execute_cse_sincos): Use new CALL_EXPR accessors.
3445
3446 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
3447
3448 * gimple-low.c (lower_function_body): Use build_call_expr.
3449 (lower_builtin_setjmp): Likewise.
3450
3451 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
3452 (set_storage_via_libcall): Likewise.
3453 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
3454 instead of TREE_CODE_LENGTH.
3455 (expand_expr_real_1): Use new CALL_EXPR accessors.
3456
3457 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
3458 generalize to handle any number of operands.
3459 (TB_parent_eq): Likewise.
3460
3461 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
3462 (strip_builtin_expect): Likewise.
3463
3464 * function.c (gimplify_parameters): Use build_call_expr.
3465
3466 * tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
3467 instead of TREE_CODE_LENGTH.
3468
3469 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
3470 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
3471
3472 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
3473 iterators.
3474
3475 * gimplify.c (build_stack_save_restore): Use build_call_expr.
3476 (gimplify_decl_expr): Likewise.
3477 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
3478 Use new CALL_EXPR iterators.
3479 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
3480 (gimplify_modify_expr_to_memset): Likewise.
3481 (gimplify_variable_sized_compare): Likewise.
3482 (gimplify_omp_atomic_fetch_op): Likewise.
3483 (gimplify_omp_atomic_pipeline): Likewise.
3484 (gimplify_omp_atomic_mutex): Likewise.
3485 (gimplify_function_tree): Likewise.
3486
3487 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
3488 (call_expr_flags): Likewise.
3489 (expand_call): Likewise.
3490
3491 * except.c (expand_builtin_eh_return_data_regno): Pass entire
3492 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
3493 accessors.
3494
3495 * coverage.c (create_coverage): Use build_call_expr.
3496
3497 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
3498 (temp_call_expr_obstack): New.
3499 (pool_copy_list): Delete.
3500 (temp_copy_call_expr): New.
3501 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
3502 CALL_EXPR accessors. Get rid of special goo for copying argument
3503 lists and use temp_copy_call_expr instead.
3504 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
3505 CALL_EXPR accessors.
3506 (create_expression_by_pieces): Likewise. Use build_call_array
3507 to construct the result instead of fold_build3.
3508 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
3509 dealing with argument lists.
3510 (init_pre): Remove references to expression_node_pool and
3511 list_node_pool. Init temp_call_expr_obstack instead.
3512 (fini_pre): Remove references to expression_node_pool and
3513 list_node_pool.
3514
3515 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
3516 and walk arguments explicitly instead of as a list.
3517
3518 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
3519 (mx_register_decls): Likewise.
3520 (mudflap_register_call): Likewise.
3521 (mudflap_finish_file): Likewise.
3522
3523 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
3524 (ipa_callsite_compute_param): Likewise.
3525
3526 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
3527 accessors and constructor.
3528
3529 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
3530 accessors and constructor.
3531 (convert_tramp_reference): Likewise.
3532 (convert_call_expr): Likewise.
3533 (finalize_nesting_tree_1): Likewise.
3534
3535 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
3536 accessors.
3537
3538 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
3539
3540 * tree-inline.c (initialize_inlined_parameters): Pass entire
3541 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
3542 accessors.
3543 (estimate_num_insns_1): Use new CALL_EXPR accessors.
3544 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
3545
3546 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
3547 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3548 (vectorizable_reduction): Likewise.
3549 (vectorizable_call): Use new CALL_EXPR iterators.
3550 (vectorizable_conversion): Use build_call_expr.
3551 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
3552 (vect_gen_widened_results_half): Use build_call_expr.
3553 (vect_setup_realignment): Likewise.
3554 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
3555
3556 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
3557 (pass_through_call): Likewise.
3558 (compute_object_sizes): Likewise. Use fold_call_expr instead of
3559 fold_builtin.
3560
3561 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
3562 (tree_gen_pow2_profiler): Likewise.
3563 (tree_gen_one_value_profiler): Likewise.
3564 (tree_gen_ic_func_profiler): Likewise.
3565 (tree_gen_average_profiler): Likewise.
3566 (tree_gen_ior_profiler): Likewise.
3567
3568 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
3569 (find_func_aliases): Use new CALL_EXPR accessors. Add case
3570 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
3571
3572 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
3573 of TREE_CODE_LENGTH.
3574
3575 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
3576 of TREE_CODE_LENGTH.
3577
3578 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
3579 constructor.
3580 (convert_to_integer): Likewise.
3581
3582 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
3583 accessors.
3584
3585 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
3586 Brooks Moses <brooks.moses@codesourcery.com>
3587 Lee Millward <lee.millward@codesourcery.com>
3588
3589 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
3590 accessors.
3591 * config/frv/frv.c (frv_expand_builtin): Likewise.
3592 * config/s390/s390.c (s390_expand_builtin): Likewise.
3593
3594 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
3595 (sparc_expand_builtin): Use new CALL_EXPR accessors.
3596
3597 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
3598 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
3599 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
3600 (ix86_expand_store_builtin): Likewise.
3601 (ix86_expand_unop_builtin): Likewise.
3602 (ix86_expand_unop1_builtin): Likewise.
3603 (ix86_expand_sse_compare): Likewise.
3604 (ix86_expand_sse_comi): Likewise.
3605 (ix86_expand_vec_init_builtin): Likewise.
3606 (ix86_expand_vec_ext_builtin): Likewise.
3607 (ix86_expand_vec_set_builtin): Likewise.
3608 (ix86_expand_builtin): Use new CALL_EXPR accessors.
3609
3610 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
3611 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3612
3613 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
3614 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
3615 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
3616
3617 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
3618 build_call_expr.
3619 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3620 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
3621 arglist. Use new CALL_EXPR accessors. Fix callers.
3622 (altivec_expand_abs_builtin): Likewise.
3623 (rs6000_expand_binop_builtin): Likewise.
3624 (altivec_expand_predicate_builtin): Likewise.
3625 (altivec_expand_lv_builtin): Likewise.
3626 (spe_expand_stv_builtin): Likewise.
3627 (altivec_expand_stv_builtin): Likewise.
3628 (rs6000_expand_ternop_builtin): Likewise.
3629 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
3630 (altivec_expand_st_builtin): Likewise.
3631 (altivec_expand_dst_builtin): Likewise.
3632 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
3633 arglist. Use new CALL_EXPR accessors. Fix callers.
3634 (altivec_expand_vec_set_builtin): Likewise.
3635 (altivec_expand_vec_ext_builtin): Likewise.
3636 (altivec_expand_builtin): Use new CALL_EXPR accessors.
3637 (spe_expand_builtin): Likewise.
3638 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
3639 arglist. Use new CALL_EXPR accessors. Fix callers.
3640 (spe_expand_evsel_builtin): Likewise.
3641 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
3642 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
3643
3644 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
3645 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
3646 (arm_expand_unop_builtin): Likewise.
3647 (arm_expand_builtin): Use new CALL_EXPR accessors.
3648
3649 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
3650 accessors.
3651
3652 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
3653 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
3654 (bfin_expand_unop_builtin): Likewise.
3655 (bfin_expand_builtin): Use new CALL_EXPR accessors.
3656
3657 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
3658 Brooks Moses <brooks.moses@codesourcery.com>
3659 Lee Millward <lee.millward@codesourcery.com>
3660
3661 * c-semantics.c (build_stmt): Add internal diagnostic check.
3662
3663 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
3664 accessors. Print arguments explicitly instead of as a list.
3665
3666 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
3667
3668 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
3669 (c_finish_omp_flish): Likewise.
3670
3671 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
3672 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
3673 instead of TREE_CODE_LENGTH.
3674 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
3675 (c_warn_unused_result): Likewise.
3676
3677 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3678
3679 PR c/26494
3680 * doc/invoke.texi (Warning Options): Remove
3681 -Werror-implicit-function-declaration.
3682 (Wimplicit-function-declaration): Update description.
3683 * opts.c (common_handle_option): Move handling of -Werror=* to...
3684 (enable_warning_as_error): ...here.
3685 * opts.h (enable_warning_as_error): Declare.
3686 * c-decl.c (implicit_decl_warning): Unless
3687 -Wno-implicit-function-declaration is given, emit a pedwarn if
3688 -std=c99 or emit a warning if -Wimplicit-function-declaration.
3689 * c.opt (Wimplicit-function-declaration): Replace
3690 mesg_implicit_function_declaration with
3691 warn_implicit_function_declaration.
3692 * c-opts.c (c_common_handle_option):
3693 -Werror-implicit-function-declaration is exactly equal as
3694 -Werror=implicit-function-declaration.
3695 (set_Wimplicit): Replace mesg_implicit_function_declaration with
3696 warn_implicit_function_declaration.
3697 (c_common_post_options): -Wimplict-function-declaration is enabled
3698 by default by -std=c99, otherwise is disabled by default.
3699 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
3700
3701 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
3702
3703 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
3704 DECL on the rhs to a DECL on the lhs for debug info purposes if the
3705 former is ignored but not the latter.
3706
3707 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
3708
3709 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
3710 is made and the reference doesn't use the alias set of its type,
3711 do not create the temporary using that type.
3712
3713 2007-02-15 Aldy Hernandez <aldyh@redhat.com>
3714
3715 * jump.c: Remove prototypes for delete_computation and
3716 delete_prior_computation.
3717
3718 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
3719
3720 * jump.c (get_label_after): Delete.
3721 (get_label_before, delete_computation, delete_jump,
3722 delete_prior_computation, follow_jumps): Move...
3723 * reorg.c (delete_computation, delete_prior_computation): ... here...
3724 (get_label_before, delete_jump): ... making these static ...
3725 (follow_jumps): ... and simplifying this since it only runs after
3726 reload.
3727 * rtl.h (get_label_after, get_label_before, delete_jump,
3728 follow_jumps): Delete prototypes.
3729
3730 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
3731
3732 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
3733
3734 2007-02-15 Nick Clifton <nickc@redhat.com>
3735
3736 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
3737 order to prevent it from being munged by the target.
3738
3739 2007-02-15 Uros Bizjak <ubizjak@gmail.com>
3740
3741 * config/i386/i386.md: Remove misleading comment.
3742
3743 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
3744
3745 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
3746 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
3747 invalid patterns.
3748
3749 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
3750
3751 * tree-sra.c (instantiate_missing_elements): Canonicalize
3752 bit-field types.
3753 (sra_build_assignment): New.
3754 (generate_copy_inout, generate_element_copy,
3755 generate_element_zero, generate_one_element_init): Use it.
3756
3757 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
3758
3759 * tree-sra.c (instantiate_missing_elements): Canonicalize
3760 bit-field types.
3761 (sra_build_assignment): New.
3762 (generate_copy_inout, generate_element_copy,
3763 generate_element_zero, generate_one_element_init): Use it.
3764
3765 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
3766
3767 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
3768 limbo die nodes.
3769
3770 2007-02-14 Joseph Myers <joseph@codesourcery.com>
3771
3772 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
3773 types as aggregates not scalars.
3774 * function.c (assign_stack_temp_for_type): Likewise.
3775
3776 2007-02-14 Roger Sayle <roger@eyesopen.com>
3777 Zdenek Dvorak <dvorakz@suse.cz>
3778
3779 * tree-dump.c (dump_switch_p_1): Require exact match of the option
3780 name.
3781
3782 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
3783
3784 * passes.c (next_pass_1): Clear the next field of the copied
3785 pass structure.
3786
3787 2007-02-14 Richard Henderson <rth@redhat.com>
3788
3789 * tree-sra.c (early_sra): New.
3790 (decl_can_be_decomposed_p): Deny va_list if early_sra.
3791 (tree_sra_early, pass_sra_early): New.
3792 * tree-pass.h (pass_sra_early): Declare.
3793 * passes.c (init_optimization_passes): Use it.
3794
3795 2007-02-14 Richard Guenther <rguenther@suse.de>
3796
3797 * flags.h (issue_strict_overflow_warning): Convert to a macro.
3798
3799 2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
3800
3801 PR tree-optimization/30771
3802 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
3803 also phi nodes.
3804 (vect_analyze_operations): Induction phis can now be marked as
3805 used_in_loop.
3806 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
3807 Update documentation accordingly.
3808
3809 2007-02-14 Nick Clifton <nickc@redhat.com>
3810
3811 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
3812 most 3 arguments are supported.
3813 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
3814
3815 2007-02-13 Seongbae Park <seongbae.park@gmail.com>
3816
3817 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
3818 Ensure dst->current is valid.
3819
3820 2007-02-13 Paul Brook <paul@codesourcery.com>
3821
3822 * config.gcc: Add arm*-*-uclinux-*eabi.
3823 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3824 (SUBTARGET_EXTRA_LINK_SPEC): Define.
3825 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
3826 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
3827 (LINK_SPEC): Define.
3828 (LIB_SPEC): Define.
3829 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
3830 register.
3831 * config/arm/uclinux-eabi.h: New file.
3832 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
3833 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
3834 based targets.
3835
3836 2007-02-13 Ian Lance Taylor <iant@google.com>
3837
3838 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
3839 * flags.h (warn_strict_overflow): Declare.
3840 (enum warn_strict_overflow_code): Define.
3841 (issue_strict_overflow_warning): New static inline function.
3842 * opts.c (warn_strict_overflow): New variable.
3843 (common_handle_option): Handle OPT_Wstrict_overflow and
3844 OPT_Wstrict_overflow_.
3845 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
3846 OPT_Wall.
3847 * fold-const.c: Include intl.h.
3848 (fold_deferring_overflow_warnings): New static variable.
3849 (fold_deferred_overflow_warning): New static variable.
3850 (fold_deferred_overflow_code): New static variable.
3851 (fold_defer_overflow_warnings): New function.
3852 (fold_undefer_overflow_warnings): New function.
3853 (fold_undefer_and_ignore_overflow_warnings): New function.
3854 (fold_deferring_overflow_warnings_p): New function.
3855 (fold_overflow_warning): New static function.
3856 (make_range): Add strict_overflow_p parameter. Change all
3857 callers.
3858 (extract_muldiv, extract_muldiv_1): Likewise.
3859 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
3860 tree_expr_nonnegative_p.
3861 (fold_negate_expr): Call fold_overflow_warning.
3862 (fold_range_test): Likewise.
3863 (fold_comparison): Likewise.
3864 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
3865 instead of tree_expr_nonnegative_p.
3866 (tree_expr_nonnegative_warnv_p): Rename from
3867 tree_expr_nonnegative_p, add strict_overflow_p parameter.
3868 (tree_expr_nonnegative_p): New function.
3869 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
3870 strict_overflow_p parameter.
3871 (tree_expr_nonzero_p): New function.
3872 * passes.c (verify_interpass_invariants): New static function.
3873 (execute_one_pass): Call it.
3874 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
3875 warnings.
3876 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
3877 (estimate_numbers_of_iterations): Likewise.
3878 (scev_probably_wraps_p): Likewise.
3879 * tree-ssa-ccp.c: Include "toplev.h".
3880 (evaluate_stmt): Defer fold overflow warnings until we know we are
3881 going to optimize.
3882 (struct fold_stmt_r_data): Add stmt field.
3883 (fold_stmt_r): Defer fold overflow warnings until we know we
3884 optimized.
3885 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
3886 (fold_stmt_inplace): Likewise.
3887 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
3888 (cleanup_control_expr_graph): Defer fold overflow warnings until
3889 we know we are going to optimize.
3890 * tree-cfg.c (fold_cond_expr_cond): Likewise.
3891 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
3892 Likewise.
3893 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
3894 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
3895 * tree-ssa-loop-manip.c (create_iv): Likewise.
3896 * c-typeck.c (build_conditional_expr): Likewise.
3897 (build_binary_op): Likewise.
3898 * tree-vrp.c (vrp_expr_computes_nonzero): Call
3899 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
3900 (extract_range_from_unary_expr): Likewise.
3901 * simplify-rtx.c (simplify_const_relational_operation): Warn when
3902 assuming that signed overflow does not occur.
3903 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
3904 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
3905 (fold_defer_overflow_warnings): Declare.
3906 (fold_undefer_overflow_warnings): Declare.
3907 (fold_undefer_and_ignore_overflow_warnings): Declare.
3908 (fold_deferring_overflow_warnings_p): Declare.
3909 (tree_expr_nonzero_warnv_p): Declare.
3910 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
3911 of warning options.
3912 (Warning Options): Document -Wstrict-overflow.
3913 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
3914 (tree-ssa-ccp.o): Likewise.
3915 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
3916 (fold-const.o): Depend on intl.h.
3917
3918 2007-02-13 Ian Lance Taylor <iant@google.com>
3919
3920 PR middle-end/30751
3921 * lower-subreg.c (resolve_simple_move): Decompose subregs in
3922 addresses.
3923
3924 2007-02-13 Stuart Hastings <stuart@apple.com>
3925
3926 * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
3927
3928 2007-02-13 Richard Henderson <rth@redhat.com>
3929
3930 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
3931 handled_component_p before looking for the indirect_ref.
3932
3933 2007-02-13 Richard Henderson <rth@redhat.com>
3934
3935 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
3936 remove flags clobber.
3937 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
3938 (bswaphi_lowpart): New.
3939 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
3940 remove TARGET_BSWAP test. Delete expander of the same name.
3941
3942 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
3943 (expand_unop): Use them.
3944
3945 2007-02-13 Uros Bizjak <ubizjak@gmail.com>
3946
3947 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
3948 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
3949 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
3950 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
3951 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
3952 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
3953 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
3954 assembler dialect choice from asm templates.
3955
3956 2007-02-12 Richard Henderson <rth@redhat.com>
3957
3958 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
3959 (fixuns_trunc<SSEMODEF>si2): Use it.
3960 * config/i386/sse.md (vec_setv4sf_0): Export.
3961 * config/i386/i386.c (ix86_build_const_vector): Export.
3962 (ix86_split_convert_uns_si_sse): Rename from
3963 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
3964 * config/i386/i386-protos.h: Update.
3965
3966 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3967
3968 PR c/29521
3969 * c-typeck.c (c_finish_return): Improve warning message.
3970
3971 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3972
3973 * alias.c (find_symbolic_term): Delete unused function.
3974
3975 2007-02-12 Uros Bizjak <ubizjak@gmail.com>
3976
3977 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
3978 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
3979 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
3980
3981 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
3982
3983 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3984 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3985 the function, temporarily point the debug interface to the null one.
3986
3987 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
3988
3989 * dwarf2out.c (round_up_to_align): New static function.
3990 (field_byte_offset): Use it to round the offset.
3991
3992 2007-02-12 Richard Henderson <rth@redhat.com>
3993
3994 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
3995 (inswl_const): Export.
3996
3997 2007-02-12 Richard Henderson <rth@redhat.com>
3998
3999 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
4000 result mode of the libcall, convert back to outmode.
4001
4002 2007-02-12 Roger Sayle <roger@eyesopen.com>
4003
4004 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
4005 (bswapdi2): New define_expand to implement 32-bit implementation.
4006
4007 2007-02-12 Nick Clifton <nickc@redhat.com>
4008
4009 * doc/invoke.texi (Overall Options): Document --help=.
4010 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
4011 (cc1_options): Pass --help= on to cc1.
4012 (display_help): Add description of --help=.
4013 (process_command): Add code to handle --help=. Allow translated
4014 --help and --target-help switches to be passed on to compiler
4015 sub-process.
4016 (main): Remove unused if statement.
4017 * opts.c (columns): Remove.
4018 (LEFT_COLUMN): Define.
4019 (wrap_help): Add columns argument.
4020 (print_filtered_help): Change parameters to be an include bitmask,
4021 an exclude bitmask, an any bitmask and the column width. Move the
4022 code to display the params list here. Add code to display the
4023 status of options rather than their descriptions if the quiet flag
4024 is not active.
4025 (print_specific_help): Change parameters to be an include bitmask,
4026 an exclude bitmask and an any bitmask. Move code to look up the
4027 column width here. Decide upon the title for an options listing.
4028 (common_handle_options): Add code to handle --help=. Adapt code
4029 for --help and --target-help to use the revised form of the
4030 print_specific_help function.
4031 (print_help): Delete.
4032 (print_param_help): Delete.
4033 (print_switch): Delete.
4034 * opts.h (cl_lang_count): Add prototype.
4035 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
4036 CL_MAX_OPTION_CLASS): New defines.
4037 * optc-gen.awk: Add construction of cl_lang_count.
4038 * c.opt: Add Warning attribute to warning options and Optimization
4039 attribute to optimization options.
4040 * common.opt: Likewise.
4041 Add --help=.
4042 Add -fhelp and -ftarget-help as aliases for the transformed --help
4043 and --target-help options.
4044 * opt-functions.awk: Add code to handle Warning and Optimization
4045 attributes.
4046
4047 2007-02-12 Richard Henderson <rth@redhat.com>
4048
4049 * config/alpha/constraints.md: New file.
4050 * config/alpha/alpha.c: Include tm-constrs.h.
4051 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
4052 alpha_extra_constraint): Remove.
4053 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
4054 * config/alpha/alpha-protos.h: Update.
4055 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
4056 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
4057 (EXTRA_CONSTRAINT): Remove.
4058 * config/alpha/alpha.md: Include constraints.md.
4059 (adddi splitter): Use satisfies_constraint_*.
4060 * config/alpha/predicates.md (add_operand): Likewise.
4061 (sext_add_operand, addition_operation): Likewise.
4062
4063 2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
4064
4065 PR tree-optimization/29145
4066 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
4067 in our handling of restrict qualified pointers.
4068
4069 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4070
4071 PR middle-end/7651
4072 * doc/invoke.texi (Wunused-value): Update description.
4073 (Wextra): Delete item.
4074 * opts.c (set_Wextra): Don't use the value of Wextra to set the
4075 value of Wunused-value.
4076 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
4077 (c_finish_stmt_expr): Don't check extra_warnings.
4078 (emit_side_effect_warnings): The caller is responsible to check
4079 warn_unused_value.
4080
4081 2007-02-11 Roger Sayle <roger@eyesopen.com>
4082 Matt Thomas <matt@3am-software.com>
4083
4084 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
4085
4086 2007-02-11 Roger Sayle <roger@eyesopen.com>
4087
4088 * simplify-rtx.c (simplify_relational_operation_1): Optimize
4089 comparisons of POPCOUNT against zero.
4090 (simplify_const_relational_operation): Likewise.
4091
4092 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4093
4094 * doc/invoke.texi (Wextra): Delete outdated paragraph.
4095
4096 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4097
4098 * dwarf2out.c (root_type): Delete unused function.
4099
4100 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4101
4102 * genattrtab.c (contained_in_p): Delete unused function.
4103 (write_expr_attr_cache): Likewise.
4104
4105 2007-02-11 Jan Hubicka <jh@suse.cz>
4106
4107 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
4108 previous patch.
4109
4110 2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
4111
4112 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
4113 to add the REG_EQ* note.
4114 * see.c (see_merge_one_use_extension): Likewise.
4115 * local-alloc.c (update_equiv_regs): Likewise. Also don't
4116 turn REG_EQUAL notes into REG_EQUIV notes if the target
4117 register may have more than one set.
4118 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
4119 * gcse.c (try_replace_reg): Likewise.
4120 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
4121 * calls.c (fixup_tail_calls): Likewise. Abort if there is
4122 more than one REG_EQUIV note.
4123 * reload1.c (gen_reload): Use set_unique_reg_note.
4124
4125 2007-02-11 Uros Bizjak <ubizjak@gmail.com>
4126
4127 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
4128 (ix86_builtin_conversion): New function.
4129
4130 2007-02-06 Mark Mitchell <mark@codesourcery.com>
4131
4132 PR target/29487
4133 * tree.h (DECL_REPLACEABLE_P): New macro.
4134 * except.c (set_nothrow_function_flags): Likewise.
4135
4136 2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
4137 Ira Rosen <irar@il.ibm.com>
4138 Dorit Nuzman <dorit@il.ibm.com>
4139
4140 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
4141 * targhooks.c (default_builtin_vectorized_conversion): New.
4142 * targhooks.h (default_builtin_vectorized_function): New declaration.
4143 * target.h (struct vectorize): Add builtin_conversion field.
4144 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
4145 stmt_vec_info_type value.
4146 (vectorizable_conversion): New declaration.
4147 * tree-vect-analyze.c (vect_analyze_operations): Add
4148 vectorizable_conversion call.
4149 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
4150 * tree-vect-transform.c (vectorizable_conversion): New function.
4151 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
4152 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
4153 mode.
4154 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
4155 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
4156 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
4157 or ALTIVEC_BUILTIN_VCFSX.
4158
4159 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4160
4161 PR target/30634
4162 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
4163 CONST_DOUBLE and operand 0 is a hard register.
4164 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
4165 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
4166 is a hard floating-point register.
4167
4168 2007-02-10 Richard Henderson <rth@redhat.com>
4169 Jakub Jelinek <jakub@redhat.com>
4170 Alexandre Oliva <aoliva@redhat.com>
4171
4172 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
4173 * builtin-types.def (BT_WORD): Make unsigned.
4174 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
4175 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
4176 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
4177 * c-decl.c (grokdeclarator): Don't error if !have_tls.
4178 * c-parser.c (c_parser_omp_threadprivate): Likewise.
4179 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
4180 emulated tls.
4181 * expr.c (emutls_var_address): New.
4182 (expand_expr_real_1): Expand emulated tls.
4183 (expand_expr_addr_expr_1): Likewise.
4184 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
4185 * output.h (emutls_finish): Declare.
4186 * toplev.c (compile_file): Call it.
4187 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
4188 address before wrapping in CONST.
4189 * varasm.c (emutls_htab, emutls_object_type): New.
4190 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
4191 (get_emutls_object_name, get_emutls_object_type): New.
4192 (get_emutls_init_templ_addr, emutls_decl): New.
4193 (emutls_common_1, emutls_finish): New.
4194 (assemble_variable): When emulating tls, swap decls; generate
4195 constructor for the emutls objects.
4196 (do_assemble_alias): When emulating tls, swap decl and target name.
4197 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
4198 for emulated tls.
4199 * varpool.c (decide_is_variable_needed): Look at force_output.
4200 Recurse for emulated tls.
4201 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
4202 with decide_is_variable_needed.
4203 * emutls.c: New file.
4204 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
4205 tls_object for real tls.
4206
4207 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
4208
4209 PR rtl-optimization/29599
4210 * reload1.c (eliminate_regs_in_insn): Take the destination
4211 mode into account when computing the offset.
4212
4213 2007-02-09 Stuart Hastings <stuart@apple.com>
4214 Richard Henderson <rth@redhat.com>
4215
4216 * gcc/config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
4217 * gcc/config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
4218 * gcc/config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
4219 fixuns_truncdfhi2): New.
4220 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
4221 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
4222 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
4223 (floatunssidf2): Allow nonimmediate source.
4224 * gcc/config/i386/sse.md (movdi_to_sse): New.
4225 (vec_concatv2di): Drop '*'.
4226 * gcc/config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
4227 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
4228 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
4229 New.
4230 * gcc/config/i386/i386.c (ix86_expand_convert_uns_si_sse,
4231 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
4232 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
4233 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
4234 (ix86_build_signbit_mask): Fix decl of v, refactor to call
4235 ix86_build_const_vector.
4236 (x86_emit_floatuns): Rewrite.
4237
4238 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4239
4240 * genautomata.c (longest_path_length): Delete unused function.
4241 (struct state): Delete unused longest_path_length.
4242 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
4243 (get_free_state): Delete unused.
4244
4245 2007-02-09 Jan Hubicka <jh@suse.cz>
4246
4247 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
4248 * doc/invoke.texi (inline-unit-growth): Update default value.
4249
4250 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
4251 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
4252 (rebuild_cgraph_edges): Likewise.
4253 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
4254 (dump_cgraph_node): Dump frequencies.
4255 (cgraph_clone_edge): Add frequency scales.
4256 (cgraph_clone_node): Add freuqnecy.
4257 * cgraph.h (cgraph_edge): Add freuqnecy argument.
4258 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
4259 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
4260 * tree-pass.h (TODO_rebuild_frequencies): New constant.
4261 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
4262 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
4263 (save_inline_function_body): Likewise.
4264 * ipa-inline.c: inluce rtl.h
4265 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
4266 (cgraph_edge_badness): Use frequencies.
4267 (cgraph_decide_recursive_inlining): Update clonning.
4268 (cgraph_decide_inlining_of_small_function): Dump frequency.
4269 * predict.c (estimate_bb_frequencies): Export.
4270 * predict.h (estimate_bb_frequencies): Declare.
4271 * tree-inline.c (copy_bb): Watch overflows.
4272 (expand_call_inline): Update call of cgraph_create_edge.
4273 (optimize_inline_calls): Use TODO flags to update frequnecies.
4274 * passes.h: Include predict.h
4275 (init_optimization_passes): Move profile ahead.
4276 (execute_function_todo): Handle TODO_rebuild_frequencies.
4277
4278 2007-02-09 Roger Sayle <roger@eyesopen.com>
4279
4280 * config/alpha/alpha.c (emit_insxl): Force the first operand of
4281 the insbl or inswl pattern into a register.
4282
4283 2007-02-09 Roger Sayle <roger@eyesopen.com>
4284
4285 * config/ia64/ia64.md (bswapdi2): New define_insn.
4286
4287 2007-02-09 Richard Henderson <rth@redhat.com>
4288
4289 * config/i386/constraints.md (Ym): New constraint.
4290 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
4291 (movdi_1_rex64): Split sse and xmm general register moves from
4292 memory move alternatives. Use conditional register constraints.
4293 (movsf_1, movdf_integer): Likewise.
4294 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
4295 (movdf_integer_rex64): New.
4296 (pushsf_rex64): Fix output constraints.
4297 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
4298 (sse2_stored): Likewise.
4299 (sse2_storeq_rex64): New.
4300 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
4301 amd and not generic.
4302 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
4303 for optimize_size. Remove SF/DFmode hack.
4304
4305 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4306
4307 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
4308 (bit_SSE4a): New.
4309
4310 2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
4311 Richard Sandiford <richard@codesourcery.com>
4312
4313 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
4314 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
4315 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
4316 m68k/t-mlib to tmake_file.
4317 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
4318 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
4319 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
4320 Allow it to be cf or m68k. Set m68k_arch_family. If that
4321 variable is not empty, add t-$m68k_arch_family to tmake_file.
4322 Add t-mlibs to tmake_file.
4323 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
4324 * config/m68k/t-cf: New file.
4325 * config/m68k/t-m68k: Likewise.
4326 * config/m68k/t-mlibs: Likewise.
4327 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
4328 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
4329 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
4330 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
4331 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
4332 Delete.
4333 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
4334 (INSTALL_LIBGCC): Delete.
4335 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
4336 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
4337 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
4338 (M68K_MLIB_CPU): Define.
4339 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
4340 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
4341 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
4342
4343 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
4344 Richard Guenther <rguenther@suse.de>
4345
4346 PR middle-end/23361
4347 * fold-const.c (fold_comparison): Handle obfuscated comparisons
4348 against INT_MIN/INT_MAX.
4349 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
4350 file if a loop is removed.
4351
4352 2007-02-09 Joseph Myers <joseph@codesourcery.com>
4353
4354 * calls.c (store_one_arg): Pass correct alignment to
4355 emit_push_insn for non-BLKmode values.
4356 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
4357 unaligned stack slot via a suitably aligned slot.
4358
4359 2007-02-08 DJ Delorie <dj@redhat.com>
4360
4361 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
4362 warnings.
4363 (legal_subregs): Use unsigned char, make const.
4364 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
4365
4366 2007-02-08 Paul Brook <paul@codesourcery.com>
4367
4368 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
4369 special interworking needed.
4370
4371 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
4372
4373 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
4374 conditional to __SSE2__.
4375 (Entries below should have been added to first ChangeLog
4376 entry for amdfam10 dated 2007-02-05)
4377 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
4378 defined.
4379 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
4380 defined.
4381 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
4382 defined.
4383
4384 2007-02-08 DJ Delorie <dj@redhat.com>
4385
4386 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
4387 * config/m32c/m32c.c (legal_subregs): New.
4388 (m32c_illegal_subreg_p): New.
4389 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
4390 unsupported subregs of hard regs.
4391
4392 2007-02-08 Jan Hubicka <jh@suse.cz>
4393
4394 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
4395 the same one; always update histograms.
4396
4397 2007-02-08 Diego Novillo <dnovillo@redhat.com>
4398
4399 * passes.c (init_optimization_passes): Tidy comment.
4400
4401 2007-02-08 Roger Sayle <roger@eyesopen.com>
4402
4403 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
4404 strip zero_extend, bswap and rotates from POCOUNT's argument.
4405 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
4406 zero_extend and rotates from PARITY's argument.
4407 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
4408 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
4409 of an integer constant at compile-time.
4410
4411 2007-02-08 Diego Novillo <dnovillo@redhat.com>
4412
4413 PR 30562
4414 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
4415 Update all users.
4416 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
4417 users.
4418 (init_alias_info):
4419 * tree-ssa-live.c (remove_unused_locals): Do not remove
4420 TREE_ADDRESSABLE variables.
4421 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
4422 * tree-ssa-operands.c (add_virtual_operand): Remove argument
4423 FOR_CLOBBER. Update all users.
4424 If VAR has an associated alias set, add a virtual operand for
4425 it if no alias is found to conflict with the memory reference.
4426
4427 2007-02-07 Jan Hubicka <jh@suse.cz>
4428 Robert Kidd <rkidd@crhc.uiuc.edu>
4429
4430 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
4431
4432 2007-02-07 Ian Lance Taylor <iant@google.com>
4433
4434 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
4435
4436 2007-02-07 Roger Sayle <roger@eyesopen.com>
4437
4438 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4439 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
4440 tablejumpdi, movsi_to_cr_one): Remove constraints from
4441 define_expand's match_operands.
4442
4443 2007-02-07 Roger Sayle <roger@eyesopen.com>
4444
4445 * global.c (compute_regsets): Move declatation of "i" inside of
4446 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
4447
4448 2007-02-07 Jakub Jelinek <jakub@redhat.com>
4449
4450 PR c++/30703
4451 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
4452 of INDIRECT_REF <RESULT_DECL>.
4453
4454 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
4455
4456 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
4457 Kaz Kojima <kkojima@gcc.gnu.org>
4458
4459 PR target/29746
4460 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
4461 properly.
4462 (sh_initialize_trampoline): Add parentheses to avoid a warning.
4463
4464 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
4465
4466 * doc/loop.texi: Document possibility not to perform disambiguation
4467 of loops with multiple latches.
4468 * cfgloopmanip.c (alp_enum_p): Removed.
4469 (add_loop): Handle subloops. Use get_loop_body_with_size.
4470 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
4471 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
4472 the new forwarder block.
4473 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
4474 Handle the case latch is NULL.
4475 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
4476 when marking loop exits.
4477 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
4478 be modified.
4479 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
4480 disambiguate_loops_with_multiple_latches.
4481 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
4482 before fix_loop_structure.
4483 * cfgloop.c: Include pointer-set.h and output.h.
4484 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
4485 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
4486 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
4487 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
4488 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
4489 disambiguate_multiple_latches, get_loop_body_with_size,
4490 disambiguate_loops_with_multiple_latches): New functions.
4491 (flow_loop_dump): Dump multiple latch edges.
4492 (flow_loop_nodes_find): Handle loops with multiple latches.
4493 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
4494 (glb_enum_p): Modified.
4495 (get_loop_body): Use get_loop_body_with_size.
4496 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
4497 (AVOID_CFG_MODIFICATIONS): New constant.
4498 (disambiguate_loops_with_multiple_latches, add_loop,
4499 get_loop_body_with_size): Declare.
4500 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
4501
4502 2007-02-06 Seongbae Park <seongbae.park@gmail.com>
4503
4504 PR inline-asm/28686
4505 * global.c (compute_regsets): New function.
4506 (global_alloc): Refactored ELIMINABLE_REGSET
4507 and NO_GLOBAL_ALLOC_REGS computation out.
4508 (rest_of_handle_global_alloc): Call compute_regsets()
4509 for non-optimizing case.
4510
4511 2007-02-06 Richard Henderson <rth@redhat.com>
4512
4513 * config/i386/constraints.md (Y2): Rename from Y.
4514 (Yi): New constraint.
4515 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
4516 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
4517 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
4518 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
4519 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
4520 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
4521 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
4522 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
4523 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
4524 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
4525 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
4526 vec_extractv2si_1): Change Y constraints to Y2.
4527 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
4528 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
4529 Change Y constraints to Y2.
4530 (sse2_loadld): Change Y constraints to x.
4531
4532 2007-02-06 Roger Sayle <roger@eyesopen.com>
4533
4534 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
4535 (parity<mode>2): New define_expand using rs6000_emit_parity.
4536 * config/rs6000/rs6000.c (rs6000_emit_popcount,
4537 rs6000_emit_parity): New functions.
4538 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
4539 rs6000_emit_parity): Prototype here.
4540
4541 2007-02-06 Ian Lance Taylor <iant@google.com>
4542
4543 * lower-subreg.c (simple_move_operand): Reject CONST.
4544 (resolve_clobber): Call validate_change rather than directly
4545 assigning to XEXP (pat, 0).
4546
4547 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
4548
4549 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
4550 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
4551 (tree-cfg.o): Remove hashtab.h dependency.
4552
4553 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
4554 (struct ivopts_data): Change niters to pointer_map_t.
4555 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
4556 (niter_for_exit): Create pointer_map on demand. Change for
4557 pointer_map API.
4558 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
4559 (free_loop_data): Destroy data->niters if created and reset field.
4560 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
4561 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
4562
4563 * tree-ssa-reassoc.c: Include pointer-set.h.
4564 (bb_rank): Change to long *.
4565 (operand_rank): Change to pointer_map_t.
4566 (find_operand_rank): Return long, -1 if not found. Declare as inline.
4567 (insert_operand_rank): Accept long.
4568 (operand_entry_hash, operand_entry_eq): Remove.
4569 (get_rank): Return long. Adjust for changes above.
4570 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
4571 and operand_rank.
4572 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
4573
4574 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
4575 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
4576 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
4577 is not NULL.
4578 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
4579 directly since it cannot be NULL.
4580 (get_vi_for_tree): Rewrite for pointer_map API.
4581 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
4582 (init_alias_vars): Create vi_for_tree as pointer_map.
4583 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
4584
4585 * tree-cfg.c: Don't include hashtab.h.
4586 (edge_to_cases): Declare as pointer_map.
4587 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
4588 Delete.
4589 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
4590 (start_recording_case_labels): Create edge_to_cases as pointer_map.
4591 (end_recoding_case_labels): Cleanup edge_to_cases manually before
4592 destroying it.
4593 (record_switch_edge): Delete.
4594 (get_cases_for_edge): Adjust for pointer_map API, inline
4595 record_switch_edge (rewritten for new API), remove goto.
4596
4597 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
4598
4599 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
4600 * tree-nested.c: Include pointer-set.h.
4601 (var_map_elt, var_map_eq, var_map_hash): Delete.
4602 (struct nesting_info): Remove GTY marker. Change the two htab_t's
4603 to pointer_map_t's.
4604 (nesting_info_bitmap_obstack): New.
4605 (lookup_field_for_decl): Adjust for pointer_map API.
4606 (lookup_tramp_for_decl): Adjust for pointer_map API.
4607 (get_nonlocal_debug_decl): Adjust for pointer_map API.
4608 (get_local_debug_decl): Adjust for pointer_map API.
4609 (convert_nl_goto_reference): Adjust for pointer_map API.
4610 (convert_nl_goto_receiver): Adjust for pointer_map API.
4611 (create_nesting_tree): Create outside GGC space. Create bitmap on
4612 the new obstack. Create field_map and var_map as pointer_maps.
4613 (free_nesting_tree): Adjust for changes to create_nesting_tree.
4614 (root): Delete.
4615 (lower_nested_functions): Move root here, no need to NULL it.
4616 Initialize and release the obstack.
4617
4618 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
4619
4620 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
4621 Remove prototypes and make them non-static.
4622 (struct tree_int_map): Remove.
4623 * tree.h (struct tree_int_map): Move here, turning TO into an
4624 unsigned int.
4625 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
4626
4627 * tree.h (TREE_COMPLEXITY): Remove.
4628 (struct tree_exp): Remove complexity field.
4629 * tree.c (build1_stat): Don't set it.
4630
4631 2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
4632 Victor Kaplansky <victork@il.ibm.com>
4633
4634 * tree-vectorizer.c (vect_is_simple_use): Support induction.
4635 (vect_is_simple_reduction): Support reduction with induction as
4636 one of the operands.
4637 (vect_is_simple_iv_evolution): Fix formatting.
4638 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
4639 formatting. Don't mark induction phis for vectorization.
4640 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
4641 * tree-vect-transform.c (get_initial_def_for_induction): New function.
4642 (vect_get_vec_def_for_operand): Support induction.
4643 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
4644 induction case.
4645 (vectorizable_reduction): Support reduction with induction as one of
4646 the operands.
4647 (vectorizable_type_demotion): Use def-type of stmt argument rather
4648 than dummy def-type.
4649
4650 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
4651 flag_tree_scev_cprop.
4652 * common.opt (tree-scev-cprop): New flag.
4653
4654 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
4655 call to vect_get_new_vect_var.
4656
4657 2007-02-06 Ira Rosen <irar@il.ibm.com>
4658
4659 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
4660 vectype is not NULL.
4661 (vect_pattern_recog_1): Likewise.
4662
4663 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4664
4665 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
4666 (fold_negate_expr): Likewise.
4667
4668 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
4669
4670 PR debug/30189
4671 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
4672 even if cv-qualification is the same.
4673
4674 2007-02-05 Geoffrey Keating <geoffk@apple.com>
4675
4676 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
4677 __enable_execute_stack on completion.
4678
4679 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4680
4681 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
4682 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
4683 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
4684 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
4685 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
4686 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
4687 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
4688 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
4689
4690 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4691
4692 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
4693 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
4694 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
4695 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
4696 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
4697 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
4698 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
4699 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
4700 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
4701 umuldi3_highpart_rex64, umulsi3_highpart_insn,
4702 umulsi3_highpart_zext, smuldi3_highpart_rex64,
4703 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
4704 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
4705 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
4706 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
4707 sqrtextenddfxf2_i387): Added amdfam10_decode.
4708
4709 * config/i386/athlon.md (athlon_idirect_amdfam10,
4710 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
4711 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
4712 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
4713 athlon_ivector_store_amdfam10): New define_insn_reservation.
4714 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
4715 amdfam10.
4716
4717 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4718
4719 * config/i386/athlon.md (athlon_call_amdfam10,
4720 athlon_pop_amdfam10, athlon_lea_amdfam10): New
4721 define_insn_reservation.
4722 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
4723 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
4724 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
4725
4726 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4727
4728 * config/i386/athlon.md (athlon_sseld_amdfam10,
4729 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
4730 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
4731
4732 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4733
4734 * config/i386/athlon.md (athlon_sseins_amdfam10): New
4735 define_insn_reservation.
4736 * config/i386/i386.md (sseins): Added sseins to define_attr type
4737 and define_attr unit.
4738 * config/i386/sse.md: Set type attribute to sseins for insertq
4739 and insertqi.
4740
4741 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4742
4743 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
4744 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
4745 ssecomi_load_amdfam10, ssecomi_amdfam10,
4746 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
4747 define_insn_reservation.
4748 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
4749
4750 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4751
4752 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
4753 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
4754 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
4755 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
4756 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
4757 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
4758 define_insn_reservation.
4759
4760 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
4761 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
4762 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
4763 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
4764 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
4765
4766 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4767
4768 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
4769 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
4770 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
4771 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
4772 athlon_ssemul_load_k8): Added amdfam10.
4773
4774 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4775
4776 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
4777 (x86_sse_unaligned_move_optimal): New variable.
4778
4779 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
4780 m_AMDFAM10.
4781 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
4782 for unaligned vector SSE double/single precision loads for AMDFAM10.
4783
4784 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4785
4786 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
4787 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
4788 Define TARGET_CPU_DEFAULT_amdfam10.
4789 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
4790 (processor_type): Add PROCESSOR_AMDFAM10.
4791
4792 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
4793 processor_type in config/i386/i386.h.
4794 Enable imul peepholes for TARGET_AMDFAM10.
4795
4796 * config.gcc: Add support for --with-cpu option for amdfam10.
4797
4798 * config/i386/i386.c (amdfam10_cost): New variable.
4799 (m_AMDFAM10): New macro.
4800 (m_ATHLON_K8_AMDFAM10): New macro.
4801 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
4802 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
4803 x86_promote_QImode, x86_integer_DFmode_moves,
4804 x86_partial_reg_dependency, x86_memory_mismatch_stall,
4805 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
4806 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
4807 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
4808 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
4809 Enable/disable for amdfam10.
4810 (override_options): Add amdfam10_cost to processor_target_table.
4811 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
4812 processor_alias_table.
4813 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
4814 (ix86_adjust_cost): Add code for amdfam10.
4815
4816 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
4817
4818 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
4819 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
4820 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
4821 * config/i386/i386.h: Add builtin definition for SSE4A.
4822 * config/i386/i386.md: Add support for ABM instructions
4823 (popcnt and lzcnt).
4824 * config/i386/sse.md: Add support for SSE4A instructions
4825 (movntss, movntsd, extrq, insertq).
4826 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
4827 Add -march=amdfam10 flag.
4828 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
4829 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
4830 and amdfam10.
4831 * doc/extend.texi: Add documentation for SSE4A builtins.
4832
4833 2007-02-05 Bob Wilson <bob.wilson@acm.org>
4834
4835 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
4836
4837 2007-02-05 Richard Guenther <rguenther@suse.de>
4838
4839 * tree-vectorizer.h (vectorizable_function): Add argument type
4840 argument, change return type.
4841 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
4842 * tree-vect-transform.c (vectorizable_function): Handle extra
4843 argument, return vectorized function decl.
4844 (build_vectorized_function_call): Remove.
4845 (vectorizable_call): Handle calls with result and argument types
4846 differing. Handle loop vectorization factor correctly.
4847 * targhooks.c (default_builtin_vectorized_function): Adjust for
4848 extra argument.
4849 * targhooks.h (default_builtin_vectorized_function): Likewise.
4850 * target.h (builtin_vectorized_function): Add argument type
4851 argument.
4852 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
4853 extra argument, allow vectorizing of lrintf.
4854 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
4855 documentation of target hook.
4856
4857 2007-02-05 Hans-Peter Nilsson <hp@axis.com>
4858
4859 PR target/30665
4860 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
4861 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
4862 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
4863
4864 2007-02-05 Roger Sayle <roger@eyesopen.com>
4865
4866 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
4867 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
4868 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
4869 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
4870 before canonicalizing sincos to cexpi.
4871 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
4872
4873 2007-02-05 Roger Sayle <roger@eyesopen.com>
4874
4875 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
4876 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
4877 (alpha_init_builtins): Use alpha_add_builtins to process tables.
4878
4879 2007-02-05 Roger Sayle <roger@eyesopen.com>
4880
4881 * mips-tfile.c (initialize_init_file): Correct endianness test.
4882
4883 2007-02-05 Kazu Hirata <kazu@codesourcery.com>
4884
4885 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
4886 the 'y' constraint.
4887
4888 2007-02-05 Richard Sandiford <richard@codesourcery.com>
4889
4890 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
4891 saves in a PARALLEL before the register assignments.
4892
4893 2007-02-05 Richard Sandiford <richard@codesourcery.com>
4894
4895 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
4896 DWARF_FRAME_RETURN_COLUMN to be a general register.
4897 * dwarf2out.c (init_return_column_size): New function, split from...
4898 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
4899 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
4900 to be nongeneral registers.
4901 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
4902 integer registers.
4903 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
4904 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
4905
4906 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
4907
4908 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
4909
4910 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
4911
4912 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
4913 (remove_path): Use can_remove_branch_p and remove_branch instead
4914 of loop_delete_branch_edge.
4915 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
4916 (tree_transform_and_unroll_loop): Remove dead branches immediately.
4917 Update profile using scale_dominated_blocks_in_loop.
4918 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
4919 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
4920 (can_remove_branch_p, remove_branch): Declare.
4921 * tree-cfg.c (tree_can_remove_branch_p): New function.
4922 (tree_cfg_hooks): Add tree_can_remove_branch_p.
4923 * cfgrtl.c (rtl_can_remove_branch_p): New function.
4924 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
4925
4926 2007-02-05 Jan Hubicka <jh@suse.cz>
4927
4928 PR middle-end/30696
4929 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
4930 nodes in cgraph, don't remove offline copy of the function.
4931
4932 2007-02-04 Jan Hubicka <jh@suse.cz>
4933
4934 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
4935 vectors might cause maybe_lookup_element_for_expr to be called
4936 on non-sra-candidate.
4937
4938 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
4939
4940 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
4941 config/bfin/bfin.md, config/bfin/predicates.md: Follow
4942 spelling conventions.
4943
4944 2007-02-04 Richard Guenther <rguenther@suse.de>
4945
4946 PR middle-end/30636
4947 * fold-const.c (try_move_mult_to_index): Make sure to not
4948 overflow one dimension of a multi-dimensional array access.
4949
4950 2007-02-04 Jan Hubicka <jh@suse.cz>
4951
4952 * passes.c (init_optimization_passes): Reindent.
4953
4954 2007-02-04 Jan Hubicka <jh@suse.cz>
4955 Eric Botcazou <ebotcazou@adacore.com>
4956
4957 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
4958 (execute_fixup_cfg): Break out the abnormal goto code.
4959 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
4960 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
4961 (optimize_inline_calls): Call make_nonlocal_label_edges.
4962
4963 2007-02-04 Jan Hubicka <jh@suse.cz>
4964
4965 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
4966 true when something was changed.
4967 (rename_ssa_copies): When something was changed, do
4968 TODO_remove_unused_locals.
4969 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
4970 add TODO_remove_unused_locals when instruction was removed.
4971
4972 2007-02-04 Jan Hubicka <jh@suse.cz>
4973
4974 * ipa-inline.c (try_inline): Improve debug output; work on already
4975 inline edges too.
4976 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
4977 call try_inline for already inlined edges too when flattening;
4978 inline also functions that make callee growth but overall unit size
4979 reduce.
4980
4981 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
4982
4983 * config/m32c/bitops.md, config/m32c/jump.md,
4984 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
4985 config/m32r/m32r.h, config/m32r/m32r.md,
4986 config/m32r/predicates.md, config/m68hc11/larith.asm,
4987 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
4988 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
4989 config/mips/mips-protos.h, config/mips/mips.c,
4990 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
4991 config/mn10300/mn10300.h, config/mn10300/predicates.md,
4992 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
4993 spelling conventions.
4994
4995 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
4996 Follow spelling conventions.
4997
4998 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
4999
5000 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
5001 warn about C++0x compatibility.
5002
5003 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
5004
5005 * config/h8300/h8300.c, config/h8300/h8300.h,
5006 config/h8300/h8300.md: Follow spelling conventions.
5007
5008 2007-02-03 Uros Bizjak <ubizjak@gmail.com>
5009
5010 PR middle-end/30667
5011 * combine.c (try_combine): Do not substitute source operand
5012 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
5013
5014 2007-02-03 Jan Hubicka <jh@suse.cz>
5015
5016 PR gcov-profile/30650
5017 * value-prof.c (stringop_block_profile): Fix handling of size counter;
5018 do not divide by zero for never executed counters.
5019 (tree_find_values_to_profile): Fix counters.
5020 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
5021
5022 2007-02-03 Ian Lance Taylor <iant@google.com>
5023
5024 * lower-subreg.c (simple_move_operand): New static function,
5025 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
5026 operands.
5027 (simple_move): Call simple_move_operand.
5028 (find_decomposable_subregs): Add special handling of MEMs.
5029 (can_decompose_p): Rename from cannot_decompose_p. Reverse
5030 meaning of return value. If we see a hard register, test whether
5031 it can store a word_mode value. Change all callers.
5032
5033 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5034
5035 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
5036 ftrapv insns and expanders.
5037 (subdi3): Change define_expand operand 1 to arith11_operand, and
5038 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
5039 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
5040 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
5041 respectively.
5042
5043 PR middle-end/30174
5044 * varasm.c (notice_global_symbol): Treat global objects as weak when
5045 flag_shlib is true.
5046
5047 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5048
5049 * emit-rtl.c (dconstpi): Delete.
5050 (dconstsqrt2): New.
5051 (init_emit_once): Delete dconstpi and init dconstsqrt2.
5052 * real.h (dconstpi): Delete.
5053 (dconstsqrt2): New.
5054 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
5055 (fold_builtin_hypot): Likewise.
5056
5057 2007-02-03 Tom Tromey <tromey@redhat.com>
5058
5059 PR driver/30246
5060 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
5061 -gcoff3, -gxcoff3, -gvms3 implies -dD.
5062
5063 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
5064
5065 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
5066 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
5067 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
5068 config/rs6000/cell.md, config/rs6000/darwin.h,
5069 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
5070 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
5071 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
5072 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
5073 typos. Follow spelling conventions.
5074 * doc/invoke.texi: Follow spelling conventions.
5075
5076 2007-02-03 Roger Sayle <roger@eyesopen.com>
5077
5078 * simplify-rtx.c (simplify_relational_operation_1): Implement some
5079 canonicalization transformations that attempt to simplify integer
5080 constant comparisons to become comparisons against zero.
5081
5082 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5083
5084 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
5085 fabs(x)*sqrt(2).
5086 * fold-const.c (fold_binary): Fix comment typos. Fold complex
5087 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
5088
5089 2007-02-02 Mike Stump <mrs@apple.com>
5090
5091 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
5092 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
5093 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
5094 generate a branch island.
5095
5096 2007-02-02 Bob Wilson <bob.wilson@acm.org>
5097
5098 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
5099 (xtensa_legitimate_address_p): New.
5100 (xtensa_legitimize_address): New.
5101 (xtensa_output_addr_const_extra): New.
5102 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
5103 (BASE_REG_P): New.
5104 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
5105 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
5106 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
5107 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
5108 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
5109 (xtensa_legitimize_address): New.
5110 (xtensa_output_addr_const_extra): New.
5111
5112 2007-02-02 Steve Ellcey <sje@cup.hp.com>
5113
5114 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
5115
5116 2007-02-02 Ian Lance Taylor <iant@google.com>
5117
5118 * expmed.c (expand_divmod): Add comment.
5119
5120 2007-02-02 Kazu Hirata <kazu@codesourcery.com>
5121
5122 * emit-rtl.c (renumber_insns): Remove.
5123 * flags.h: Remove the extern for flag_renumber_insns.
5124 * rtl.h: Remove the prototype for renumber_insns.
5125 * toplev.c (flag_renumber_insns): Remove.
5126
5127 2007-02-02 Hui-May Chang <hm.chang@apple.com>
5128
5129 Revert for x86 darwin:
5130 2005-06-19 Uros Bizjak <uros@kss-loka.si>
5131
5132 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
5133 code before the following patch under TARGET_MACHO.
5134 (ix86_function_value_regno_p): Likewise.
5135
5136 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5137
5138 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
5139 COMPLEX_EXPR.
5140
5141 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5142
5143 PR target/29682
5144 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
5145 general or fp registers. Add comments.
5146 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
5147
5148 2007-02-02 Paolo Bonzini <bonzini@gnu.org>
5149
5150 * pointer-set.c (insert_aux): Only return insertion slot.
5151 (pointer_set_insert): Adjust.
5152 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
5153 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
5154 pointer_map_traverse): New.
5155 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
5156 pointer_map_create, pointer_map_destroy, pointer_map_insert,
5157 pointer_map_contains, pointer_map_traverse): Declare.
5158
5159 2007-02-02 Jakub Jelinek <jakub@redhat.com>
5160
5161 PR middle-end/30473
5162 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
5163 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
5164
5165 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
5166
5167 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
5168
5169 (struct _dep): New type.
5170 (dep_t): New typedef.
5171 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
5172 (DEP_STATUS): New access macro. The macro with the same name was
5173 renamed to DEP_LINK_STATUS.
5174 (dep_init): Declare function
5175
5176 (struct _dep_link): New type.
5177 (dep_link_t): New typedef.
5178 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
5179 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
5180 (DEP_LINK_STATUS): New macro.
5181 (debug_dep_links): New debug function.
5182
5183 (struct _deps_list): New type.
5184 (deps_list_t): New typedef.
5185 (DEPS_LIST_FIRST): New access macro.
5186 (FOR_EACH_DEP_LINK): New cycle macro.
5187 (create_deps_list, free_deps_list, delete_deps_list): Declare
5188 functions.
5189 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
5190 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
5191 (copy_deps_list_change_con): Ditto.
5192
5193 (move_dep_link): Declare function.
5194
5195 (struct _dep_node): New type.
5196 (dep_node_t): New typedef.
5197 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
5198
5199 (struct haifa_insn_data.back_deps): New field to hold backward
5200 dependencies of the insn.
5201 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
5202 to deps_list_t.
5203 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
5204 Change its type to deps_list_t.
5205 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
5206 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
5207 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
5208
5209 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
5210
5211 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
5212
5213 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and
5214 all callers.
5215 (dep_cost): Declare.
5216
5217 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
5218 (ds_to_dk, dk_to_ds): New functions.
5219
5220 (init_dep_1): New static function.
5221 (init_dep): New function.
5222 (copy_dep): New static function.
5223
5224 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
5225 functions.
5226 (detach_dep_link): New static function.
5227 (move_dep_link): New function.
5228
5229 (dep_links_consistent_p, dump_dep_links): New static functions.
5230 (debug_dep_links): New debugging function.
5231
5232 (deps_obstack, dl_obstack, dn_obstack): New static variables.
5233
5234 (alloc_deps_list, init_deps_list): New static functions.
5235 (create_deps_list): New function.
5236 (clear_deps_list): New static function.
5237 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
5238 (deps_list_consistent_p, dump_deps_list): New static functions.
5239 (debug_deps_list): New function.
5240 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
5241 functions.
5242 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
5243
5244 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
5245 use new scheduler dependencies lists.
5246 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
5247 (sched_analyze): Ditto. Initialize dependencies lists.
5248 (add_forw_dep, compute_forward_dependences): Update to use new
5249 scheduler dependencies lists.
5250
5251 (init_dependency_caches): Init deps_obstack.
5252 (free_dependency_caches): Free deps_obstack.
5253
5254 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
5255 new scheduler dependencies lists.
5256 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
5257 (add_back_forw_dep, delete_back_forw_dep): Ditto.
5258
5259 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
5260 Update to use new scheduler dependencies lists.
5261 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
5262 (debug_dependencies): Ditto.
5263 (schedule_region): Update comments.
5264
5265 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
5266 scheduler dependencies lists.
5267 (schedule_ebb): Update comments.
5268
5269 * rtl.def (DEPS_LIST): Remove.
5270
5271 * lists.c (unused_deps_list): Remove.
5272 (free_list): Update assertions.
5273
5274 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
5275 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
5276
5277 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
5278 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
5279
5280 * haifa-sched.c (comments): Update.
5281 (insn_cost1): Remove. Inline the code into insn_cost ().
5282 (insn_cost): Update to use new scheduler dependencies lists. Move
5283 processing of the dependency cost to dep_cost ().
5284 (dep_cost): New function. Use it instead of insn_cost () when
5285 evaluating cost of the dependency. Use compatible interface to
5286 interact with the target.
5287 (priority): Update to use new scheduler dependencies lists.
5288 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
5289 with greater number of insns that depend on the insn.
5290 (schedule_insn): Update to use new scheduler dependencies lists. Add
5291 code to free backward dependencies lists. Inline and optimize code
5292 from resolve_dep () - see PR28071.
5293 (ok_for_early_queue_removal): Update to use new scheduler dependencies
5294 lists. Update call to targetm.sched.is_costly_dependence hook.
5295
5296 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
5297 scheduler dependencies lists.
5298
5299 (resolve_dep): Remove. Move the logic to schedule_insn ().
5300 (init_h_i_d): Initialize dependencies lists.
5301
5302 (process_insn_depend_be_in_spec): Rename to
5303 process_insn_forw_deps_be_in_spec. Update to use new scheduler
5304 dependencies lists.
5305 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
5306 Update to use new scheduler dependencies lists.
5307 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
5308
5309 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
5310 new scheduler dependencies lists.
5311 (build_intra_loop_deps): Ditto.
5312
5313 * target.h (struct _dep): Declare to use in
5314 gcc_target.sched.is_costly_dependence.
5315 (struct gcc_target.sched.adjust_cost): Fix typo.
5316 (struct gcc_target.sched.is_costly_dependence): Change signature to use
5317 single dep_t parameter instead of an equivalent triad.
5318 (struct gcc_target.sched.adjust_cost_2): Remove.
5319
5320 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
5321
5322 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
5323
5324 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
5325 documentation.
5326 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
5327
5328 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
5329 (REG_DEP_TRUE): Document.
5330
5331 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
5332 Change signature to correspond to the targetm.sched.adjust_cost hook.
5333 Update use in TARGET_SCHED_ADJUST_COST_2.
5334 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
5335 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
5336 new scheduler dependencies lists.
5337 (ia64_gen_check): Ditto.
5338
5339 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler
5340 dependencies lists.
5341
5342 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
5343 signature to correspond to the targetm.sched.is_costly_dependence hook.
5344 (is_costly_group): Update to use new scheduler dependencies lists.
5345
5346 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
5347 instead of INSN_COST () macro.
5348
5349 2007-02-01 Ian Lance Taylor <iant@google.com>
5350
5351 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
5352
5353 2007-02-01 Guy Martin <gmsoft@gentoo.org>
5354
5355 * pa.md (tp_load): Correct mfctl instruction syntax.
5356
5357 2007-02-01 Geoffrey Keating <geoffk@apple.com>
5358
5359 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
5360 altivec_padding_size calculation on AIX. Improve comment, add
5361 assert to verify that it's right.
5362
5363 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
5364 64-bit.
5365
5366 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
5367
5368 PR inline-asm/28686
5369 * global.c (global_alloc): Add mising initialization of
5370 ELIMINABLE_REGSET.
5371
5372 2007-02-01 Roger Sayle <roger@eyesopen.com>
5373
5374 * alias.c (init_alias_analysis): Correct whitespace.
5375 * bb-reorder.c (fix_edges_for_rarely_executed_code,
5376 partition_hot_cold_basic_blocks): Likewise.
5377 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
5378 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
5379 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
5380 fold_builtin_snprintf_chk, fold_builtin_printf,
5381 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
5382 do_mpfr_arg3, do_mpfr_sincos): Likewise.
5383 * cfgcleanup.c (cleanup_cfg): Likewise.
5384 * cfgexpand.c (tree_expand_cfg): Likewise.
5385 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
5386 * function.c (get_next_funcdef_no): Likewise.
5387 * gengtype.c (main): Likewise.
5388 * genmodes.c (main): Likewise.
5389 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
5390 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
5391 * ifcvt.c (noce_emit_move_insn): Likewise.
5392 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
5393 Likewise.
5394 * stor-layout.c (get_best_mode): Likewise.
5395 * tree-ssa-loop-niter.c (get_val_for): Likewise.
5396 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
5397 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
5398 perform_var_substitution, solve_graph): Likewise.
5399 * tree-vrp.c (vrp_finalize): Likewise.
5400
5401 2007-02-01 Ian Lance Taylor <iant@google.com>
5402
5403 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
5404 high part of a paradoxical subreg, return a constant zero.
5405
5406 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
5407
5408 * toplev.c (lang_dependent_init): Call init_set_costs.
5409 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
5410
5411 2007-02-01 Richard Guenther <rguenther@suse.de>
5412
5413 PR middle-end/30656
5414 * fold-const.c (fold_negate_expr): Allow negating a
5415 constant if overflow does not change.
5416
5417 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5418
5419 * doc/c-tree.texi (Expression trees): Improve markup.
5420 * doc/tm.texi (Register Classes, Addressing Modes)
5421 (Floating Point): Fix spacing after abbreviations. Fix some
5422 typos.
5423
5424 2007-02-01 Ben Elliston <bje@au.ibm.com>
5425
5426 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
5427 * doc/contrib.texi: Likewise.
5428 * doc/install.texi: Likewise.
5429
5430 2007-01-31 Richard Henderson <rth@redhat.com>
5431 Ian Lance Taylor <iant@google.com>
5432
5433 * lower-subreg.c: New file.
5434 * rtl.def (CONCATN): Define.
5435 * passes.c (init_optimization_passes): Add pass_lower_subreg and
5436 pass_lower_subreg2.
5437 * emit-rtl.c (update_reg_offset): New static function, broken out
5438 of gen_rtx_REG_offset.
5439 (gen_rtx_REG_offset): Call update_reg_offset.
5440 (gen_reg_rtx_offset): New function.
5441 * regclass.c: Revert patch of 2006-03-05, restoring
5442 reg_scan_update.
5443 (clear_reg_info_regno): New function.
5444 * dwarf2out.c (concatn_loc_descriptor): New static function.
5445 (loc_descriptor): Handle CONCATN.
5446 * common.opt (fsplit_wide_types): New option.
5447 * opts.c (decode_options): Set flag_split_wide_types when
5448 optimizing.
5449 * timevar.def (TV_LOWER_SUBREG): Define.
5450 * rtl.h (gen_reg_rtx_offset): Declare.
5451 (reg_scan_update): Declare.
5452 * regs.h (clear_reg_info_regno): Declare.
5453 * tree-pass.h (pass_lower_subreg): Declare.
5454 (pass_lower_subreg2): Declare.
5455 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
5456 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
5457 -fsplit-wide-types.
5458 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
5459 * Makefile.in (OBJS-common): Add lower-subreg.o.
5460 (lower-subreg.o): New target.
5461
5462 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
5463
5464 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
5465
5466 2007-01-31 Anatoly Sokolov <aesok@post.ru>
5467
5468 PR target/19087
5469 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
5470
5471 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5472
5473 PR middle-end/29335
5474 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
5475
5476 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
5477
5478 * cfgloop.h: Include vec-prim.h.
5479 (enum li_flags): Remove LI_ONLY_OLD.
5480 (loop_iterator): Changed.
5481 (fel_next, fel_init): Iterate over loop tree.
5482 (FOR_EACH_LOOP_BREAK): New macro.
5483 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
5484 FOR_EACH_LOOP.
5485 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
5486 * modulo-sched.c (sms_schedule): Ditto.
5487 * tree-vectorizer.c (vectorize_loops): Ditto.
5488 * doc/loop.texi: Update information on loop numbering and behavior of
5489 FOR_EACH_LOOP wrto new loops.
5490 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
5491 add_to_evolution_1): Test nestedness of loops instead of comparing
5492 their numbers.
5493 * tree-chrec.c (chrec_fold_plus_poly_poly,
5494 chrec_fold_multiply_poly_poly, chrec_evaluate,
5495 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
5496 reset_evolution_in_loop): Ditto.
5497 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
5498
5499 2007-01-31 Dirk Mueller <dmueller@suse.de>
5500
5501 * c-common.c (warn_about_parentheses): Separate warning about
5502 un-parenthized sequence of comparison operators from the one
5503 which is supposed to warn about x <= y <= z.
5504
5505 2007-01-31 Uros Bizjak <ubizjak@gmail.com>
5506
5507 * optabs.h (enum optab_index): Add new OTI_isinf.
5508 (isinf_optab): Define corresponding macro.
5509 * optabs.c (init_optabs): Initialize isinf_optab.
5510 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
5511 patterns.
5512 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
5513 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
5514 using isinf_optab.
5515 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
5516 expand_builtin_interclass_mathfn.
5517 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
5518 * config/i386/i386.md (UNSPEC_FXAM): New constant.
5519 (fxam<mode>2_i387): New insn pattern.
5520 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
5521 built-in functions as x87 inline asm.
5522
5523 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
5524
5525 * gcc/config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
5526
5527 2007-01-30 Eric Christopher <echristo@apple.com>
5528
5529 * config.gcc: Add geode.
5530
5531 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
5532
5533 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
5534 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
5535 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
5536 value-prof.c: Fix comment typos.
5537
5538 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5539
5540 PR c++/24745
5541 * doc/invoke.texi (Wpointer-arith): Document warning.
5542
5543 2007-01-30 Janis Johnson <janis187@us.ibm.com>
5544
5545 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
5546 the list of discrepancies from the draft TR.
5547
5548 2007-01-30 Dirk Mueller <dmueller@suse.de>
5549
5550 PR c++/30601
5551 * doc/invoke.texi (-Wreturn-type): Update description to
5552 match new behavior.
5553
5554 2007-01-30 Richard Sandiford <richard@codesourcery.com>
5555
5556 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
5557
5558 2007-01-30 Uros Bizjak <ubizjak@gmail.com>
5559
5560 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
5561 to handle optabs that operate on floating point input argument and
5562 output to integer output.
5563 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
5564 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
5565 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
5566 expand_builtin_interclass_mathfn ().
5567 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
5568 (ilogbsi2): Remove.
5569 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
5570 ilogbl built-in functions as x87 intrinsics.
5571
5572 2007-01-30 Richard Guenther <rguenther@suse.de>
5573
5574 PR middle-end/27657
5575 * dwarf2out.c (reference_to_unused): Query varpool if the
5576 variable was output.
5577
5578 2007-01-30 Richard Guenther <rguenther@suse.de>
5579
5580 PR middle-end/30313
5581 * passes.c (execute_one_pass): Reset in_gimple_form to not
5582 confuse non-unit-at-a-time mode.
5583
5584 2007-01-29 Roger Sayle <roger@eyesopen.com>
5585 Richard Guenther <rguenther@suse.de>
5586
5587 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
5588 avoid undefined behaviour on overflow. Use force_fit_type_double
5589 to construct the constant with the specified TREE_OVERFLOW.
5590
5591 2007-01-29 Janis Johnson <janis187@us.ibm.com>
5592
5593 * config/dfp-bit.c: Add parameterized support for fp exceptions.
5594 * config/dfp-bit.h: Ditto.
5595
5596 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5597
5598 * c-decl.c (pop_scope): Replace warnings with call to
5599 warn_for_unused_label.
5600 * c-common.h (warn_for_unused_label): Declare.
5601 * c-common.c (warn_for_unused_label): Define.
5602
5603 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5604
5605 * tree-optimize.c (update_inlined_to_pointers): Delete unused
5606 function.
5607
5608 2007-01-29 Janis Johnson <janis187@us.ibm.com>
5609
5610 * Makefile.in (USER_H): Remove decfloat.h.
5611 * ginclude/decfloat.h: Delete, moving contents to ...
5612 * ginclude/float.h: Add support for decimal floating point,
5613 guarded by __STDC_WANT_DEC_FP__.
5614
5615 2007-01-29 Mike Stump <mrs@apple.com>
5616
5617 * doc/gccint.texi (Top): Rename Loop Representation to Loop
5618 Analysis and Representation to resolve case insensitive conflict.
5619 * doc/loop.texi (Loop Analysis and Representation): Likewise.
5620
5621 2007-01-28 Daniel Berlin <dberlin@dberlin.org>
5622
5623 * tree.h (struct tree_memory_tag): Add aliases member.
5624 (MTAG_ALIASES): New macro.
5625 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
5626 (add_may_alias): Remove pointer-set. Update for may_aliases being
5627 a bitmap.
5628 (mark_aliases_call_clobbered): Update for may_aliases being a
5629 bitmap.
5630 (compute_tag_properties): Ditto.
5631 (create_partition_for): Ditto.
5632 (compute_memory_partitions): Ditto.
5633 (dump_may_aliases_for): Ditto.
5634 (is_aliased_with): Ditto.
5635 (add_may_alias_for_new_tag): Ditto.
5636 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
5637 (compute_is_aliased): New function.
5638 (compute_may_aliases): Call compute_is_aliased).
5639 (init_alias_info): Initialize alias_bitmap_obstack.
5640 (union_alias_set_into): New function.
5641 (compute_flow_sensitive_aliasing): Use union_aliases_into.
5642 (have_common_aliases_p): Rewrite to take two bitmaps and use
5643 intersection.
5644 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
5645 Update for bitmaps.
5646 (finalize_ref_all_pointers): Update for add_may_alias changes.
5647 (new_type_alias): Ditto.
5648 * tree-flow-inline.h (may_aliases): Return a bitmap.
5649 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
5650 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
5651 may_aliases being a bitmap.
5652 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
5653 may_aliases now returns a bitmap.
5654 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
5655 being a bitmap.
5656 * tree-ssa-operands.c (add_virtual_operand): Update for
5657 may_aliases being a bitmap.
5658
5659 2007-01-29 Daniel Berlin <dberlin@dberlin.org>
5660
5661 PR tree-optimization/30630
5662 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
5663 variable as changed.
5664
5665 2007-01-29 Simon Martin <simartin@users.sourceforge.net>
5666
5667 PR c++/28266
5668 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
5669 expanded only once even if an error occurs.
5670
5671 2007-01-29 Ben Elliston <bje@au.ibm.com>
5672
5673 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
5674 (__gcov_average_profiler): Likewise.
5675 (__gcov_ior_profiler): Likewise.
5676 (__gcov_merge_ior): Likewise.
5677
5678 2007-01-28 Jan Hubicka <jh@suse.cz>
5679
5680 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
5681 * value-prof.c (stringop_block_profile): Likewise.
5682
5683 2007-01-28 Jan Hubicka <jh@suse.cz>
5684
5685 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
5686 variant handling histograms; add wrapper.
5687 (clear_storage_via_libcall): Export.
5688 (emit_block_move_hints): Break out from ...; add histograms.
5689 (emit_block_move): ... this one.
5690 (clear_storage_hints): Break out from ...; add histograms.
5691 (clear_storage): ... this one.
5692 (set_storage_via_memset): Handle histogram.
5693 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
5694 (clear_storage_hints, clear_storage_via_libcall): Declare.
5695 (set_storage_via_setmem): Update prototype.
5696 * doc/md.texi (movmem, setmem): Document new arguments.
5697
5698 * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
5699 new histograms.
5700 (stringop_block_profile): New global function.
5701 (tree_stringops_values_to_profile): Profile block size and alignment.
5702 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
5703 HIST_TYPE_IOR.
5704 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
5705 (stringop_block_profile): Declare.
5706 * builtins.c: Include value-prof.h.
5707 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
5708 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
5709 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
5710 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
5711 * profile.c (instrument_values): Add new counters.
5712 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
5713 calls.
5714 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
5715 (tree_init_edge_profiler): Build new profilers.
5716 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
5717 (pass_tree_profile): Add dump.
5718 (tree_profile_hooks): Update.
5719 * Makefile.in (LIBGCOV): Add new constants.
5720 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
5721 __gcov_ior_profiler): New.
5722 * i386.md (movmem/setmem expanders): Add new optional arguments.
5723
5724 2007-01-28 David Edelsohn <edelsohn@gnu.org>
5725
5726 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
5727
5728 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
5729
5730 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
5731 (tree_unswitch_single_loop): Pass eni_size_weights to
5732 tree_num_loop_insns.
5733 * tree-ssa-loop-manip.c: Include tree-inline.h.
5734 (can_unroll_loop_p): Pass eni_size_weights to
5735 tree_num_loop_insns.
5736 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
5737 Pass eni_size_weights to estimate_num_insns.
5738 * tree.h (init_inline_once): Export.
5739 * toplev.c (backend_init): Call init_inline_once.
5740 * cgraphunit.c (cgraph_process_new_functions,
5741 cgraph_analyze_function): Pass eni_inlining_weights to
5742 estimate_num_insns.
5743 * ipa-inline.c (compute_inline_parameters): Ditto.
5744 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
5745 to estimate_num_insns.
5746 (try_unroll_loop_completely): Pass eni_size_weights to
5747 tree_num_loop_insns.
5748 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
5749 ot estimate_num_insns.
5750 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
5751 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
5752 * tree-inline.c (eni_inlining_weights, eni_size_weights,
5753 eni_time_weights): New variables.
5754 (init_inline_once): Initialize them.
5755 (struct eni_data): Mew.
5756 (estimate_num_insns_1, estimate_num_insns): Use weights.
5757 * tree-inline.h (struct eni_weights_d): New.
5758 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
5759 (estimate_num_insns): Declaration changed.
5760 * cfgloop.h (tree_num_loop_insns): Declaration changed.
5761 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
5762 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
5763
5764 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
5765
5766 * tree-data-ref.c (conflict_fn): Assert that the number of affine
5767 relations in the conflict function is valid.
5768
5769 2007-01-27 Ian Lance Taylor <iant@google.com>
5770
5771 * common.opt: Add fstrict-overflow.
5772 * opts.c (decode_options): Set flag_strict_overflow if -O2.
5773 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
5774 (TYPE_OVERFLOW_UNDEFINED): Define.
5775 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
5776 Replace all uses.
5777 * tree.h (TYPE_TRAP_SIGNED): Don't define.
5778 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
5779 (fold_negate_expr): Likewise.
5780 (make_range): Likewise.
5781 (extract_muldiv_1): Likewise.
5782 (maybe_canonicalize_comparison): Likewise.
5783 (fold_comparison): Likewise.
5784 (fold_binary): Likewise.
5785 (tree_expr_nonnegative_p): Likewise.
5786 (tree_expr_nonzero_p): Likewise.
5787 * tree-vrp.c (compare_values): Likewise.
5788 (extract_range_from_binary_expr): Likewise.
5789 (extract_range_from_unary_expr): Likewise.
5790 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
5791 Likewise.
5792 (nowrap_type_p): Likewise.
5793 * tree-scalar-evolution.c (simple_iv): Likewise.
5794 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
5795 (build_range_check): Likewise.
5796 (extract_muldiv_1): Likewise.
5797 (fold_comparison): Likewise.
5798 * tree-vrp.c (vrp_int_const_binop): Likewise.
5799 (extract_range_from_unary_expr): Likewise.
5800 * convert.c (convert_to_integer): Likewise.
5801 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
5802 (fold_comparison): Likewise.
5803 (fold_binary): Likewise.
5804 * optabs.c (optab_for_tree_code): Likewise.
5805 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
5806 * simplify-rtx.c (simplify_const_relational_operation): Check
5807 flag_strict_overflow and flag_trapv.
5808 (simplify_const_relational_operation): Likewise.
5809 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
5810 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
5811 -fstrict-overflow.
5812
5813 2007-01-27 Roger Sayle <roger@eyesopen.com>
5814
5815 * tree.c (tree_fold_gcd): Delete.
5816 * tree.h (tree_fold_gcd): Remove prototype.
5817 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
5818 test whether one constant integer is a multiple of another. Instead
5819 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
5820 * fold-const.c (multiple_of_p): We've determined both TOP and
5821 BOTTOM are integer constants so we can call int_const_binop directly
5822 instead of the more generic const_binop.
5823
5824 2007-01-27 Roger Sayle <roger@eyesopen.com>
5825
5826 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
5827 1*X check that the constant hasn't overflowed, to preserve the
5828 TREE_OVERFLOW bit.
5829 (round_up): Provide an efficient implementation when rouding-up an
5830 INTEGER_CST to a power-of-two.
5831
5832 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5833
5834 * doc/sourcebuild.texi: Add comma for clarity.
5835 * doc/extend.texi: Fix some typos.
5836 * doc/passes.texi: Likewise.
5837 * doc/cppinternals.texi: Likewise.
5838 * doc/c-tree.texi: Likewise.
5839 * doc/tree-ssa.texi: Likewise.
5840 * doc/install.texi: Likewise.
5841
5842 2007-01-27 Jan Hubicka <jh@suse.cz>
5843
5844 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
5845 (pass_sra): Do not require alias information.
5846 * passes.c (init_optimization_passes): Add SRA
5847
5848 2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
5849
5850 * tracer.c (rest_of_handle_tracer): We already cleaned
5851 up the CFG in tracer() so don't do it here again.
5852 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
5853 cleanup_cfg here, either. And don't call renumber_insns.
5854
5855 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
5856 and BB_HEAD are in the insn stream here. Instead make sure
5857 that BB_INSN is valid on all insns. Also, do check here that
5858 there are no pending branch predictions...
5859 (rtl_verify_flow_info): ...instead of doing it here. Checks
5860 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
5861 here.
5862
5863 2007-01-26 Roger Sayle <roger@eyesopen.com>
5864
5865 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
5866 function to simplify/factorize operand order canonicalization.
5867 (ix86_fixup_binary_operands): Reorganize using the above function.
5868 (ix86_binary_operator_ok): Likewise.
5869
5870 2007-01-27 Jakub Jelinek <jakub@redhat.com>
5871
5872 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
5873 file scope from optimize_attrs.
5874 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
5875 up search.
5876 (optimize_attrs): Clear insn_code_values after freeing it.
5877
5878 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
5879
5880 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
5881 a parts.base assignment.
5882
5883 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
5884
5885 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
5886 (compute_subscript_distance, initialize_data_dependence_relation,
5887 finalize_ddr_dependent, analyze_ziv_subscript,
5888 analyze_siv_subscript_cst_affine,
5889 compute_overlap_steps_for_affine_univar,
5890 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
5891 analyze_siv_subscript, analyze_miv_subscript,
5892 analyze_overlapping_iterations, subscript_dependence_tester_1,
5893 compute_self_dependence, free_dependence_relation): Work
5894 with affine_fn instead of chrecs.
5895 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
5896 common_affine_function, affine_function_base,
5897 affine_function_constant_p, affine_fn_op, affine_fn_plus,
5898 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
5899 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
5900 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
5901 (all_chrecs_equal_p): Removed.
5902 * tree-data-ref.h (affine_fn, conflict_function): New types.
5903 (struct subscript): Change type of conflicting_iterations_in_a
5904 and conflicting_iterations_in_b.
5905
5906 2007-01-26 Steve Ellcey <sje@cup.hp.com>
5907
5908 PR other/30182
5909 * config/pa/pa.h (TARGET_HPUX_11): New.
5910 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
5911 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
5912
5913 2007-01-26 Daniel Berlin <dberlin@dberlin.org>
5914 Richard Guenther <rguenther@suse.de>
5915
5916 * tree-ssa-structalias.c (solve_graph): Handle case
5917 we merged the variable to another.
5918
5919 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5920
5921 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
5922 functions.
5923
5924 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
5925 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
5926
5927 2007-01-25 DJ Delorie <dj@redhat.com>
5928
5929 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
5930 allow changes to modes which don't fit in those registers.
5931
5932 * reload1.c (choose_reload_regs): Check for invalid subregs before
5933 computing their locations, not after.
5934
5935 2007-01-25 Geoffrey Keating <geoffk@apple.com>
5936
5937 PR 25127
5938 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
5939 save Altivec registers in an eh_return function.
5940 (compute_vrsave_mask): Likewise.
5941 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
5942 for saving Altivec registers.
5943 (rs6000_emit_prologue): Don't allocate stack twice in
5944 eh_return function. Correct expected value of altivec_save_offset
5945 when using save_world. Describe save of R0 to stack when using
5946 save_world. Describe stack pointer adjustment when using
5947 save_world. Remove duplicated eh_return parameter register saving.
5948 Update sp_offset variable after save_world.
5949 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
5950 darwin-world.asm.
5951 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
5952 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
5953 implies Altivec.
5954
5955 2007-01-25 Steve Ellcey <sje@cup.hp.com>
5956
5957 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
5958
5959 2007-01-25 Steve Ellcey <sje@cup.hp.com>
5960
5961 PR other/30182
5962 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
5963 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
5964
5965 2007-01-25 Richard Guenther <rguenther@suse.de>
5966
5967 * doc/invoke.texi (-Wcoverage-mismatch): Document.
5968 * common.opt (-Wcoverage-mismatch): New warning option.
5969 * coverage.c (get_coverage_counts): Ignore coverage mismatch
5970 if -Wcoverage-mismatch is given.
5971
5972 2007-01-25 Razya Ladelsky <razya@il.ibm.com>
5973
5974 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
5975 (ipcp_driver): Change to static definition.
5976 Add dumping of the ifunctions.
5977 (constant_val_insert): Remove unused parameter. Support for SSA.
5978 (ipcp_propagate_const): Support for SSA.
5979 (ipcp_profile_bb_print): Print only analyzed nodes.
5980 (ipcp_replace_map_create): Remove support for Fortran constant
5981 for now.
5982 * ipa-prop.c (ipa_method_modify_stmt,
5983 ipa_callsite_compute_param): Support for SSA.
5984 * ipa-prop.h (ipcp_driver): Remove declaration.
5985 (IS_VALID_TREE_MAP_INDEX): Add define.
5986
5987 2007-01-24 Geoffrey Keating <geoffk@apple.com>
5988
5989 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
5990
5991 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5992
5993 PR middle-end/30447
5994 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
5995 constant argument to cabs and do it without checking for
5996 -funsafe-math-optimizations.
5997
5998 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
5999
6000 * c-common.h (RID_FIRST_CXX0X): New.
6001 (RID_LAST_CXX0X): New.
6002 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
6003 by -Wall.
6004 * c.opt (Wc++0x-compat): New.
6005 * doc/invoke.texi (-Wc++0x-compat): Document.
6006
6007 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6008
6009 * builtins.c (fold_builtin_carg): New.
6010 (fold_builtin_1): Use it.
6011
6012 2007-01-24 Jan Hubicka <jh@suse.cz>
6013
6014 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
6015
6016 * ipa-inline.c (initial_insns, max_insns): Delete.
6017 (compute_max_insns): New function.
6018 (cgraph_decide_inlining_of_small_function): Use it; take minimal amount
6019 of insns as base for code growth.
6020 (cgraph_decide_inlining): Make initial_insns local; do not compute
6021 max_insns.
6022 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
6023 * doc/invoke.texi (inline-unit-growth): Update docs.
6024
6025 2007-01-24 Jakub Jelinek <jakub@redhat.com>
6026
6027 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
6028 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
6029 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
6030 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
6031 for CPUs that have PTA_CX16 set.
6032
6033 PR middle-end/27416
6034 * gimplify.c (omp_check_private): New function.
6035 (gimplify_scan_omp_clauses): Use it for
6036 firstprivate/lastprivate/reduction.
6037
6038 PR middle-end/30494
6039 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
6040 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
6041
6042 PR middle-end/30421
6043 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
6044 If lower_lastprivate_clauses emits some statements, append them
6045 to dlist rather than body_p and to body_p append an initializer.
6046 (lower_omp_for): Adjust caller.
6047
6048 2007-01-24 Steve Ellcey <sje@cup.hp.com>
6049
6050 * target.h (globalize_decl_name): New.
6051 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
6052 * output.h (default_globalize_decl_name): New.
6053 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
6054 globalize_label.
6055 (globalize_decl): Ditto.
6056 (default_globalize_decl_name): New.
6057 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
6058 (ia64_handle_version_id_attribute): New.
6059 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
6060 (ia64_asm_output_external): Use globalize_decl_name instead
6061 of globalize_label.
6062 * doc/extend.texi (version_id): New pragma.
6063 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
6064
6065 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
6066
6067 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
6068 _uleb128_t and _Unwind_SWord with _sleb128_t.
6069 * unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program,
6070 uw_frame_state_for, uw_update_context_1): Likewise.
6071 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
6072 * unwind-pe.h (read_uleb128, read_sleb128,
6073 read_encoded_value_with_base): Likewise.
6074 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
6075
6076 2007-01-24 Richard Guenther <rguenther@suse.de>
6077
6078 * builtins.c (expand_builtin_cexpi): Get the fndecl
6079 for cexp in the correct way.
6080
6081 2007-01-24 Jan Hubicka <jh@suse.cz>
6082
6083 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls.
6084
6085 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
6086
6087 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
6088 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
6089 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
6090 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
6091 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
6092 __SIZEOF_PTRDIFF_T__.
6093 * doc/cpp.texi: Documentation for the new builtin macros added.
6094
6095 2007-01-24 Uros Bizjak <ubizjak@gmail.com>
6096
6097 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
6098 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
6099 instead of operands[2] to avoid access past the end of array.
6100
6101 2007-01-24 Richard Sandiford <richard@codesourcery.com>
6102
6103 * reload1.c (emit_reload_insns): Pass the reload register
6104 for a non-spill output reload through forget_old_reloads_1.
6105
6106 2007-01-23 Joseph Myers <joseph@codesourcery.com>
6107
6108 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6109 _SOFT_DOUBLE if doubles use software floating-point.
6110 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
6111 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
6112 * config/rs6000/darwin-ldouble.c: Also compile functions for
6113 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
6114 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
6115 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
6116 commented-out long double override.
6117 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
6118 * config/rs6000/eabispe.h: Likewise.
6119 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
6120 long double for non-SPE.
6121 (rs6000_handle_option): Likewise.
6122 (invalid_e500_subreg): Disallow more subregs involding DImode,
6123 DFmode, TImode or TFmode.
6124 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
6125 E500 double.
6126 (legitimate_lo_sum_address_p): Also check for TFmode for E500
6127 double.
6128 (rs6000_legitimize_address): Also handle TFmode for E500 double.
6129 (rs6000_legitimize_reload_address): Also handle TFmode for E500
6130 double.
6131 (rs6000_legitimate_address): Also check for TFmode for E500
6132 double.
6133 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
6134 (spe_build_register_parallel): Handle TFmode and TCmode.
6135 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
6136 double.
6137 (function_arg): Handle TFmode and TCmode for E500 double.
6138 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
6139 in general.
6140 (print_operand): Handle TFmode and TImode for %y.
6141 (rs6000_generate_compare): Handle TFmode comparisons for E500
6142 double.
6143 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
6144 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
6145 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
6146 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
6147 TFmode for E500 double.
6148 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
6149 (floatsidf2): Enable for E500 double.
6150 (movtf_softfloat): Use rs6000_nonimmediate_operand.
6151 (extenddftf2): Change to extenddftf2_fprs.
6152 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
6153 depending on TARGET_E500_DOUBLE.
6154 (extendsftf2): Enable for E500 double.
6155 (trunctfdf2): Enable for E500 double.
6156 (trunctfsf2): Change to trunctfsf2_fprs.
6157 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
6158 depending on TARGET_E500_DOUBLE.
6159 (floatsitf2): Enable for E500 double.
6160 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
6161 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
6162 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
6163 (negtf2): Change to negtf2_internal.
6164 (negtf2): New expander.
6165 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
6166 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
6167 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
6168 (movdi_internal32): Use rs6000_nonimmediate_operand.
6169 (unnamed splitter): Likewise.
6170 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
6171 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
6172 (SPE64TF, DITI): New mode macros.
6173 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
6174 modes.
6175 (frob_tf_ti): New.
6176 (frob_<mode>_di_2): New.
6177 (frob_tf_di_8_2): New.
6178 (frob_di_df): Change to frob_di_<mode>; allow more modes.
6179 (frob_ti_tf): New.
6180 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
6181 more modes.
6182 (frob_ti_<mode>_8_2): New.
6183 (frob_ti_tf_2): New.
6184 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
6185 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
6186 TFmode.
6187 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
6188 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
6189 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
6190 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
6191 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
6192 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
6193 tsttflt_gp): New.
6194
6195 2007-01-23 Ian Lance Taylor <iant@google.com>
6196
6197 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
6198 insn-*.o first.
6199 (OBJS-archive): Reformat, alphabetize.
6200 (OBJS): Change out_object_file to OBJS-md.
6201
6202 2007-01-23 Uros Bizjak <ubizjak@gmail.com>
6203
6204 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
6205 JUMP_P and CALL_P predicates where applicable.
6206 * config/i386/i386.c: Ditto.
6207 * config/i386/i386.md: Ditto.
6208 * config/i386/mmx.md: Ditto.
6209 * config/i386/predicates.md: Ditto.
6210
6211 2007-01-22 Andreas Schwab <schwab@suse.de>
6212
6213 * config/m68k/m68k.h: Fix comment.
6214
6215 2007-01-22 Jan Hubicka <jh@suse.cz>
6216
6217 * passes.c (init_optimization_passes): Do not rerun
6218 pass_early_warn_uninitialized.
6219
6220 2007-01-22 Richard Guenther <rguenther@suse.de>
6221
6222 PR tree-optimization/30038
6223 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
6224 function.
6225 (execute_cse_sincos_1): Likewise.
6226 (execute_cse_sincos): Likewise.
6227 (gate_cse_sincos): Likewise.
6228 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
6229 the cexpi() canonicalization of sincos().
6230 * tree-pass.h (pass_cse_sincos): Declare.
6231 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
6232
6233 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
6234
6235 PR rtl-optimization/29329
6236 * combine.c (replaced_rhs_insn): Rename to i2mod.
6237 (replaced_rhs_value): Rename to i2mod_new_rhs.
6238 (i2mod_old_rhs): New global variable.
6239 (combine_instructions): Adjust for above change. Save a copy of
6240 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
6241 note are substituted in the second instruction.
6242 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
6243 ditch the note if it pertains to the second eliminated register
6244 and this register is mentioned in i2mod_old_rhs.
6245
6246 Revert:
6247 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
6248
6249 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
6250 the insn to which the note was originally attached.
6251
6252 2007-01-21 Jan Hubicka <jh@suse.cz>
6253
6254 * ipa-inline.c (inlining_mode): Comment, move up.
6255 (cgraph_decide_inlining_incrementally): Do not perform inlining
6256 itself; fix handling of flattening of self recursive functions.
6257 (cgraph_find_cycles): Remove.
6258 (cgraph_flatten_node): Remove.
6259 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
6260 (try_inline): New function.
6261 (cgraph_early_inlining): Update call of
6262 cgraph_decide_inlining_incrementally. Apply inlining here.
6263 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
6264
6265 2007-01-21 Dirk Mueller <dmueller@suse.de>
6266
6267 PR bootstrap/30511
6268 * tree-vrp.c (check_array_bounds): do not warn
6269 about ADDR_EXPR's of ARRAY_REF's which are immediately
6270 used in binary expressions.
6271
6272 2007-01-21 Ira Rosen <irar@il.ibm.com>
6273
6274 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
6275 read_write_dep and macros for its access.
6276 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
6277 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
6278 argument, call vect_check_interleaving for every independent pair of
6279 data-refs. Mark loads that access the same memory location as a store
6280 in the loop.
6281 (vect_check_dependences): Remove.
6282 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
6283 call, fix the call to vect_analyze_data_ref_dependence.
6284 (vect_analyze_data_ref_access): For statements that access the same
6285 data-ref, check that they are not stores; for loads, check that there
6286 is no store that access the same location.
6287
6288 2007-01-20 Roger Sayle <roger@eyesopen.com>
6289 Joseph Myers <joseph@codesourcery.com>
6290
6291 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
6292 (-fdump-rtl-stack): Likewise.
6293 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
6294 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
6295 (-mpt-fixed): Use @minus{} for minus sign.
6296 (Using Precompiled Headers): Fix under/overfull hbox.
6297
6298 2007-01-20 Jan Hubicka <jh@suse.cz>
6299
6300 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
6301 place within annotation.
6302
6303 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6304
6305 * pa.c (output_move_double): Change array size of xoperands to 4.
6306
6307 2007-01-20 Jan Hubicka <jh@suse.cz>
6308
6309 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
6310 as temporary.
6311
6312 2007-01-19 Ian Lance Taylor <iant@google.com>
6313
6314 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
6315 constant to unsigned HOST_WIDE_INT before negating.
6316
6317 2007-01-19 Ian Lance Taylor <iant@google.com>
6318
6319 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
6320 to unsigned.
6321 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
6322 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
6323 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
6324 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
6325 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
6326 (realloc_vdef, realloc_vuse): Change second parameter to
6327 unsigned.
6328 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
6329 fields to unsigned.
6330 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
6331 unsigned. Change x and lim locals to unsigned.
6332 (realloc_vdef, realloc_vuse): Change num_elem parameter to
6333 unsigned.
6334 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
6335 (copy_virtual_operands): Change i and n locals to unsigned.
6336
6337 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6338
6339 PR middle-end/29335
6340 * builtins.c (fold_builtin_1): Handle builtin fdim.
6341
6342 2007-01-20 Jan Hubicka <jh@suse.cz>
6343
6344 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
6345 * tree-ssa-structalias.c (compute_points_to_sets): Do call
6346 init_alias_heapvars.
6347 (init_alias_heapvars): Initialize only when not already initialized.
6348 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
6349
6350 2007-01-19 Roger Sayle <roger@eyesopen.com>
6351
6352 * common.opt (fsigned-zeros): New command line option.
6353 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
6354 of flag_unsafe_math_optimizations.
6355 * opts.c (set_fast_math_flags): The -ffast-math command line option
6356 implies -fno-signed-zeros.
6357 (fast_math_flags_set_p): Likewise.
6358
6359 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
6360 the documentation of -ffast-math appropriately. Wrap long lines.
6361
6362 2007-01-19 Steve Ellcey <sje@cup.hp.com>
6363
6364 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
6365 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
6366
6367 2007-01-19 Tomas Bily <tbily@suse.cz>
6368
6369 * cgraphunit.c (cgraph_finalize_function): Updating of pid
6370 * tree-profile.c:
6371 (tree_init_ic_make_global_vars): New function
6372 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
6373 (tree_gen_ic_profiler): New function
6374 (tree_gen_ic_func_profiler): New function
6375 (tree_profiling): Added calling of tree_gen_ic_func_profiler
6376 (tree_profile_hooks): Added hook for indirec/virtual calls
6377 * value-prof.c (tree_find_values_to_profile): New case for
6378 indirect calls
6379 (tree_values_to_profile): Call for determining indirect/virtual
6380 counters
6381 (tree_indirect_call_to_profile): New function
6382 (tree_ic_transform): New function
6383 (tree_ic): New function
6384 (find_func_by_pid): New function
6385 (init_pid_map): New function
6386 (tree_value_profile_transformations): Added check for
6387 indirect/virtual call transformation
6388 * value-prof.h (enum hist_type): New counter type for
6389 indirect/virtual calls
6390 (profile_hooks): Added new hook for profiling indirect/virtual
6391 calls
6392 * profile.c (instrument_values): New case for indirect/virtual
6393 call added
6394 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
6395 (GCOV_COUNTER_V_INDIR): New counter type
6396 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
6397 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
6398 call added
6399 * cgraph.c: Definition of cgraph_max_pid
6400 (cgraph_create_node): Default init of pid attribute
6401 * cgraph.h: Declaration of cgraph_max_pid
6402 (struct cgraph_node): Added pid attribute
6403 * libgcov.c (__gcov_indirect_call_profiler): New function
6404 (__gcov_one_value_profiler_body): New function
6405 (__gcov_one_value_profiler): Body was moved to
6406 __gcov_one_value_profiler_body and calls it
6407
6408 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
6409
6410 * doc/gty.texi (Options): Document the mark_hook option to GTY.
6411 * gengtype.c (write_types_data, write_func_for_structure,
6412 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
6413 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
6414 (walk_type, write_func_for_structure): Generate the mark_hook if
6415 needed.
6416
6417 2007-01-19 Jan Hubicka <jh@suse.cz>
6418
6419 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
6420 'early' argument take inlining mode argument specifying whether to
6421 inline for size/speeed or all functions; add support for flattening;
6422 improve dumpting.
6423 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
6424
6425 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6426
6427 PR c++/17947
6428 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
6429 the name of the declared identifier.
6430
6431 2007-01-19 Dirk Mueller <dmueller@suse.de>
6432
6433 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
6434 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
6435 duplicate evaluation.
6436
6437 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
6438
6439 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
6440 Macroize expander using X87MODEF12 mode macro. Extend operand 1
6441 to XFMode, use acosxf2 and truncate result to requested mode.
6442 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
6443 (asin<mode>2): Similarly, with asin expanders.
6444 (*fscalexf4_i387): Rename from *fscalexf4.
6445 (expNcorexf3): New expander.
6446 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
6447 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
6448 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
6449 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
6450 patterns for SSE math.
6451 (exp10<mode>2): Similarly, with exp10 expanders.
6452 (exp2<mode>2): Similarly, with exp2 expanders.
6453 (expm1<mode>2): Similarly, with expm1 expanders.
6454 (ldexp<mode>3): Similarly, with ldexp expanders.
6455 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
6456 Use gen_truncxf<mode>2_i387_noop to truncate result.
6457
6458 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6459
6460 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
6461 for ColdFire targets.
6462
6463 2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
6464 Richard Sandiford <richard@codesourcery.com>
6465
6466 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
6467 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
6468 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
6469 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
6470 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
6471 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
6472
6473 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6474
6475 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
6476 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
6477 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
6478 (*adddi_dilshr32_cf): New pattern.
6479 (adddi3, subdi3): Remove first alternatives.
6480
6481 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6482
6483 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
6484 implemented using move.l, do not use its cc result for floating-point
6485 comparisons.
6486
6487 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6488
6489 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
6490 from accepting 's' constraints if flag_pic.
6491
6492 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6493
6494 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
6495 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
6496 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
6497 condition from TARGET_68881 to TARGET_HARD_FLOAT.
6498
6499 2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
6500
6501 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
6502 ColdFire alternatives.
6503 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
6504 * config/m68k/m68k.md (clzsi2): Define for ColdFire
6505 architectures that support ff1 instruction.
6506
6507 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6508 Julian Brown <julian@codesourcery.com>
6509
6510 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
6511 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
6512 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
6513 Add commentary.
6514
6515 2007-01-19 Richard Sandiford <richard@codesourcery.com>
6516
6517 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
6518 and return a bool.
6519 (output_move_const_into_data_reg, output_move_simode_const): Delete.
6520 * config/m68k/m68k.c (const_method, const_int_cost): Take a
6521 HOST_WIDE_INT instead of an rtx.
6522 (m68k_rtx_costs): Update call accordingly.
6523 (output_move_const_into_data_reg): Likewise. Fix formatting.
6524 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
6525 Return a bool.
6526 (output_move_simode_const): Update calls after above changes.
6527 Rework to use automatic variables and predicates like MEM_P.
6528 * config/m68k/m68k.md (pushexthisi_const): Update call to
6529 valid_mov3q_const.
6530
6531 2007-01-19 Dirk Mueller <dmueller@suse.de>
6532
6533 * tree-ssa-alias.c (perform_var_substitution): Fix typo
6534 in dump_flags test.
6535
6536 2007-01-19 Richard Guenther <rguenther@suse.de>
6537
6538 * builtins.c (expand_builtin_cexpi): Fall back to expanding
6539 via cexp in case sincos is not available.
6540
6541 2007-01-19 Richard Guenther <rguenther@suse.de>
6542
6543 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
6544 * defaults.h (TARGET_HAS_SINCOS): Default to off.
6545 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
6546 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
6547 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
6548 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
6549 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
6550 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
6551
6552 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
6553
6554 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
6555 New insn patterns.
6556 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
6557 (atan2xf3): Directly generate RTL pattern.
6558 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
6559 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
6560 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
6561 disable patterns for SSE math.
6562 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
6563 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
6564 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
6565 disable patterns for SSE math.
6566
6567 2007-01-19 Alexandre Oliva <aoliva@redhat.com>
6568
6569 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
6570
6571 2007-01-18 Roger Sayle <roger@eyesopen.com>
6572
6573 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
6574 VIEW_CONVERT_EXPR to the same type as it's operand.
6575
6576 2007-01-18 David Edelsohn <edelsohn@gnu.org>
6577
6578 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
6579 configured for long double 128.
6580
6581 2007-01-18 Mike Stump <mrs@apple.com>
6582
6583 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
6584 error.
6585
6586 2007-01-18 Michael Meissner <michael.meissner@amd.com>
6587
6588 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
6589 type correct.
6590
6591 2007-01-18 Jan Hubicka <jh@suse.cz>
6592
6593 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
6594 greater than NUM_VOP_FREE_BUCKETS.
6595
6596 2007-01-18 Daniel Berlin <dberlin@dberlin.org>
6597
6598 * tree-ssa-structalias.c: Update comments.
6599 (ptabitmap_obstack): Removed.
6600 (pta_obstack): New.
6601 (oldpta_obstack): Ditto.
6602 (stats): Add a few members.
6603 (struct variable_info): Remove node, complex, address_taken, and
6604 indirect_target members. Add oldsolution member.
6605 (new_var_info): Do not initialize removed members.
6606 (constraint_expr_type): Remove INCLUDES.
6607 (constraint_graph): Add size, implicit_preds, rep,
6608 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
6609 (FIRST_REF_NODE): New macro.
6610 (LAST_REF_NODE): Ditto.
6611 (FIRST_ADDR_NODE): Ditto.
6612 (find): New function.
6613 (unite): Ditto.
6614 (dump_constraint): Do not handle INCLUDES.
6615 (insert_into_complex): Do not insert duplicate constraints.
6616 (condense_varmap_nodes): Renamed and rewritten into ...
6617 (merge_node_constraints): This. Also fix bug in handling of
6618 offseted copy constraints.
6619 (clear_edges_for_node): No longer need to deal with preds at all,
6620 or removing associated preds/succs.
6621 (merge_graph_nodes): Deal with indirect_cycles.
6622 Don't deal with predecessors.
6623 (add_implicit_graph_edge): New function.
6624 (add_pred_graph_edge): Ditto.
6625 (add_graph_edge): Don't deal with predecessors.
6626 (build_constraint_graph): Removed.
6627 (build_pred_graph): New function.
6628 (build_succ_graph): Ditto.
6629 (struct scc_info): Removed in_component. Added roots, dfs, and
6630 node_mapping. Remove visited_index, unification_queue.
6631 (scc_visit): Deal with union-find we do now.
6632 Deal with cycles with REF nodes.
6633 (collapse_nodes): Renamed and rewritten to ...
6634 (unify_nodes): This.
6635 (process_unification_queue): Removed.
6636 (topo_visit): Cleanup
6637 (do_da_constraint): Use find.
6638 (do_sd_constraint): Ditto.
6639 (do_ds_constraint): Ditto.
6640 (do_complex_constraint): Ditto.
6641 (init_scc_info): Update for removed and added members.
6642 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
6643 (find_indirect_cycles): This.
6644 (equivalence_class): New variable.
6645 (label_visit): New function.
6646 (perform_variable_substitution): Rewritten.
6647 (free_var_substitution_info): New function.
6648 (find_equivalent_node): Ditto.
6649 (move_complex_constraints): Ditto.
6650 (eliminate_indirect_cycles): Ditto.
6651 (solve_graph): Only propagate changed bits.
6652 Use indirect cycle elimination.
6653 Use find.
6654 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
6655 (tree_id_eq): Renamed to ...
6656 (tree_vi_eq): This. Update for member change
6657 (insert_id_for_tree): Renamed and rewritten to ...
6658 (insert_vi_for_tree): This.
6659 (lookup_id_for_tree): Renamed and rewritten to ...
6660 (lookup_vi_for_tree): This.
6661 (get_id_for_tree): Renamed and rewritten to ...
6662 (get_vi_for_tree): Ditto.
6663 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
6664 (process_constraint): Don't handle INCLUDES.
6665 Remove special ADDRESSOF case.
6666 (find_func_aliases): Rewrite to use vi functions instead of id
6667 ones.
6668 (create_function_info_for): Ditto.
6669 (create_variable_info_for): Ditto.
6670 (intra_create_variable_infos): Ditto.
6671 (merge_smts_into): Ditto.
6672 (find_what_p_points_to): Ditto.
6673 (init_base_vars): Ditto.
6674 (init_alias_vars): Ditto.
6675 (remove_preds_and_fake_succs): New function.
6676 (dump_sa_points_to_info): Dump new stats.
6677 (dump_solution_for_var): Use find.
6678 (set_used_smts): Fix formatting.
6679 (compute_points_to_sets): Updated for new functions.
6680 (ipa_pta_execute): Ditto.
6681
6682 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
6683 Richard Sandiford <richard@codesourcery.com>
6684
6685 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
6686 parallels.
6687 * calls.c (expand_call): If the return value is a PARALLEL,
6688 extract its first member.
6689 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
6690 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
6691 use FUNCTION_EXTRA_EPILOGUE.
6692 (m68k_function_value): Return a PARALLEL if the return value
6693 is of a pointer type.
6694 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
6695 (FUNCTION_EXTRA_EPILOGUE): Remove.
6696 * config/m68k/m68k.md (D0_REG): New constant.
6697
6698 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
6699
6700 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
6701 output a NOP for empty epilogues.
6702
6703 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6704
6705 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
6706 before function. Extend register save check to include all
6707 registers, not just integer ones.
6708
6709 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
6710
6711 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
6712 (m68k_use_return_insn): ...this.
6713 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
6714 * config/m68k/m68k.c (use_return_insn): Rename to...
6715 (m68k_use_return_insn): ...this.
6716 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
6717 of USE_RETURN_INSN.
6718
6719 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
6720
6721 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
6722 nearest even, fix denormal rounding overflow.
6723
6724 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6725
6726 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
6727 f%$smove and f%$move.
6728 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
6729 (extendsfdf2_cf): Use fdmove instead of f%&move.
6730 (truncdfsf2_cf): Use fsmove instead of f%$smove.
6731 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
6732
6733 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6734
6735 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
6736 GPR<-GPR moves.
6737
6738 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6739
6740 * real.h (real_format): Add a canonical_nan_lsbs_set field.
6741 (coldfire_single_format): Declare.
6742 (coldfire_double_format): Likewise.
6743 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
6744 of qnan_msb_set to determine the lower bits of a canonical
6745 NaN significand.
6746 (encode_ieee_double): Likewise.
6747 (encode_ieee_quad): Likewise.
6748 (ieee_single_format): Initialize canonical_nan_lsbs_set.
6749 (mips_single_format): Likewise.
6750 (ieee_double_format): Likewise.
6751 (mips_double_format): Likewise.
6752 (ieee_extended_motorola_format): Likewise.
6753 (ieee_extended_intel_96_format): Likewise.
6754 (ieee_extended_intel_128_format): Likewise.
6755 (ieee_extended_intel_96_round_53_format): Likewise.
6756 (ibm_extended_format): Likewise.
6757 (mips_extended_format): Likewise.
6758 (ieee_quad_format): Likewise.
6759 (mips_quad_format): Likewise.
6760 (vax_f_format): Likewise.
6761 (vax_d_format): Likewise.
6762 (vax_g_format): Likewise.
6763 (i370_single_format): Likewise.
6764 (i370_double_format): Likewise.
6765 (decimal_single_format): Likewise.
6766 (decimal_double_format): Likewise.
6767 (decimal_quad_format): Likewise.
6768 (c4x_single_format): Likewise.
6769 (c4x_extended_format): Likewise.
6770 (real_internal_format): Likewise.
6771 (coldfire_single_format): New real_format.
6772 (coldfire_double_format): Likewise.
6773 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
6774 canonical_nan_lsbs_set.
6775 (pdp11_d_format): Likewise.
6776 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
6777 if TARGET_COLDFIRE_CPU.
6778
6779 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6780
6781 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
6782 (output_call, m68k_legitimize_call_address): Declare.
6783 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
6784 parenthesees. Add support for a 'W' constraint.
6785 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
6786 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
6787 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
6788 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
6789 variables.
6790 (override_options): Initialize them. Do not set flag_no_function_cse
6791 for TARGET_ID_SHARED_LIBRARY.
6792 (m68k_output_pic_call): Delete.
6793 (m68k_legitimize_call_address): New function.
6794 (print_operand): Remove the %o prefix. Handle the %p prefix.
6795 (output_call): New function.
6796 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
6797 target address from the GOT if symbolic jumps are not allowed.
6798 * config/m68k/m68k.md (call, general_operand): Do not set
6799 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
6800 Merge separate flag_pic and !flag_pic define_insns into...
6801 (*call, *call_value): ...these new patterns. Match the address
6802 rather than the containing MEM and require it to be a call_operand.
6803 Use output_call to generate the asm template.
6804 * config/m68k/predicates.md (const_call_operand): New predicate.
6805 (call_operand): Likewise.
6806
6807 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
6808
6809 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
6810 (STACK_GROWS_DOWNWARD): Define to 1.
6811 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
6812 comments, emphasizing that these values are only defaults.
6813 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
6814 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
6815
6816 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6817
6818 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
6819
6820 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
6821 Richard Sandiford <richard@codesourcery.com>
6822
6823 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
6824 (FP_REGNO_P): New macros.
6825 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
6826 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
6827 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
6828 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
6829
6830 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
6831
6832 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
6833 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
6834 to $tmake_file.
6835 * config/m68k/t-floatlib: New file, extracting common code from...
6836 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
6837 * config/m68k/t-uclinux: Here.
6838 * config/m68k/fpgnulib.c: Do not compile extendeed precision
6839 routines on ColdFire targets.
6840
6841 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
6842
6843 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
6844 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
6845 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
6846 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
6847 explicitly set MOTOROLA to 1.
6848 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
6849
6850 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6851 Nathan Sidwell <nathan@codesourcery.com>
6852
6853 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
6854 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
6855 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
6856 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
6857 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
6858 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
6859 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
6860 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
6861 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
6862 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
6863 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
6864 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
6865 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
6866 (DBX_REGISTER_NUMBER): Delete.
6867 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
6868 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
6869 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
6870
6871 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6872
6873 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
6874 * config/flat.h: New file.
6875 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
6876 OBJECT_FORMAT_FLAT.
6877 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
6878 indirect references for -msep-data or -mid-shared-library.
6879 Do not use PC-relative code addresses either.
6880 * config/m68k/m68k.c (override_options): Restrict -fPIC error
6881 to -mpcrel.
6882 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
6883 for shared libraries and crt1.o for executables. Use crti.o and
6884 crtbegin.o.
6885 (ENDFILE_SPEC): Use crtend.o and crtn.o.
6886 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
6887 Do not add -elf2flt or -shared-lib-id options here.
6888 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
6889 Pass -shared-lib-id if -mid-shared-library, taking the library
6890 identifier from -mshared-library-id if given, otherwise
6891 defaulting to 0.
6892 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
6893 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
6894 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
6895 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
6896 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
6897 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
6898 and crtend.o.
6899 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
6900 jump sequence for ISA A and ISA A+.
6901 (PICJUMP): Likewise.
6902
6903 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6904
6905 * config.gcc (m68k-*-uclinux*): Base the port on the common
6906 and m68k GNU/Linux files rather than on the generic ELF ones.
6907 * config/m68k/uclinux.h (TARGET_VERSION): Override.
6908 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
6909
6910 2007-01-18 Julian Brown <julian@codesourcery.com>
6911 Richard Sandiford <richard@codesourcery.com>
6912
6913 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
6914 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
6915 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
6916 before redefining.
6917 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
6918 80 unconditionally.
6919 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
6920
6921 2007-01-18 Richard Sandiford <richard@codesourcery.com>
6922
6923 * doc/install.texi: Document m68k-uclinuxoldabi.
6924 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
6925 * config/m68k/uclinux-oldabi.h: New file, copied from
6926 config/m68k/uclinux.h.
6927
6928 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6929
6930 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
6931 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
6932 (m32r_compute_frame_size): Use unsigned for regno.
6933 (m32r_reload_lr): Use gen_frame_mem.
6934 (pop): New.
6935 (m32r_output_function_epilogue): Don't output the function epilogue
6936 textually here.
6937 (m32r_expand_epilogue): New.
6938 (direct_return): Return false if the function has the interrupt
6939 attribute.
6940 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
6941 * config/m32r/m32r.md (epilogue): New expander.
6942 (return_lr, return_rte): New insns.
6943 (return): Make it expander.
6944 (return_normal): New expander.
6945
6946 2007-01-18 Josh Conner <jconner@apple.com>
6947
6948 PR target/30485
6949 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
6950 support for UNLE, UNLT, UNGE, and UNGT.
6951
6952 2007-01-18 Jan Hubicka <jh@suse.cz>
6953
6954 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
6955 * tree-tailcall (add_virtual_phis): Likewise.
6956 (optimize_tail_call): Return TODOs.
6957 (execute_tail_calls): Return TODOs.
6958 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
6959 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
6960 changed.
6961 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
6962 Cleanup cfg using TODO.
6963 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
6964 * passes.c (execute_function_todo): When cleanup did something, remove
6965 unused locals.
6966 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
6967 (make_edges): Don't cleanup_cfg.
6968
6969 2007-01-18 Uros Bizjak <ubizjak@gmail.com>
6970
6971 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
6972 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
6973 operate on the top of stack.
6974 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
6975 register handling of instructions that output to the second
6976 stack slot.
6977 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
6978 (move_for_stack_reg): Special-case check for dead destination
6979 stack slot for constant load of 1.0 inside UNSPEC_TAN.
6980
6981 * config/i386/i386.md (UNSPEC_TAN): New constant.
6982 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
6983 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
6984 to correctly model move of constant 1.0 to top stack slot.
6985 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
6986 (unnamed peephole2 pattern): Remove corresponding peephole2
6987 pattern that optimizes tan insn and loading of constant 1.0.
6988 (tanxf2): Use fptanxf4_i387.
6989 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
6990 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
6991 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
6992 disable patterns for SSE math.
6993 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
6994 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
6995
6996 2007-01-18 Dirk Mueller <dmueller@suse.de>
6997 Richard Guenther <rguenther@suse.de>
6998
6999 PR diagnostic/8268
7000 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
7001 * common.opt (Warray-bounds): Add new warning option.
7002 * c-opts.c (c_common_handle_option): Define -Warray-bounds
7003 if -Wall is given.
7004 * Makefile.in: make tree-vrp.o depend on toplev.h
7005 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
7006 is enabled.
7007 (check_array_refs, check_array_bounds, check_array_ref): New.
7008
7009 2007-01-18 Jan Hubicka <jh@suse.cz>
7010
7011 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
7012 (execute_ssa_ccp): Return flags conditionally.
7013 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
7014 changed.
7015 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
7016
7017 2007-01-18 Steven Bosscher <steven@gcc.gnu.org>
7018
7019 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
7020 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
7021
7022 * Makefile.c (GTFILES): Add cfglayout.h.
7023 * gengtype.c (open_base_files): Likewise.
7024 * cfglayout.c (cfg_layout_function_footer,
7025 cfg_layout_function_header) Reindent to make gengtype happy.
7026 * cfglayout.h (cfg_layout_function_footer,
7027 cfg_layout_function_header): Add GTY(()) marker.
7028
7029 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
7030
7031 2007-01-18 Ben Elliston <bje@au.ibm.com>
7032
7033 * genautomata.c (write_automata): Include xstrerror output in the
7034 error message if writing the DFA description file fails.
7035
7036 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
7037
7038 * config/mips/mips-protos.h (mips_output_external): Make it
7039 return void.
7040 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
7041 * config/mips/mips.c (irix_output_external_libcall): Likewise.
7042 (extern_list): Likewise.
7043 (extern_head): Likewise.
7044 (TARGET_ASM_FILE_END): Likewise.
7045 (mips_file_end): Likewise.
7046 (mips_output_external): Rewritten.
7047
7048 2007-01-18 Ben Elliston <bje@au.ibm.com>
7049
7050 * genpreds.c (write_insn_preds_c): Only write out the function
7051 body for regclass_for_constraint if we have register constraints.
7052
7053 2007-01-17 Tom Tromey <tromey@redhat.com>
7054
7055 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
7056 * doc/install.texi (Testing): Use sourceware.org.
7057 (Binaries): Likewise.
7058 (Specific): Likewise.
7059 * doc/contrib.texi (Contributors): Use sourceware.org.
7060
7061 2007-01-17 Anatoly Sokolov <aesok@post.ru>
7062
7063 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
7064 (AVR_ENHANCED): Rename to ...
7065 (AVR_HAVE_MUL): ... new.
7066 (avr_enhanced_p): Rename to ...
7067 (avr_have_mul_p): ... new.
7068 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
7069 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
7070 * config/avr/avr.c (avr_enhanced_p): Rename to ...
7071 (avr_have_mul_p): ... new.
7072 (base_arch_s): Rename 'enhanced' to 'have_mul'.
7073 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
7074 'avr_enhanced_p' and 'enhanced'.
7075 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
7076 AVR_HAVE_MUL instead of AVR_ENHANCED.
7077 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
7078 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
7079 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
7080 instead of AVR_ENHANCED.
7081 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
7082 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
7083 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
7084
7085 2007-01-17 Ian Lance Taylor <iant@google.com>
7086
7087 * vec.h (VEC_reserve_exact): Define.
7088 (vec_gc_p_reserve_exact): Declare.
7089 (vec_gc_o_reserve_exact): Declare.
7090 (vec_heap_p_reserve_exact): Declare.
7091 (vec_heap_o_reserve_exact): Declare.
7092 (VEC_OP (T,A,reserve_exact)): New static inline function, three
7093 versions.
7094 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
7095 negative parameter.
7096 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
7097 (VEC_OP (T,A,copy)) [all versions]: Likewise.
7098 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
7099 * vec.c (calculate_allocation): Add exact parameter. Change all
7100 callers.
7101 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
7102 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
7103 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
7104 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
7105 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
7106 (vec_heap_p_reserve_exact): New function.
7107 (vec_heap_o_reserve_exact): New function.
7108
7109 2007-01-17 Jan Hubicka <jh@suse.cz>
7110
7111 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
7112
7113 2007-01-17 Eric Christopher <echristo@apple.com>
7114
7115 * config.gcc: Support core2 processor.
7116
7117 2007-01-16 Jan Hubicka <jh@suse.cz>
7118
7119 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
7120 the names, just unlink the chain so we don't crash on dangling pointers
7121 to dead SSA names.
7122
7123 2007-01-16 Jan Hubicka <jh@suse.cz>
7124
7125 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
7126 * tree-pass.h: Reorder to make IPA passes appear toegher.
7127 (pass_early_inline, pass_inline_parameters, pass_apply_inline): Declare.
7128 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
7129 parameters, do not call early inliner.
7130 * ipa-inline.c: Update comments. Include tree-flow.h
7131 (cgraph_decide_inlining): Do not compute inlining parameters.
7132 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
7133 be called with function context set up.
7134 (pass_ipa_inline): Remove unreachable functions before pass.
7135 (cgraph_early_inlining): Simplify assuming to be called from the
7136 PM as local pass.
7137 (pass_early_inline): New pass.
7138 (cgraph_gate_ipa_early_inlining): New gate.
7139 (pass_ipa_early_inline): Turn into simple wrapper.
7140 (compute_inline_parameters): New function.
7141 (gate_inline_passes): New gate.
7142 (pass_inline_parameters): New pass.
7143 (apply_inline): Move here from tree-optimize.c
7144 (pass_apply_inline): New pass.
7145 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
7146 transforming.
7147 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
7148 doing them by hand.
7149 (tree_function_versioning): Do not allocate dummy struct function.
7150 * tree-inline.h (optimize_inline_calls): Update prototype.
7151 * tree-optimize.c (execute_fixup_cfg): Export.
7152 (pass_fixup_cfg): Remove
7153 (tree_rest_of_compilation): Do not apply inlines.
7154 * tree-flow.h (execute_fixup_cfg): Declare.
7155 * Makefile.in (gt-passes.c): New.
7156 * passes.c: Include gt-passes.h
7157 (init_optimization_passes): New passes.
7158 (nnodes, order): New static vars.
7159 (do_per_function_toporder): New function.
7160 (execute_one_pass): Dump current pass here.
7161 (execute_ipa_pass_list): Don't dump current pass here.
7162
7163 2007-01-16 Janis Johnson <janis187@us.ibm.com>
7164
7165 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
7166 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
7167
7168 2007-01-16 David Edelsohn <edelsohn@gnu.org>
7169
7170 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
7171 (strong_alias): Define.
7172 (__gcc_qmul): Provide non-FMA for soft-float.
7173 (__gcc_qdiv): Same.
7174 (__gcc_qneg): New.
7175 (__gcc_qeq): New.
7176 (__gcc_qle): New.
7177 (__gcc_qge): New.
7178 (__gcc_qunord): New.
7179 (__gcc_stoq): New.
7180 (__gcc_dtoq): New.
7181 (__gcc_qtos): New.
7182 (__gcc_qtod): New.
7183 (__gcc_qtoi): New.
7184 (__gcc_qtou): New.
7185 (__gcc_itoq): New.
7186 (__gcc_utoq): New.
7187 (fmsub): New.
7188 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
7189 soft-float functions.
7190 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
7191 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
7192 about long double soft float.
7193
7194 2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
7195 Tehila Meyzels <tehila@il.ibm.com>
7196
7197 * tree-vectorizer.h (is_pattern_stmt_p): New.
7198 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
7199 formatting (tabs instead of spaces). Cleanup and clarify setting
7200 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
7201 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
7202 (vectorizable_type_demotion): Check that types are integral.
7203 (vectorizable_type_promotion): Likewise.
7204 (vectorizable_store): Fix typo. Eliminate new-line at end of
7205 comments.
7206
7207 2007-01-16 Jan Hubicka <jh@suse.cz>
7208
7209 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
7210 cgraph edges too.
7211
7212 2007-01-15 Eric Christopher <echristo@apple.com>
7213
7214 * ifcvt.c: Include vec.h, vecprim.h.
7215 (check_cond_move_block): New argument regs.
7216 Reorganize. Add registers used to regs.
7217 (cond_move_process_if_block): Use regs set above as
7218 loop bounds.
7219
7220 2007-01-15 Eric Christopher <echristo@apple.com>
7221
7222 * config/darwin.h: Update copyright.
7223 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
7224 (LINK_COMMAND_SPEC): Add -u.
7225 (LINK_SPEC): Fix umbrella for above.
7226
7227 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
7228
7229 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
7230 glibc CVS.
7231
7232 2007-01-15 Tom Tromey <tromey@redhat.com>
7233
7234 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
7235 * doc/install.texi (Testing): Don't mention jacks.
7236 (Configuration): Document --enable-java-maintainer-mode. Move
7237 --with-java-home to libgcj-specific section. Document
7238 --with-ecj-jar.
7239 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
7240
7241 2007-01-15 Jan Hubicka <jh@suse.cz>
7242
7243 * tree-ssa-dce.c (DCE_TODOs): New.
7244 (propagate_necessity): Return if something changed.
7245 (eliminate_unnecessary_stmts): Likewise.
7246 (perform_tree_ssa_dce): Return TODO flags when needed.
7247 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
7248
7249 2007-01-15 Uros Bizjak <ubizjak@gmail.com>
7250
7251 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
7252 (fyl2x_extend<mode>xf3_i387): New insn pattern.
7253 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
7254 patterns using X87MODEF12 mode macro. Extend operand 1
7255 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
7256 (log10<mode>2): Ditto.
7257 (log2<mode>2): Ditto.
7258 (log1p<mode>2): Ditto.
7259 (logb<mode>2): Ditto.
7260 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
7261 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
7262 (*fxtractxf3_i387): Rename from *fxtractxf3.
7263 (fxtract_extend<mode>xf3_i387): New insn pattern.
7264 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
7265 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
7266 and gen_fyl2xxf3_i387().
7267
7268 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
7269
7270 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
7271 * cfgloopmanip.c (fix_loop_placement): Made static. Use
7272 get_loop_exit_edges. Changed return type to bool.
7273 * cfgloop.h (fix_loop_placement): Declaration removed.
7274
7275 2007-01-14 Dorit Nuzman <dorit@il.ibm.com>
7276
7277 * param.h (MIN_VECT_LOOP_BOUND): New.
7278 * params.def (MIN_VECT_LOOP_BOUND): New.
7279 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
7280 argument - minimum threshold for number of iterations.
7281 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
7282 argument to declaration.
7283 * tree-vect-analyze.c (vect_analyze_operations): Check value of
7284 MIN_VECT_LOOP_BOUND.
7285 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
7286 slpeel_tree_peel_loop_to_edge with additional argument.
7287 (vect_do_peeling_for_alignment): Likewise.
7288 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
7289
7290 2007-01-14 Uros Bizjak <ubizjak@gmail.com>
7291
7292 PR target/30413
7293 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
7294 operands of size 1.
7295
7296 2007-01-14 Jan Hubicka <jh@suse.cz>
7297
7298 * tree-dfa.c (remove_referenced_var): New function.
7299 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
7300 prune referenced vars list too.
7301 * tree-flow.h (remove_referenced_var): Declare.
7302
7303 2007-01-14 Jan Hubicka <jh@suse.cz>
7304
7305 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
7306 separately.
7307 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
7308 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
7309 * except.h (verify_eh_throw_table_statements): Kill prototype.
7310 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
7311 into call exrepssions.
7312 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
7313 eh trhow verifier.
7314 * tree-cfg.c: Include pointer-set.h.
7315 (verify_node_sharing): Work on pointer set.
7316 (verify_eh_throw_stmt_node): New.
7317 (verify_stmts): Use pointers sets, verify throw_stmt.
7318
7319 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
7320
7321 * ipa-reference.c (analyze_function): Consider also addresses taken
7322 in phi nodes.
7323
7324 2007-01-12 Roger Sayle <roger@eyesopen.com>
7325
7326 * c-typeck.c (null_pointer_constant_p): Replace use of
7327 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
7328 (build_c_cast): Likewise.
7329
7330 2007-01-12 Roger Sayle <roger@eyesopen.com>
7331
7332 * tree.h (force_fit_type_double): Remove unused final argument.
7333 * c-common.c (constant_expression_warning): Replace use of
7334 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
7335 (convert_and_check): Likewise.
7336 (shorten_compare): Update call to force_fit_type_double.
7337 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
7338 * convert.c (convert_to_pointer): Update call to
7339 force_fit_type_double.
7340 * fold-const.c (force_fit_type_double): Remove overflowed_const
7341 argument.
7342 (int_const_binop, fold_convert_const_int_from_int,
7343 fold_convert_const_int_from_real, fold_div_compare,
7344 fold_sign_changed_comparison, fold_unary, fold_negate_const,
7345 fold_abs_const, fold_not_const): Remove the final argument from
7346 calls to force_fit_type_double.
7347
7348 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
7349
7350 * configure.ac: Set insn to "nop" for spu-*-* also.
7351 * configure: Regenerate.
7352
7353 2007-01-12 Olga Golovanevsky <olga@il.ibm.com>
7354
7355 * builtins.def : Add BUILT_IN_FREE.
7356
7357 2007-01-12 Jan Hubicka <jh@suse.cz>
7358
7359 PR tree-optimization/30443
7360 * tree-inline.c (tree_function_versioning): Do not optimize when
7361 cloning for inlining.
7362
7363 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
7364
7365 * doc/loop.texi: Document recording of loop exits.
7366 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
7367 (update_single_exits_after_duplication,
7368 update_single_exit_for_duplicated_loop,
7369 update_single_exit_for_duplicated_loops): Removed.
7370 (duplicate_loop_to_header_edge): Do not call
7371 update_single_exits_after_duplication and
7372 update_single_exit_for_duplicated_loops.
7373 (loop_version): Do not update single_exit information.
7374 (fix_loop_structure): Use record_loop_exits instead of
7375 mark_single_exit_loops.
7376 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
7377 the lists of loop exits.
7378 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
7379 split_edge, merge_blocks): Update the lists of loop exits.
7380 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
7381 loop_optimizer_init.
7382 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
7383 of mark_single_exit_loops.
7384 (loop_optimizer_finalize): Call release_recorded_exits.
7385 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
7386 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
7387 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
7388 update single exit information.
7389 * lambda-code.c (perfect_nestify): Ditto.
7390 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
7391 (mark_single_exit_loops): Removed.
7392 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
7393 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
7394 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
7395 functions.
7396 (get_loop_exit_edges, single_exit): Use recorded exit lists.
7397 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
7398 (verify_loop_structure): Verify consistency of the exit lists.
7399 (flow_loops_find): Use alloc_loop. Initialize exits hash.
7400 (set_single_exit): Removed.
7401 * cfgloop.h (struct loop_exit): New function.
7402 (struct loop): single_exit_ field replaced by exits field.
7403 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
7404 (struct loops): Added exits hash.
7405 (mark_single_exit_loops, set_single_exit): Declaration removed.
7406 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
7407
7408 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7409
7410 * doc/invoke.texi: Avoid use of @headitem.
7411
7412 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7413
7414 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
7415
7416 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7417
7418 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
7419 list of targets.
7420
7421 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
7422 Richard Sandiford <richard@codesourcery.com>
7423
7424 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
7425 * config/m68k/m68k.opt: Resort options.
7426 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
7427
7428 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
7429 Richard Sandiford <richard@codesourcery.com>
7430
7431 * doc/invoke.texi: Document the macros that are defined by
7432 m68k's -mtune and -mhard-float options.
7433 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
7434 (m68k_cpp_cpu_family): Likewise.
7435 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
7436 of __ucfv*__ macros. Define __mcffpu__ if generating code for
7437 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
7438 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
7439 (m68k_cpp_cpu_family): Likewise.
7440
7441 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7442
7443 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
7444 macros besides mc68000 as tuning macros. Use a switch statement
7445 to set them and mcpu32.
7446
7447 2007-01-12 Julian Brown <julian@codesourcery.com>
7448
7449 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
7450 (TARGET_68040_ONLY): Rename to...
7451 (TARGET_68040): ...this.
7452 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
7453 * config/m68k/m68k.md: Likewise.
7454
7455 2007-01-12 Julian Brown <julian@codesourcery.com>
7456 Nathan Sidwell <nathan@codesourcery.com>
7457 Richard Sandiford <richard@codesourcery.com>
7458
7459 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
7460 the -mcpu= argument associated with the --with-cpu setting.
7461 Define M68K_DEFAULT_TUNE to the default -mtune= option,
7462 if different from the one implied by the -mcpu setting.
7463 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
7464 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
7465 * doc/invoke.texi: Mention ColdFire in the introduction to the
7466 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
7467 -mno-div and -mhard-float options. Make -m68881 a synonym for
7468 -mhard-float. Document the previously-undocumented -m5206e,
7469 -m528x, -m5307 and -m5407 options. Tweak the existing option
7470 documentation for consistency.
7471 * doc/install.texi: Mention new --with-cpu arguments.
7472 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
7473 default CPU if neither -mcpu nor -march are specified.
7474 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
7475 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
7476 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
7477 using m68k_tune to decide between families that implement the
7478 same ISA. Use m68k_tune to set __mcfv4e__.
7479 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
7480 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
7481 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
7482 (FL_ISA_C, FL_ISA_MMU): New macros.
7483 (MASK_COLDFIRE): Delete.
7484 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
7485 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
7486 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
7487 (TARGET_HARD_FLOAT): Do not define here.
7488 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
7489 (TUNE_68000): New macro.
7490 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
7491 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
7492 (TUNE_CFV2): Redefine in terms of m68k_tune.
7493 (uarch_type, target_device, fpu_type): New enums.
7494 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
7495 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
7496 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
7497 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
7498 (FL_FOR_isa_c): New macros.
7499 (m68k_isa): New enum.
7500 (m68k_target_selection): New structure.
7501 (all_devices, all_isas, all_microarchs): New tables.
7502 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
7503 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
7504 (MASK_ALL_CPU_BITS): Delete.
7505 (m68k_find_selection): New function.
7506 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
7507 Map the legacy target options to a combination of the new ones.
7508 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
7509 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
7510 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
7511 settings.
7512 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
7513 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
7514 properties.
7515 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
7516 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
7517 * config/m68k/m68k-devices.def: New file.
7518
7519 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7520 Nathan Sidwell <nathan@codesourcery.com>
7521
7522 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
7523 (SUBTARGET_EXTRA_SPECS): New macros.
7524 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
7525 use %(asm_cpu_spec) instead.
7526 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
7527 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
7528 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
7529 (EXTRA_SPECS): Rename to...
7530 (SUBTARGET_EXTRA_SPECS): ...this.
7531
7532 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
7533 Richard Sandiford <richard@codesourcery.com>
7534 Julian Brown <julian@codesourcery.com>
7535
7536 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
7537 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
7538 to the configuration's default CPU.
7539 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
7540 Remove default masks.
7541 (m680[012]0-*-*): Set the default with_cpu to the first part of
7542 the target name.
7543 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
7544 (m68k*-*-linux): Extend the --with-cpu handling to...
7545 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
7546 and m68010. Don't set target_cpu_default2.
7547 * doc/install.texi: Document --with-cpu for m68k.
7548 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
7549 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
7550 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
7551 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
7552 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
7553 (ASM_SPEC): Remove use of %(asm_cpu_default).
7554 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
7555 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
7556 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
7557 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
7558 __HAVE_FPU__ if TARGET_HARD_FLOAT.
7559 (TARGET_DEFAULT): Delete.
7560 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
7561 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
7562 (CPP_CPU_SPEC): Delete.
7563 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
7564 the appropriate string.
7565 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
7566 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
7567 (ASM_SPEC): Don't use %(asm_default_spec).
7568 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
7569 TARGET_DEFAULT and add MASK_68881.
7570 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
7571
7572 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7573
7574 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
7575 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
7576 MASK_68010 alongside MASK_68020.
7577 * doc/invoke.texi: Document -m68010.
7578 * config/m68k/m68k.opt (m68010): New.
7579 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
7580 if TUNE_68010.
7581 (TUNE_68010): New macro.
7582 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
7583 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
7584 (M68K_CPU_m68332): Add MASK_68010.
7585 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
7586 fallback definition.
7587 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
7588 defines.
7589 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
7590 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
7591 to all entries that use MASK_68020.
7592 (output_move_simode_const, output_move_himode, output_move_qimode)
7593 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
7594 instead of TARGET_68020 to select clr behavior. Remove comment
7595 about there being no TARGET_68010.
7596 * config/m68k/m68k.md: Likewise throughout.
7597
7598 2007-01-12 Julian Brown <julian@codesourcery.com>
7599
7600 * config/m68k/m68k.h (TARGET_ISAB): New macro.
7601 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
7602 * config/m68k/m68k.md: Likewise.
7603
7604 2007-01-12 Julian Brown <julian@codesourcery.com>
7605
7606 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
7607 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
7608
7609 2007-01-12 Julian Brown <julian@codesourcery.com>
7610
7611 * config/m68k/m68k.h (TUNE_68040_60): New macro.
7612 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
7613 * config/m68k/m68k.md: Likewise.
7614
7615 2007-01-12 Julian Brown <julian@codesourcery.com>
7616 Richard Sandiford <richard@codesourcery.com>
7617
7618 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
7619 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
7620 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
7621 TARGET_CPU32.
7622 (TARGET_CPU32): Rename to...
7623 (TUNE_CPU32): ...this.
7624 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
7625 (TUNE_CFV2): New macros.
7626 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
7627 remove conditions that are implied by TARGET_68020.
7628 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
7629 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
7630 (m68k_output_function_epilogue): Likewise.
7631 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
7632 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
7633 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
7634 non-68000 timings. Refactor multiplication and division costs.
7635 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
7636 TUNE_CPU32 instead of TARGET_CPU32.
7637 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
7638 and TUNE_68060 instead of TARGET_68060.
7639 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
7640 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
7641 TARGET_CPU32.
7642 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
7643 && !TARGET_COLDFIRE" to choose between moveq and clr.
7644 Likewise in the unnamed movsf pattern.
7645 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
7646 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
7647 ashiftrt pattern.
7648
7649 2007-01-12 Richard Sandiford <richard@codesourcery.com>
7650
7651 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
7652 of tabbing before backslashes.
7653
7654 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7655
7656 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
7657 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
7658 (ASM_OUTPUT_INTERNAL_LABEL): Define.
7659
7660 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
7661
7662 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
7663 find_interesting_uses_cond.
7664 (find_interesting_uses_cond): Use extract_cond_operands.
7665 (rewrite_use_compare): Use extract_cond_operands and
7666 force_gimple_operand_bsi. Do not call update_stmt.
7667 (determine_use_iv_cost_condition): Use extract_cond_operands.
7668 Return cheaper of using original bound and changing the exit bound.
7669
7670 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
7671
7672 PR tree-optimization/29516
7673 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
7674 most_expensive_mult_to_index, addr_to_parts,
7675 create_mem_ref, maybe_fold_tmr): Make the type of
7676 fields of TARGET_MEM_REF sizetype.
7677 (move_fixed_address_to_symbol, move_pointer_to_base):
7678 New functions.
7679 * tree.def (TARGET_MEM_REF): Add comment on types of
7680 the operands.
7681
7682 2007-01-11 Joseph Myers <joseph@codesourcery.com>
7683
7684 * c-common.c (vector_types_convertible_p): Treat opaque types as
7685 always convertible if they have the same size, but not otherwise.
7686
7687 2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
7688
7689 * ifcvt.c (struct noce_if_info): Add comments to the fields.
7690 Remove the b_unconditional field.
7691 (noce_try_sign_mask): Do not look at b_unconditional.
7692 (noce_process_if_block): Do not use merge_if_blocks. Update
7693 the CFG here. Do not set b_unconditional.
7694 (cond_move_process_if_block): Likewise.
7695 (find_cond_trap): Likewise.
7696 (check_cond_move_block): Require simple jump insns at the end
7697 of the basic block.
7698
7699 2007-01-11 Jan Hubicka <jh@suse.cz>
7700
7701 PR tree-optimization/1046
7702 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
7703 when alias info is not ready.
7704 (pass_tail_recursion): Do not require aliasing.
7705 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
7706 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
7707 * tree-ssa-copy.c (pass_copy_prop): Likewise.
7708 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
7709 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
7710 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
7711 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
7712 before inlining.
7713 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
7714 When aliasing is not build, mark statement as volatile.
7715
7716 2007-01-11 Tom Tromey <tromey@redhat.com>
7717
7718 PR preprocessor/15185, PR preprocessor/20989:
7719 * doc/cppopts.texi <-MT>: Update description of algorithm for
7720 computing default target.
7721 <-M, -MD>: Reword "basename" text.
7722
7723 2007-01-11 Roger Sayle <roger@eyesopen.com>
7724
7725 * builtins.c (expand_builtin_pow, expand_builtin_powi,
7726 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
7727 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
7728 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
7729 fold_builtin_bswap, real_constp, fold_builtin_pow,
7730 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
7731 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
7732 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
7733 * convert.c (convert_to_pointer): Likewise.
7734 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
7735 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
7736 const_binop, fold_convert_const_int_from_int,
7737 fold_convert_const_int_from_real,
7738 fold_convert_const_real_from_real, sign_bit_p,
7739 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
7740 fold_sign_changed_comparison, fold_unary, fold_comparison,
7741 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
7742 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
7743 * print-tree.c (print_node_brief, print_node): Likewise.
7744 * stor-layout.c (place_field, layout_type): Likewise.
7745 * tree-chrec.c (keep_cast): Likewise.
7746 * tree.c (build_vector, build_real, build_real_from_int_cst,
7747 build_complex): Likewise.
7748
7749 2007-01-11 Roger Sayle <roger@eyesopen.com>
7750
7751 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
7752 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
7753
7754 2007-01-11 Paolo Bonzini <bonzini@gnu.org>
7755
7756 * configure.ac (strict1_warn): Rename to strict_warn.
7757 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
7758 cc_set_by_configure, quoted_cc_set_by_configure,
7759 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
7760 all_boot_languages, all_stagestuff): Remove.
7761 (target_list): Remove bootstrap targets.
7762 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
7763 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
7764 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
7765 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
7766 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
7767 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
7768 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
7769 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
7770 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
7771 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
7772 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
7773 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
7774 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
7775 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
7776 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
7777 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
7778 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
7779 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
7780 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
7781 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
7782 (mostlyclean): Adjust.
7783 (clean, distclean): Don't mention bootstrap stuff.
7784 * configure: Regenerate.
7785 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
7786 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
7787 treelang/config-lang.in (stagestuff): Remove.
7788 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
7789 stageprofile, stagefeedback, stagestuff): Remove mention.
7790
7791 2007-01-11 Nick Clifton <nickc@redhat.com>
7792
7793 * config/mcore/predicates.md (mcore_general_movesrc_operand):
7794 Accept CONSTs.
7795 (mcore_general_movdst_operand): Do not accept CONST_INTs.
7796 (mcore_arith_K_S_operand): Run the test for the S constraint not
7797 the test for the M constraint.
7798 (mcore_addsub_operand): Do not accept integer values that are
7799 larger than 32 bits.
7800 * config/mcore/mcore.md: Remove unused constraints from split.
7801 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
7802 (addsi3): Likewise.
7803 (allocate_stack): Likewise.
7804 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
7805 operands to 32 bits.
7806 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
7807 INTVAL.
7808 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
7809 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
7810 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
7811 mcore_output_bclri, mcore_output_andn, output_inline_const,
7812 mcore_output_move, mcore_output_movedouble): Likewise.
7813 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
7814 (output_inline_const): Likewise.
7815 (output_inline_const): Fix format strings used in sprintf
7816 statements.
7817 * config/mcore/mcore-protos.h: Update prototypes for changed
7818 functions in mcore.c.
7819 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
7820 HOST_WIDE_INT and not int.
7821 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
7822 CONST_OK_FOR_N): Likewise.
7823 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
7824 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
7825 an INTVAL.
7826
7827 2007-01-10 Jan Hubicka <jh@suse.cz>
7828
7829 * tree-vrp.c (remove_range_assertions): Release defs.
7830 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
7831 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
7832
7833 2007-01-10 Paul Brook <paul@codesourcery.com>
7834
7835 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
7836 * config/arm/arm.md (mulsi3subsi): New insn.
7837
7838 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
7839
7840 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
7841 (tree_transform_and_unroll_loop): New.
7842 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
7843 Declare.
7844
7845 2007-01-10 Robert Kennedy <jimbob@google.com>
7846
7847 * fold-const.c (fold_comparison): Fold comparisons like (x *
7848 1000 < 0) to (x < 0).
7849
7850 2007-01-10 Ian Lance Taylor <iant@google.com>
7851
7852 * tree-pretty-print.c (dump_generic_node): Print parentheses when
7853 operands have the same priority.
7854
7855 2007-01-10 Tom Tromey <tromey@redhat.com>
7856
7857 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
7858 (fold_binary): Likewise.
7859 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
7860 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
7861 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
7862 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
7863 * langhooks.h (struct lang_hooks): Removed field
7864 'can_use_bit_fields_p'.
7865
7866 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
7867
7868 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
7869
7870 2007-01-10 Razya Ladelsky <razya@il.ibm.com>
7871
7872 * function.c (get_last_funcdef_no): New function.
7873 * function.h (get_last_funcdef_no): Declare.
7874 * tree-inline.c (initialize_cfun): Add initialization.
7875 (tree_function_versioning): Cleanup.
7876
7877 2007-01-10 Jan Hubicka <jh@suse.cz>
7878
7879 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
7880 PHIs.
7881
7882 2007-01-10 Sa Liu <saliu@de.ibm.com>
7883 Ben Elliston <bje@au.ibm.com>
7884
7885 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
7886 for SAVE_NONLOCAL and Pmode for any other save level.
7887 * spu-protos.h (spu_restore_stack_block): Declare.
7888 * spu.md (save_stack_block): Remove.
7889 (restore_stack_block): Call spu_restore_stack_block.
7890 * spu.c (spu_restore_stack_block): New function.
7891 (spu_expand_epilogue): Remove old comment.
7892
7893 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
7894
7895 PR tree-optimization/30322
7896 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
7897 (cand_value_at): Return the value as aff_tree.
7898 (may_eliminate_iv): Convert the bound from aff_tree to tree.
7899 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
7900 aff_combination_mult): New functions.
7901 (aff_combination_add): Use aff_combination_add_cst.
7902 (aff_combination_convert): Allow conversions to a wider type.
7903 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
7904 * tree-affine.h (aff_combination_mult): Declare.
7905
7906 2007-01-09 Carlos O'Donell <carlos@codesourcery.com>
7907
7908 * doc/tm.texi: Update documentation to reflect reality of exec
7909 and start file search behaviours. Update copyright year.
7910 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
7911 header file directories.
7912
7913 2007-01-09 Uros Bizjak <ubizjak@gmail.com>
7914
7915 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
7916 (*cosxf2): Rename to cosxf2_i387.
7917 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
7918 using X87MODEF12 mode macro. Rename patterns to
7919 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
7920 for SSE math.
7921 (*cosdf2, *cossf2): Ditto.
7922 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
7923 to match extended input operands.
7924 (sincos<mode>3): New expander.
7925 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
7926 insn patterns and corresponding splitters.
7927
7928 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
7929
7930 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
7931 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
7932
7933 2007-01-09 Nicolas Pitre <nico@cam.org>
7934
7935 PR target/30173
7936 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
7937
7938 2007-01-08 Geoffrey Keating <geoffk@apple.com>
7939
7940 * target.h (struct gcc_target): New field library_rtti_comdat.
7941 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
7942 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
7943 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
7944 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
7945
7946 2007-01-08 Geoffrey Keating <geoffk@apple.com>
7947
7948 * doc/invoke.texi (Optimize Options): Correct description of -O0.
7949
7950 2007-01-08 Richard Guenther <rguenther@suse.de>
7951
7952 * tree.h (force_fit_type_double): Export.
7953 (force_fit_type): Remove.
7954 * fold-const.c (force_fit_type_double): New function.
7955 (force_fit_type): Remove.
7956 (int_const_binop): Use it.
7957 (fold_convert_const_int_from_int): Likewise.
7958 (fold_convert_const_int_from_real): Likewise.
7959 (fold_div_compare): Likewise.
7960 (fold_sign_changed_comparison): Likewise.
7961 (fold_unary): Likewise.
7962 (fold_negate_const): Likewise.
7963 (fold_abs_const): Likewise.
7964 (fold_not_const): Likewise.
7965 * c-common.c (shorten_compare): Use force_fit_type_double.
7966 * convert.c (convert_to_pointer): Likewise.
7967
7968 2007-01-08 Richard Guenther <rguenther@suse.de>
7969
7970 * tree.h (build_int_cst_wide_type): Export.
7971 * tree.c (build_int_cst_wide_type): New function.
7972 (build_int_cst_wide): Fix comment.
7973 * builtins.c (fold_builtin_object_size): Use build_int_cst
7974 to build -1 or 0 of the correct type. Use fit_double_type
7975 to check for overflow.
7976 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
7977 to build the mask.
7978 (decode_field_reference): Likewise.
7979 (all_ones_mask_p): Likewise.
7980 (native_interpret_int): Use build_int_cst_wide_type.
7981 (fold_binary): Use build_int_cst_type to build an all-ones
7982 value.
7983 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
7984
7985 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
7986
7987 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
7988
7989 2007-01-09 Ben Elliston <bje@au.ibm.com>
7990
7991 * genautomata.c (STATS_OPTION): New option.
7992 (stats_flag): New flag.
7993 (gen_automata_option): Handle it.
7994 (initiate_automaton_gen): Ditto.
7995 (write_automata): Output statistics only if stats_flag is
7996 set. Likewise, output time statistics only if time_flag is set.
7997 * doc/md.texi (Processor pipeline description): Document new flag.
7998
7999 2007-01-08 Richard Guenther <rguenther@suse.de>
8000
8001 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
8002 * tree.c (build_int_cst_type): Likewise.
8003 (size_in_bytes): Don't call force_fit_type on the result.
8004 (int_fits_type_p): Use fit_double_type.
8005 * fold-const.c (fit_double_type): New function.
8006 (force_fit_type): Use it.
8007 * tree.h (fit_double_type): Export.
8008
8009 2007-01-08 Jan Hubicka <jh@suse.cz>
8010
8011 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
8012 * ipa.c (function_and_variable_visibility): Fix return type.
8013
8014 2007-01-08 Richard Guenther <rguenther@suse.de>
8015
8016 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
8017 of offset to build the index.
8018 * tree-pretty-print.c (dump_generic_node): Don't build negated
8019 const just for printing.
8020 * c-pretty-print.c (pp_c_integer_constant): Likewise.
8021 * builtins.c (fold_builtin_int_roundingfn): Check if result
8022 fits the type by using force_fit_type and comparing the result.
8023 * predict.c (predict_loops): Use compare_tree_int for comparison.
8024 * tree.c (build_int_cst): Fall back to integer_type_node for
8025 NULL_TREE type.
8026 (build_int_cst_wide): Assert type is non-null.
8027
8028 2007-01-08 Roberto Costa <roberto.costa@st.com>
8029
8030 * tree-vrp.c (extract_range_from_cond_expr): New.
8031 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
8032 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
8033 as expressions.
8034 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
8035 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
8036 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
8037 used as expressions.
8038 * tree-object-size.c (cond_expr_object_size): New.
8039 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
8040
8041 2007-01-08 Jan Hubicka <jh@suse.cz>
8042
8043 * tree-ssa-forwprop.c (forward_propagate_into_cond,
8044 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
8045 statement.
8046
8047 2007-01-08 Richard Guenther <rguenther@suse.de>
8048
8049 PR tree-optimization/23603
8050 * tree-vrp.c (set_value_range_to_truthvalue): New function.
8051 (extract_range_from_binary): Fall back to truthvalue instead of
8052 varying for TRUTH_*_EXPR.
8053 (extract_range_from_comparison): Fall back to truthvalue instead of
8054 varying.
8055 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
8056 if all visited PHI values were constant.
8057
8058 2007-01-08 Jan Hubicka <jh@suse.cz>
8059
8060 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
8061 (cgraph_analyze_function): break out from ...
8062 (cgraph_finalize_compilation_unit): ... here.
8063 (cgraph_expand_function): Remove forgoten commented out line.
8064 (cgraph_optimize): Analyze functions.
8065
8066 2007-01-08 Jan Hubicka <jh@suse.cz>
8067
8068 * tree-pas.h (TODO_remove_function): New flag.
8069 (TODO_update*): Renumber.
8070 (pass_ipa_increase_alignment,
8071 pass_ipa_function_and_variable_visibility): New passes.
8072 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
8073 (cgraph_function_and_variable_visibility): Move to ipa.c
8074 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
8075 cgraph_increase_alignment.
8076 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
8077 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
8078 calling tree-inline.
8079 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
8080 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
8081 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
8082 (gate_increase_alignment): New function.
8083 (pass_ipa_increase_alignment): New pass.
8084 * ipa.c: Inline tree-pass.h and timevar.h
8085 (function_and_variable_visibility): Move here from cgraphunit.c
8086 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
8087 * passes.c (init_optimization_passes): Add the two new passes.
8088 (execute_todo): Handle cgraph_remove_functions.
8089
8090 2007-01-08 Nick Clifton <nickc@redhat.com>
8091
8092 * config/frv/predicates.md (reg_or_0_operand): Accept
8093 CONST_DOUBLEs.
8094
8095 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
8096
8097 * config/bfin/rtems.h, config/bfin/t-rtems: New.
8098 * config.gcc: Add bfin*-rtems*.
8099
8100 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
8101
8102 * c.opt: Add -flax-vector-conversions.
8103 * c-typeck.c (convert_for_assignment): Pass flag to
8104 vector_types_convertible_p to allow emission of note.
8105 (digest_init): Likewise.
8106 * c-opts.c: Handle -flax-vector-conversions.
8107 * c-common.c (flag_lax_vector_conversions): New.
8108 (vector_types_convertible_p): Unless -flax-vector conversions
8109 has been passed, disallow conversions between vectors with
8110 differing numbers of subparts and/or element types. If such
8111 a conversion is disallowed, possibly emit a note on the first
8112 occasion only to inform the user of -flax-vector-conversions.
8113 The new last argument specifies this.
8114 * c-common.h (flag_lax_vector_conversions): New.
8115 (vector_types_convertible_p): Add extra argument.
8116 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
8117 char_type_node for V*QI type vectors.
8118 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
8119 Update to satisfy new typechecking rules.
8120 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
8121 C and C++ variants.
8122 * doc/invoke.texi (C Dialect Options): Document
8123 -flax-vector-conversions.
8124
8125 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
8126
8127 PR tree-optimization/29877
8128 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
8129 a register variable on the RHS to not be replaceable.
8130
8131 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
8132 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
8133 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
8134 const_simm15, const_pow2, const_npow2): Added.
8135 * config/score/misc.md (insv, extv, extzv, movmemsi,
8136 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
8137 * config/score/score.c (score_address_cost, score_select_cc_mode):
8138 Added.
8139 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
8140 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
8141 Update score_print_operand.
8142 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
8143 Adjust register allocate order and update some macro define.
8144 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
8145 mdx_block_move_straight, mdx_block_move_loop_head,
8146 mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
8147 mdx_block_move): Added.
8148 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
8149 mdp_limm): Updated and fix some bug and typo.
8150 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
8151 (movsf, movdf, doloop_end): Added.
8152
8153 2007-01-08 Kazu Hirata <kazu@codesourcery.com>
8154
8155 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8156 config/arm/thumb2.md: Fix comment typos.
8157 * doc/extend.texi: Fix a typo.
8158
8159 2007-01-07 Eric Christopher <echristo@apple.com>
8160
8161 * configure.ac: Check for __stack_chk_fail for darwin.
8162 * configure: Regenerate.
8163
8164 2007-01-07 Richard Guenther <rguenther@suse.de>
8165
8166 * tree-vrp.c (extract_range_from_assert): CSE calls to
8167 compare_values where possible.
8168 (extract_range_from_unary_expr): Likewise.
8169
8170 2007-01-07 Anatoly Sokolov <aesok@post.ru>
8171
8172 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
8173 * config/avr/avr.c (call_insn_operand): Delete function.
8174 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
8175 instead of register number. Use predicates.
8176 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
8177 call_insn_operand): Add.
8178
8179 2007-01-06 Jan Hubicka <jh@suse.cz>
8180
8181 * tree-pass.h (pass_build_cgraph_edges): Declare.
8182 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
8183 (visited_nodes): Remove.
8184 (cgraph_create_edges): Move to cgraphbuild.c; rename to
8185 build_cgrpah_edges; make visited_nodes local.
8186 (cgraph_process_new_functions): DO not call initialize_inline_failed.
8187 (record_references_in_initializer): Move to cgraphbuild.c
8188 (initialize_inline_failed, rebuild_cgraph_edges,
8189 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
8190 (verify_cgraph_node): Make visited_nodes local.
8191 (cgraph_analyze_function): Do not call cgraph_create_edges and
8192 initialize_inline_failed.
8193 (cgraph_expand_function): Do not call cgraph_lower_function;
8194 assert that function is already lowered.
8195 * Makefile.in (cgraphbuild.o): New.
8196 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
8197 at the end of lowering passes.
8198
8199 2007-01-06 Steven Bosscher <steven@gcc.gnu.org>
8200
8201 * ifcvt.c (cond_move_convert_if_block): New function, code
8202 factored out from...
8203 (cond_move_process_if_block): ...here. Call the new function
8204 on the THEN and ELSE blocks.
8205 (merge_if_block): Do not copy global_live_at_end, merge_blocks
8206 already takes care of this.
8207
8208 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8209
8210 PR c/19978
8211 * tree.h (TREE_OVERFLOW_P): New.
8212 * c-typeck.c (parser_build_unary_op): Warn only if result
8213 overflowed and operands did not.
8214 (parser_build_binary_op): Likewise.
8215 (convert_for_assignment): Remove redundant overflow_warning.
8216 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
8217
8218 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8219
8220 * c-typeck.c (store_init_value): Split over two lines to follow
8221 the GNU coding style.
8222
8223 2007-01-05 Benjamin Kosnik <bkoz@redhat.com>
8224
8225 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
8226 __GXX_EXPERIMENTAL_CXX0X__.
8227 * doc/cpp.texi: Same.
8228
8229 2007-01-05 Richard Guenther <rguenther@suse.de>
8230
8231 PR middle-end/27826
8232 * tree.c (get_narrower): Do not construct COMPONENT_REFs
8233 with mismatched types. Instead explicitly build a
8234 conversion NOP_EXPR.
8235
8236 2007-01-05 Ian Lance Taylor <iant@google.com>
8237
8238 * c-common.c (decl_with_nonnull_addr_p): New function.
8239 (c_common_truthvalue_conversion): Call it.
8240 * c-typeck.c (build_binary_op): Likewise.
8241 * c-common.h (decl_with_nonnull_addr_p): Declare.
8242
8243 2007-01-05 Jakub Jelinek <jakub@redhat.com>
8244
8245 PR c/30360
8246 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
8247 denom against 0.0.
8248
8249 2007-01-05 Joel Brobecker <brobecker@adacore.com>
8250
8251 * doc/install.texi (Final install): Document the fact that
8252 the GNAT runtime should not be stripped.
8253
8254 2007-01-04 Jan Hubicka <jh@suse.cz>
8255
8256 * tree-inline.c (fold_marked_statements): Update operand caches
8257 and EH after folding
8258
8259 2007-01-04 Ian Lance Taylor <iant@google.com>
8260
8261 * c-common.c (check_function_nonnull): Whitespace fix.
8262
8263 2007-01-04 Jan Hubicka <jh@suse.cz>
8264
8265 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
8266 comitted older version of patch.
8267 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
8268 function, celanup cfg and collect garbage.
8269
8270 2007-01-04 Mike Stump <mrs@apple.com>
8271
8272 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
8273 (clean): Likewise.
8274
8275 2007-01-04 Eric Christopher <echristo@apple.com>
8276
8277 * libgcc2.c (__bswapsi2): Use SItype.
8278 (__bswapdi2): Use DItype.
8279 * libgcc2.h: Update for above.
8280
8281 2007-01-04 Paul Brook <paul@codesourcery.com>
8282
8283 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
8284 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
8285 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
8286 umulsidi3, umulsidi3adddi, smulsi3_highpart,
8287 umulsi3_highpart): Make conditional on !arm_arch6.
8288 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
8289 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
8290 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
8291 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
8292 umulsi3_highpart_v6): New insns.
8293
8294 2007-01-04 Roger Sayle <roger@eyesopen.com>
8295
8296 * fold-const.c (fold_convert): When casting an expression to void,
8297 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
8298 have a type. Instead of attempting to build a NOP_EXPR, return
8299 these "special" trees directly.
8300
8301 2007-01-04 Joseph Myers <joseph@codesourcery.com>
8302
8303 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
8304 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
8305 rs6000_cost->fp not 0 as adjustment for outer NEG.
8306
8307 2007-01-04 Jan Hubicka <jh@suse.cz>
8308
8309 * cgraph.c (cgraph_release_function_body): New function.
8310 (cgraph_remove_node): Use it.
8311 * cgraph.h (cgraph_release_function_body): Declare.
8312 * cgraphunit.c (cgraph_expand_function): Use it.
8313 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
8314 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
8315 is initialized and while compilation of other function is running.
8316 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
8317 statement CFG annotations from here to ...
8318 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
8319
8320 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
8321
8322 * cfgloop.h (enum li_flags): Make the constants powers of two.
8323
8324 2007-01-04 Jan Hubicka <jh@suse.cz>
8325
8326 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
8327 set.
8328 (fold_marked_statements): New function.
8329 (optimize_inline_calls, tree_function_versioning): Fold new statements.
8330 * tree-inline.h (copy_body_data): Add statements_to_fold.
8331
8332 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
8333
8334 * config.gcc: Mention libgcc/config.host.
8335 * Makefile.in: Update comments mentioning libgcc.
8336 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
8337 (all.cross, start.encap, rest.encap, rest.cross): Update
8338 dependencies for libgcc move.
8339 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
8340 (clean-target, clean-target-libgcc): Delete.
8341 (srcdirify, GCC_EXTRA_PARTS): New macros.
8342 (libgcc-support, libgcc.mvars): New rules.
8343 (distclean): Remove mention of mklibgcc.
8344 (install): Don't reference INSTALL_LIBGCC.
8345 (install-common): Don't reference EXTRA_PARTS.
8346 (install-libgcc, install-multilib): Delete rules.
8347 * mklibgcc.in: Delete file.
8348 * doc/configfiles.texi: Don't mention mklibgcc.
8349
8350 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
8351 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
8352 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
8353 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
8354 (mklibgcc, ldblspecs): Likewise.
8355
8356 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
8357 (posixpre.def): Use $(T).
8358 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
8359 (SHLIB_SRC, SHLIB_INSTALL): Delete.
8360 (SHLIB_LINK): Make dummy.
8361 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
8362
8363 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
8364
8365 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
8366 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
8367 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
8368 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
8369
8370 * configure.ac (all_outputs): Remove mklibgcc.
8371 * configure: Regenerated.
8372
8373 2007-01-03 Josh Conner <jconner@apple.com>
8374
8375 PR middle-end/29683
8376 * calls.c (compute_argument_addresses): Set stack and stack_slot
8377 for partial args, too.
8378 (store_one_arg): Use locate.size.constant for the size when
8379 generating a save_area.
8380
8381 2007-01-03 Robert Kennedy <jimbob@google.com>
8382
8383 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
8384 whose definitions are deleted due to basic block merging.
8385
8386 2007-01-03 Paul Brook <paul@codesourcery.com>
8387
8388 PR target/16634
8389 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
8390 functions.
8391 (use_return_insn): Return 0 for Thumb interrupt functions.
8392 (print_multi_reg): Add rfe argument for IRQ returns.
8393 (arm_output_epilogue): Pop interrupt return address directly into PC.
8394 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
8395
8396 2007-01-03 Paul Brook <paul@codesourcery.com>
8397
8398 Merge from sourcerygxx-4_1.
8399 * config/arm/thumb2.md: New file.
8400 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
8401 Thumb-2.
8402 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
8403 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
8404 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
8405 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
8406 tables.
8407 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
8408 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
8409 comptibility.
8410 * config/arm/ieee754-sf.S: Ditto.
8411 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
8412 (thumb1_base_register_rtx_p): ... to this.
8413 (thumb_index_register_rtx_p): Rename...
8414 (thumb1_index_register_rtx_p): ... to this.
8415 (thumb_output_function_prologue): Rename...
8416 (thumb1_output_function_prologue): ... to this.
8417 (thumb_legitimate_address_p): Rename...
8418 (thumb1_legitimate_address_p): ... to this.
8419 (thumb_rtx_costs): Rename...
8420 (thumb1_rtx_costs): ... to this.
8421 (thumb_compute_save_reg_mask): Rename...
8422 (thumb1_compute_save_reg_mask): ... to this.
8423 (thumb_final_prescan_insn): Rename...
8424 (thumb1_final_prescan_insn): ... to this.
8425 (thumb_expand_epilogue): Rename...
8426 (thumb1_expand_epilogue): ... to this.
8427 (arm_unwind_emit_stm): Rename...
8428 (arm_unwind_emit_sequence): ... to this.
8429 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
8430 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
8431 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
8432 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
8433 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
8434 thumb2_output_casesi): New functions.
8435 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
8436 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
8437 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
8438 THUMB2_WORK_REGS): Define.
8439 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
8440 arm_condexec_mask, arm_condexec_masklen)): New variables.
8441 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
8442 (arm_override_options): Check new CPU capabilities.
8443 Set new architecture flag variables.
8444 (arm_isr_value): Handle v7m interrupt functions.
8445 (user_return_insn): Return 0 for v7m interrupt functions. Handle
8446 Thumb-2.
8447 (const_ok_for_arm): Handle Thumb-2 constants.
8448 (arm_gen_constant): Ditto. Use movw when available.
8449 (arm_function_ok_for_sibcall): Return false for v7m interrupt
8450 functions.
8451 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
8452 (thumb_find_work_register, arm_load_pic_register,
8453 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
8454 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
8455 print_multi_reg, output_mov_long_double_fpa_from_arm,
8456 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
8457 output_mov_double_fpa_from_arm, output_move_double,
8458 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
8459 output_return_instruction, arm_output_function_prologue,
8460 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
8461 arm_output_mi_thunk, thumb_set_return_address): Ditto.
8462 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
8463 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
8464 (arithmetic_instr, shift_op): Use arm_shift_nmem.
8465 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
8466 '!' and 'L'.
8467 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
8468 (thumb_expand_prologue): Use thumb_set_frame_pointer.
8469 (arm_file_start): Output directive for unified syntax.
8470 (arm_unwind_emit_set): Handle stack alignment instruction.
8471 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
8472 Add v6t2, v7, v7a, v7r and v7m.
8473 (RETLDM): Add Thumb-2 code.
8474 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
8475 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
8476 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
8477 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
8478 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
8479 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
8480 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
8481 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
8482 ADJUST_INSN_LENGTH): Define.
8483 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
8484 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
8485 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
8486 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
8487 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
8488 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
8489 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
8490 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
8491 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
8492 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
8493 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
8494 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
8495 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
8496 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
8497 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
8498 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
8499 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
8500 cortex-m3.
8501 * config/arm/arm-tune.md: Regenerate.
8502 * config/arm/arm-protos.h: Update prototypes.
8503 * config/arm/vfp.md: Enable patterns for Thumb-2.
8504 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
8505 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
8506 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
8507 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
8508 * config/arm/libunwind.S: Add Thumb-2 code.
8509 * config/arm/constraints.md: Update include Thumb-2.
8510 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
8511 * config/arm/ieee754-df.S: Ditto.
8512 * config/arm/bpabi.S: Ditto.
8513 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
8514 * config/arm/predicates.md (low_register_operand,
8515 low_reg_or_int_operand, thumb_16bit_operator): New.
8516 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
8517 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
8518 * config/arm/t-arm-elf: Add armv7 multilib.
8519 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
8520 Include thumb2.md.
8521 (UNSPEC_STACK_ALIGN, ce_count): New.
8522 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
8523 arm_zero_extendsidi2, arm_zero_extendqidi2): New
8524 insns/expanders.
8525 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
8526 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
8527 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
8528 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
8529 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
8530 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
8531 insns.
8532 * doc/extend.texi: Document ARMv7-M interrupt functions.
8533 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
8534
8535 2007-01-03 Jakub Jelinek <jakub@redhat.com>
8536
8537 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
8538 (struct _Unwind_Context): Rename args_size to flags, remove
8539 signal_frame field, add a new args_size field and version field.
8540 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
8541 _Unwind_IsExtendedContext): New inline functions.
8542 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8543 Assume by_value array is only present if _Unwind_IsExtendedContext.
8544 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
8545 _Unwind_IsSignalFrame.
8546 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
8547 (uw_update_context_1): Use _Unwind_SetSignalFrame.
8548 (uw_init_context_1): Initialize context->flags to
8549 EXTENDED_CONTEXT_BIT.
8550 * config/rs6000/linux-unwind.h (frob_update_context): Use
8551 _Unwind_SetSignalFrame.
8552
8553 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8554
8555 PR middle-end/30353
8556 * gimplify.c (gimplify_modify_expr_complex_part): Move below
8557 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
8558 the value.
8559
8560 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
8561
8562 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
8563 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
8564 RET, AT_SP): Remove.
8565 * config/i386/i386.md (*sse_prologue_save_insn): Use return
8566 instead of RET.
8567
8568 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
8569 * cfgbuild.c (find_basic_blocks): Likewise.
8570 * cfgrtl.c (rtl_create_basic_block): Likewise.
8571 * function.c (temp_slots_at_level): Likewise.
8572 * reg-stack.c (stack_regs_mentioned): Likewise.
8573 * regclass.c (allocate_reg_info): Likewise.
8574 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
8575 set_bb_for_stmt, move_block_to_fn): Likewise.
8576 * tree-complex.c (tree_lower_complex): Likewise.
8577 * vec.h (VEC_safe_grow_cleared): New.
8578
8579 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
8580
8581 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
8582
8583 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
8584 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
8585 to loop_version.
8586 * cfgloopmanip.c (scale_loop_frequencies): Export.
8587 (loopify): Scale the frequencies by prescribed coefficients.
8588 (set_zero_probability): New function.
8589 (duplicate_loop_to_header_edge): Improve updating of frequencies.
8590 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
8591 and frequencies according to arguments.
8592 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
8593 correctly.
8594 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
8595 * modulo-sched.c (sms_schedule): Set probabilities for entering
8596 versioned loop correctly.
8597 * tree-vect-transform.c (vect_transform_loop): Ditto.
8598 * cfgloop.h (loopify, loop_version): Declaration changed.
8599 (scale_loop_frequencies): Declared.
8600
8601 2007-01-02 Jan Hubicka <jh@suse.cz>
8602
8603 * cgraph.c: Include tree-flow.h
8604 (cgraph_add_new-function): Handle IPA_SSA mode; execute
8605 early_local_passes.
8606 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
8607 * tree-pass.h (pass_all_early_optimizations): Declare.
8608 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
8609 early_local_passes.
8610 (cgraph_analyze_function): Do early_local_passes.
8611 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
8612 Do not add referenced vars.
8613 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
8614 SSA form.
8615 (gate_all_early_local_passes): New gate.
8616 (pass_early_local_passes): Use new gate.
8617 (execute_early_local_optimizations): New functions.
8618 (gate_all_early_optimizations): New gate.
8619 (pass_all_early_optimizations): New pass.
8620 (execute_free_datastructures): Free SSA only when initialized.
8621 (gate_init_datastructures): Init only when optimizing.
8622 (tree_lowering_passes): Do early local passes when called late.
8623 * tree-profile.c (do_tree_profiling): Don't profile functions added
8624 late.
8625 (do_early_tree_profiling, pass_early_tree_profile): Kill.
8626 * tree-cfg.c (update_modified_stmts): Do not update when operands are
8627 not active.
8628 * passes.c (init_optimizations_passes): Reorder so we go into SSA
8629 during early_local_passes.
8630 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
8631
8632
8633 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
8634
8635 * Makefile.in: Update copyright year.
8636
8637 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
8638
8639 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
8640 in $(lang_checks) and check-consistency targets.
8641
8642 2007-01-02 Jan Hubicka <jh@suse.cz>
8643
8644 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
8645 Do not add referenced vars.
8646 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
8647 are not active.
8648 * passes.c (init_optimization_passes): Put mudflap_2 after
8649 free_datastructures.
8650
8651 2007-01-02 Jan Hubicka <jh@suse.cz>
8652
8653 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
8654 Set NOTHROW flag on call statements proved to be nothrow.
8655 Update statement of local calls so new pure/const functions are
8656 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
8657 goto receivers.
8658 (tree_rest_of_compilation): Register hooks and initialize bitmap
8659 early. Do not set after_inlining flag.
8660
8661 2007-01-02 Steve Ellcey <sje@cup.hp.com>
8662
8663 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
8664 HOST_BITS_PER_LONGLONG
8665
8666 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8667
8668 PR c/19977
8669 * c-typeck.c (store_init_value): Don't emit pedantic overflow
8670 warning for non-static initializers.
8671
8672 2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
8673
8674 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
8675 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
8676 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
8677 Always use set_unique_reg_note to add REG_EQUAL notes.
8678
8679 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
8680
8681 Revert:
8682 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
8683
8684 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
8685 * cfgbuild.c (find_basic_blocks): Likewise.
8686 * cfgrtl.c (rtl_create_basic_block): Likewise.
8687 * function.c (temp_slots_at_level): Likewise.
8688 * reg-stack.c (stack_regs_mentioned): Likewise.
8689 * regclass.c (allocate_reg_info): Likewise.
8690 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
8691 set_bb_for_stmt, move_block_to_fn): Likewise.
8692 * tree-complex.c (tree_lower_complex): Likewise.
8693 * vec.h (VEC_safe_grow_cleared): New.
8694
8695 2007-01-02 Ian Lance Taylor <iant@google.com>
8696
8697 * c-common.c (c_common_truthvalue_conversion): When warning about
8698 using an assignment as a truth value, set TREE_NO_WARNING.
8699
8700 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8701
8702 PR middle-end/7651
8703 * c.opt (Wold-style-declaration): New.
8704 * doc/invoke.texi (C-only Warning Options): New.
8705 (Wold-style-declaration): Document it.
8706 (Wextra): Enabled by -Wextra.
8707 * c-opts.c (c_common_post_options): Enabled by -Wextra.
8708 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
8709 -Wold-style-declaration.
8710
8711 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
8712
8713 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
8714 * cfgbuild.c (find_basic_blocks): Likewise.
8715 * cfgrtl.c (rtl_create_basic_block): Likewise.
8716 * function.c (temp_slots_at_level): Likewise.
8717 * reg-stack.c (stack_regs_mentioned): Likewise.
8718 * regclass.c (allocate_reg_info): Likewise.
8719 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
8720 set_bb_for_stmt, move_block_to_fn): Likewise.
8721 * tree-complex.c (tree_lower_complex): Likewise.
8722 * vec.h (VEC_safe_grow_cleared): New.
8723
8724 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
8725
8726 * c-common.c (c_common_nodes_and_builtins): Since variants of
8727 void_type_node get built before it is given a name, we need to
8728 give those variants the name, too.
8729 (complete_array_type): We need to work with the canonical main
8730 type of the array, from which we will build the qualified version.
8731 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
8732 * print-tree.c (print_node): Display canonical type information
8733 for each type.
8734 * stor-layout.c (layout_type): When we don't know the
8735 alignment of a type for which we're building an array, we end up
8736 guessing wrong, so make the type require structural equality.
8737 * tree.c (make_node_stat): When we build a new type, it is its
8738 own canonical type.
8739 (build_type_attribute_qual_variant): When building an attribute
8740 variant, its canonical type is the non-attribute variant. However,
8741 if the attributes are target-dependent and they differ, we need to
8742 use structural equality checks for this type.
8743 (build_qualified_type): A qualified type is not equivalent to its
8744 unqualified variant; set the canonical type appropriately.
8745 (build_distinct_type_copy): When building a distinct type from
8746 another type, the new type is its own canonical type.
8747 (build_variant_type_copy): When building a new type variant, we
8748 assume that it is equivalent to the original type.
8749 (build_pointer_type_for_mode): When building a pointer type, also
8750 build a canonical type pointer.
8751 (build_reference_type_for_mode): When building a reference type,
8752 also build a canonical type reference.
8753 (build_index_type): When we can't hash an index type (e.g.,
8754 because its maximum value is negative), the index type requires
8755 structural equality tests.
8756 (build_array_type): Build the canonical form of an array type.
8757 (build_function_type): Function types require structural equality,
8758 because they contain default arguments, attributes, etc.
8759 (build_method_type_directly): Ditto for method types.
8760 (build_offset_type): Build the canonical offset type.
8761 (build_complex_type): Build the canonical vector type.
8762 (make_vector_type): Build the canonical vector type.
8763 * tree.h (TYPE_CANONICAL): New.
8764 (TYPE_STRUCTURAL_EQUALITY_P): New.
8765 (SET_TYPE_STRUCTURAL_EQUALITY): New.
8766 (struct tree_type): Added "canonical" field.
8767 * params.h (VERIFY_CANONICAL_TYPES): New.
8768 * doc/c-tree.texi (TYPE_CANONICAL): Document.
8769 (TYPE_STRUCTURAL_EQUALITY_P): Document.
8770 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
8771 * doc/invoke.texi (verify-canonical-types): Document --param
8772 parameter for verifying canonical types.
8773
8774 2007-01-02 Joseph Myers <joseph@codesourcery.com>
8775
8776 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
8777 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
8778 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
8779 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
8780 tm_file.
8781 * config/rs6000/e500.h: New.
8782 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
8783 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
8784 Remove.
8785 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
8786 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
8787 TARGET_E500_DOUBLE): Remove.
8788 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
8789 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
8790 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
8791 * config/rs6000/rs6000.c (rs6000_override_options): Use
8792 CHECK_E500_OPTIONS.
8793
8794 2007-01-02 Joseph Myers <joseph@codesourcery.com>
8795
8796 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
8797 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
8798 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
8799 rs6000_emit_cmove): Don't check TARGET_E500.
8800 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
8801 sordered): Don't check TARGET_E500.
8802
8803 2007-01-01 Eric Christopher <echristo@apple.com>
8804
8805 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
8806 HARD_REGISTER_NUM_P.
8807
8808 2007-01-01 Roger Sayle <roger@eyesopen.com>
8809
8810 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
8811 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
8812 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
8813 eq/ne Y".
8814
8815 2007-01-01 Mike Stump <mrs@apple.com>
8816
8817 * configure.ac: Remove support for building with Apple's gcc-3.1.
8818
8819 2007-01-02 Joseph Myers <joseph@codesourcery.com>
8820
8821 PR middle-end/30311
8822 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
8823 REG is a hard register. Do not modify REG before calling
8824 subreg_nregs.
8825 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
8826 multiple of the size of YMODE for certain lowpart cases.
8827
8828 2007-01-01 Andrew Pinski <pinskia@gmail.com>
8829
8830 PR middle-end/30253
8831 * gimplify (voidify_wrapper_expr): Update for
8832 GIMPLE_MODIFY_STMT.
8833
8834 2007-01-01 Andreas Schwab <schwab@suse.de>
8835
8836 PR target/29166
8837 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
8838 save of BR0 in extra_spill_size instead of spill_size.
8839 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
8840 area.
8841 (ia64_expand_epilogue): Restore BR0 from its new location.
8842
8843 2007-01-01 Andrew Pinski <pinskia@gmail.com>
8844
8845 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
8846 Use a temporary variable if the left hand side is not a gimple
8847 register.
8848
8849 2007-01-01 Andrew Pinski <pinskia@gmail.com>
8850
8851 * gimplify.c (gimplify_return_expr): Make the temporary variable
8852 for the return expression, a gimple register variable.
8853
8854 2007-01-01 Jan Hubicka <jh@suse.cz>
8855
8856 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
8857 INSN_LIST.
8858
8859 2007-01-01 Mike Stump <mrs@apple.com>
8860
8861 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
8862 .literal16.
8863 * config/darwin.c (machopic_select_rtx_section): Use
8864 HAVE_GAS_LITERAL16.
8865 (darwin_mergeable_constant_section): Likewise.
8866 * configure: Regenerate.
8867 * config.in: Regenerate.
8868
8869 2007-01-01 Jan Hubicka <jh@suse.cz>
8870 Andrew Pinski <pinskia@gmail.com>
8871
8872 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
8873 before starting IPA passes.