1 2007-12-13 Richard Earnshaw <rearnsha@arm.com>
4 * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
5 exit when using hard FPA.
6 * config/arm/ieee754-df.S (floatdidf): Likewise.
8 2007-12-12 Jakub Jelinek <jakub@redhat.com>
11 * doc/install.texi: Document that for MinGW only runtime 3.12 and
14 2007-12-12 David Edelsohn <edelsohn@gnu.org>
16 * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
18 2007-12-12 Aldy Hernandez <aldyh@redhat.com>
20 PR tree-optimization/32901
21 * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
22 are assigning from a constant constructor.
23 Fix wrapping in function comment.
25 2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
27 * config/s390/s390.c (s390_O_constraint_str): Limit the range
28 for 'On' to -4G+1..-1.
29 * config/s390/constraints.md: Adjust comment accordingly.
31 2007-12-11 Nathan Sidwell <nathan@codesourcery.com>
33 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
36 2007-12-11 Kai Tietz <kai.tietz@onevision.com>
38 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
39 target same as 32-bit.
41 2007-12-10 Jakub Jelinek <jakub@redhat.com>
43 PR tree-optimization/34371
44 * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
46 (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
47 * tree-vectorizer.c (set_prologue_iterations,
48 slpeel_tree_peel_loop_to_edge): Call unshare_expr on
49 LOOP_VINFO_NITERS_UNCHANGED before using it.
51 2007-12-10 Eric Botcazou <ebotcazou@libertysurf.fr>
54 * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
55 (ix86_expand_setmem): Likewise.
57 2007-12-10 Kenneth Zadeck <zadeck@naturalbridge.com>
59 PR rtl-optimization/34302
60 * auto-inc-dec.c (attempt_change): Change place where move is
63 2007-12-10 Jakub Jelinek <jakub@redhat.com>
65 * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
66 Fortran multi-dimensional arrays use DW_AT_ordering
69 2007-12-10 Paolo Bonzini <bonzini@gnu.org>
72 * config/i386/i386.c (override_options): Enable -fvect-cost-model.
74 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
76 * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
77 array, registers that are members of global_regs are also members of
78 fixed_regs array. Use REGPARM_MAX to check that no regparm hard
79 register is taken by a fixed register variable. Check up to and
80 including DI_REG when adjusting regparm value due to fixed regs usage.
81 (rep_prefix_usable): Check fixed_regs array, not global_regs array for
82 available hard registers.
83 (ix86_expand_strlen): Ditto.
84 * config/i386/i386.md (strmov): Ditto.
87 2007-12-10 Kaz Kojima <kkojima@gcc.gnu.org>
89 * genopinit.c: Include tm_p.h in generated file.
91 * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
92 to extract the integer from operands[2].
93 (vec_setv2di_internal): Likewise.
95 * config/arm/arm.c (arm_size_return_regs): Make return type
97 (arm_init_neon_builtins): Move code after declarations.
99 2007-12-10 Hans-Peter Nilsson <hp@axis.com>
101 * reload.c (find_reloads_address_1): To properly mark as an
102 autoincdec, pass X for non-NULL OUT in call to push_reload for
103 autoincdec which can't be trivially used as an address.
105 2007-12-10 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
106 Hans-Peter Nilsson <hp@axis.com>
108 * caller-save.c (insert_one_insn): If inserting before a call_insn
109 then the registers containing the arguments of the call are
110 live_throughout in the new insn.
112 2007-12-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
116 * pa.md: Consolidate HImode and QImode move patterns into one pattern
117 each, eliminating floating-point alternatives.
118 * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
120 * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
121 * pa.c (pa_secondary_reload): Use an intermediate general register
122 for copies to/from floating-point register classes. Simplify code
123 SHIFT_REGS class. Provide additional comments.
124 (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
125 * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
126 (SECONDARY_MEMORY_NEEDED): Delete define.
127 (INT14_OK_STRICT): Define.
128 (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
130 (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
131 (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
133 (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
134 Align DImode offsets when generating 64-bit code.
135 * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
136 (CANNOT_CHANGE_MODE_CLASS): Define.
137 * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
138 (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
140 2007-12-09 Jakub Jelinek <jakub@redhat.com>
143 * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
144 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
145 * langhooks.h (struct array_descr_info): Forward declaration.
146 (struct lang_hooks_for_types): Add get_array_descr_info field.
147 * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
148 (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
150 * dwarf2out.h (struct array_descr_info): New type.
151 * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
152 DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
153 (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
155 (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
156 and gen_descr_array_type_die.
158 2007-12-08 Richard Guenther <rguenther@suse.de>
160 PR tree-optimization/34391
161 * tree-vect-transform.c (vect_setup_realignment): Mark new
162 symbols for renaming.
164 2007-12-07 Bob Wilson <bob.wilson@acm.org>
166 * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
167 (ASM_OUTPUT_DWARF_PCREL): Define.
169 2007-12-07 Richard Guenther <rguenther@suse.de>
172 * opts.c (common_handle_option): Handle OPT_fforce_addr.
174 2007-12-07 Aldy Hernandez <aldyh@redhat.com>
176 * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
177 (LEGITIMIZE_RELOAD_ADDRESS): Same.
179 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
182 * doc/install.texi: Explain how to check for a clean environment when
185 2007-12-07 Richard Guenther <rguenther@suse.de>
187 * tree-profile.c (gcov_type_tmp_var): New global variable.
188 (tree_gen_edge_profiler): Use a single shared variable decl per
189 function for edge counter incrementing.
190 (tree_profiling): Re-set the shared variable.
192 2007-12-06 Bob Wilson <bob.wilson@acm.org>
194 * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
196 2007-12-06 Tom Tromey <tromey@redhat.com>
199 * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
201 2007-12-06 Richard Sandiford <rsandifo@nildram.co.uk>
203 * config/mips/mips.c (mips_function_ok_for_sibcall): Check
204 targetm.binds_local_p as well as DECL_EXTERNAL.
206 2007-12-06 Harsha Jagasia <harsha.jagasia@amd.com>
208 * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
209 (set_prologue_iterations): New. Set the prologue iterations to total
210 number of scalar iterations if the cost model check indicates that
211 scalar code should be generated.
212 (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for
213 generating the cost condition for epilog. Call
214 set_prologue_iterations to generate cost condition for prolog.
215 (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
216 * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
217 (slpeel_tree_peel_loop_to_edge): Update declaration.
218 (set_prologue_iterations): New declaration.
219 * tree-vect-analyze.c (vect_analyze_loop_form): Update
220 LOOP_VINFO_NITERS_UNCHANGED.
221 * tree-vect-transform.c
222 (vect_estimate_min_profitable_iters): Add new parameter and
223 code to check if run time cost model test is needed.
224 Remove code that adds builtin vectorization cost to scalar
225 outside cost for the run time cost model test. If run time
226 cost model test is needed add the appropriate guard cost to
227 the scalar outside cost. The guard cost depends on whether
228 the guard is generated at versioning or at prolog generation
229 or at epilog generation. Change cost model equation to include
231 (conservative_cost_threshold): New. Return the less conservative
232 profitability threshold between the cost model threshold and the
233 user defined vectorization threshold.
234 (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
235 (vect_do_peeling_for_alignment): Same.
236 (vect_loop_versioning): Same.
237 (vect_create_cond_for_align_checks): ANDs the cost model condition
238 with the alignment condition.
239 (vect_transform_loop): Call loop versioning only when there is a
240 misalignment or an aliasing problem.
242 2007-12-06 Jakub Jelinek <jakub@redhat.com>
245 * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
246 (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
247 BUILT_IN_VA_COPY and BUILT_IN_VA_END.
249 * target.h (struct ggc_target): Add expand_builtin_va_start hook.
250 * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
251 (TARGET_INITIALIZER): Add it.
252 * builtins.c (expand_builtin_va_start): Use
253 targetm.expand_builtin_va_start hook instead of
254 EXPAND_BUILTIN_VA_START macro.
255 * alpha/alpha.c (alpha_va_start): Made static.
256 (override_options): Clear targetm.expand_builtin_va_start if
258 (TARGET_EXPAND_BUILTIN_VA_START): Define.
259 * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
260 * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
261 * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
262 * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
263 * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
264 (xtensa_va_start): Made static.
265 * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
266 * pa/pa-protos.h (hppa_va_start): Remove prototype.
267 * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
268 * pa/pa.c (hppa_va_start): Made static, add prototype.
269 (TARGET_EXPAND_BUILTIN_VA_START): Define.
270 * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
271 (TARGET_EXPAND_BUILTIN_VA_START): Define.
272 * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
273 * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
274 * i386/i386.c (override_options): Clear
275 targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
276 (ix86_va_start): Made static.
277 (TARGET_EXPAND_BUILTIN_VA_START): Define.
278 * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
279 * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
280 * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
281 * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
282 * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
283 (TARGET_EXPAND_BUILTIN_VA_START): Define.
284 * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
285 * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
286 (TARGET_EXPAND_BUILTIN_VA_START): Define.
287 (rs6000_override_options): Clear targetm.expand_builtin_va_start if
288 DEFAULT_ABI != ABI_V4.
289 * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
290 * spu/spu.c (spu_va_start): Made static, add prototype.
291 (TARGET_EXPAND_BUILTIN_VA_START): Define.
292 * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
293 * spu/spu-protos.h spu_va_start): Remove prototype.
294 * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
295 * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
297 * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made
299 (TARGET_EXPAND_BUILTIN_VA_START): Define.
300 * s390/s390-protos.h (s390_va_start): Remove prototype.
301 * s390/s390.c (s390_va_start): Made static.
302 (TARGET_EXPAND_BUILTIN_VA_START): Define.
303 * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
304 * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
305 * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
306 * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
307 (TARGET_EXPAND_BUILTIN_VA_START): Define.
308 * arc/arc.c (arc_va_start): Made static, add prototype.
309 (TARGET_EXPAND_BUILTIN_VA_START): Define.
310 * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
311 * arc/arc-protos.h (arc_va_start): Remove prototype.
312 * mt/mt-protos.h (mt_va_start): Remove prototype.
313 * sparc/sparc.c (sparc_va_start): Made static, add prototype.
314 (TARGET_EXPAND_BUILTIN_VA_START): Define.
315 * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
316 * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
317 * sh/sh.c (sh_va_start): Made static, add prototype.
318 (TARGET_EXPAND_BUILTIN_VA_START): Define.
319 * sh/sh-protos.h (sh_va_start): Remove prototype.
320 * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
321 * mips/mips-protos.h (mips_va_start): Remove prototype.
322 * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
323 * mips/mips.c (mips_va_start): Made static.
324 (TARGET_EXPAND_BUILTIN_VA_START): Define.
326 2007-12-06 Uros Bizjak <ubizjak@gmail.com>
328 * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
329 "flag_tree_parallelize_loops > 1".
331 2007-12-06 Zdenek Dvorak <ook@ucw.cz>
332 Dorit Nuzman <dorit@il.ibm.com>
333 Jakub Jelinek <jakub@redhat.com>
335 PR tree-optimization/34005
336 * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
337 * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
338 (gimplify_pure_cond_expr): New function.
339 (generic_expr_could_trap_p): New function.
340 (gimplify_cond_expr): Call gimplify_pure_cond_expr.
341 (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
343 2007-12-06 Andreas Krebbel <krebbel1@de.ibm.com>
345 * config/s390/s390.c (s390_emit_stack_tie): New function.
346 (s390_emit_prologue): Emit a stack tie when writing to the
348 * config/s390/s390.md ("stack_tie"): New insn definition.
350 2007-12-06 Ben Elliston <bje@au.ibm.com>
353 * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
355 2007-12-05 Jakub Jelinek <jakub@redhat.com>
358 * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
359 number of bits set in C1 if a mode mask for some mode can be used
362 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
364 * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
367 2007-12-05 Richard Guenther <rguenther@suse.de>
369 PR tree-optimization/34138
370 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
371 Do not forward propagate addresses if that changes volatileness of
374 2007-12-05 Uros Bizjak <ubizjak@gmail.com>
377 * config/i386/i386.c (ix86_function_regparm): Also check for fixed
378 registers when checking that regparm registers are available.
379 Lower regparm value due to fixed registers usage in addition to
382 2007-12-05 Bernhard Fischer <aldot@gcc.gnu.org>
384 * sparseset.c: Include config.h and system.h before sparseset.h.
385 * sparseset.h: Remove inclusion of system.h.
387 2007-12-05 Jakub Jelinek <jakub@redhat.com>
388 Richard Sandiford <rsandifo@nildram.co.uk>
390 * optabs.c (init_insn_codes): New function.
392 (init_optab, init_optabv): Don't call new_optab.
393 (init_convert_optab): Don't clear the insn codes.
394 (init_optabs): Call init_insn_codes.
396 2007-12-04 Jakub Jelinek <jakub@redhat.com>
398 * omp-low.c (optimize_omp_library_calls): New function.
399 (expand_omp_parallel): Call it if optimizing.
402 * stmt.c (expand_stack_restore): Call expand_normal on var to get
403 rtx for it instead of assuming it will be a VAR_DECL.
405 2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
407 * c-parser (c_parser_statement_after_labels): Move error from here...
408 (c_parser_label): ... to here. Check that the declaration is not
409 actually just another label.
411 2007-12-04 Richard Guenther <rguenther@suse.de>
415 * tree-ssa-operands.c (get_addr_dereference_operands): If we
416 fall back to using the SMTs aliases, make sure to add virtual
417 operands for the SMT itself.
418 (create_ssa_artificial_load_stmt): Fix typo. Make sure to also
419 clear the loaded and stored symbols bitmaps.
421 2007-12-04 Ben Elliston <bje@au.ibm.com>
423 * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
425 2007-12-04 Ben Elliston <bje@au.ibm.com>
427 * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
429 2007-12-03 Steven Bosscher <stevenb.gcc@gmail.com>
432 * doc/invoke.texi: Remove -fforce-addr documentation.
433 * expr.c (emit_move_insn): Remove use of flag_force_addr.
434 (expand_expr_real_1): Same.
435 (do_tablejump): Same.
436 Call memory_address instead of memory_address_noforce.
437 * expr.h (memory_address_noforce): Remove prototype.
438 * explow.c (memory_address): Remove support for flag_force_addr.
439 (validize_mem): Same.
440 (memory_address_noforce): Remove.
441 * common.opt: Add dummy documentation for -fforce-addr.
442 * combine.c (can_combine_p): Remove -fforce-addr comment.
443 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
445 * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
446 relating to memory_address_noforce.
447 * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
448 * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
450 2007-12-03 Jakub Jelinek <jakub@redhat.com>
452 * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
453 with !ctx->is_nested.
454 (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
455 even if !ctx->is_nested.
456 (lower_copyprivate_clauses, lower_send_clauses,
457 lower_send_shared_vars): Call lookup_decl_in_outer_ctx
461 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
462 (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
463 and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
464 (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
465 (X & C2) << C1 into (X << C1) & (C2 << C1) and
466 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
469 PR tree-optimization/33453
470 * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
471 for pointer addition.
472 * tree-parloops.c (canonicalize_loop_ivs): Likewise.
473 (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
476 2007-12-03 Bernd Schmidt <bernd.schmidt@analog.com>
478 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
481 2007-12-03 Razya Ladelsky <razya@il.ibm.com>
483 * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
485 2007-12-03 Jakub Jelinek <jakub@redhat.com>
488 * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
489 * common.opt (ftree-store-copy-prop): Use the same help text as for
492 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
493 Revital Eres <eres@il.ibm.com>
495 * modulo-sched.c (calculate_must_precede_follow,
496 try_scheduling_node_in_cycle): New functions.
497 (sms_schedule_by_order): Call the new functions.
498 (ps_insn_find_column): Use must_follow and must_precede only if
500 (ps_insn_advance_column): Likewise.
502 2007-12-02 Ayal Zaks <zaks@il.ibm.com>
503 Revital Eres <eres@il.ibm.com>
505 * modulo-sched.c (get_sched_window): Fix the direction of the
506 scheduling window and add dump info.
508 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
510 * config/sh/sh.md (cmpgeusi_t): Fix condition.
512 2007-11-30 Jan Hubicka <jh@suse.cz>
514 * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
516 2007-11-30 Seongbae Park <seongbae.park@gmail.com>
518 PR rtl-optimization/34171
519 * cfgrtl.c (update_bb_for_insn_chain): New function,
520 refactored from update_bb_for_insn.
521 (update_bb_for_insn): Call update_bb_for_insn.
522 (rtl_merge_blocks, try_redirect_by_replacing_jump):
523 Replace a loop with update_bb_for_insn_chain call.
524 (cfg_layout_merge_blocks): Add a call to
525 update_bb_for_insn_chain. Replace the for loop
526 with a call to update_bb_for_insn_chain.
528 2007-11-30 Ben Elliston <bje@au.ibm.com>
530 * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
532 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
534 PR tree-optimization/34244
535 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
536 (record_numbers_of_iterations): New function.
537 (execute_vrp): Cache the numbers of iterations of loops.
538 * tree-scalar-evolution.c (scev_reset_except_niters):
540 (scev_reset): Use scev_reset_except_niters.
541 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
543 2007-11-29 Jan Hubicka <jh@suse.cz>
544 Jakub Jelinek <jakub@redhat.com>
546 PR tree-optimization/33434
547 * tree-inline.c (setup_one_parameter): If the value passed to
548 a parameter is never used, don't set it up.
550 2007-11-29 Jakub Jelinek <jakub@redhat.com>
553 * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
554 * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
556 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
558 * Makefile.in: Use separate vpath lines for each path.
560 2007-11-29 Ben Elliston <bje@au.ibm.com>
562 * SERVICE: Update URL.
564 2007-11-28 Jakub Jelinek <jakub@redhat.com>
566 PR tree-optimization/34140
567 * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
568 loop->header has virtual phi nodes.
570 2007-11-28 Richard Sandiford <rsandifo@nildram.co.uk>
573 * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
574 of GP register, if valid and fixed.
577 2007-06-21 David Daney <ddaney@avtrex.com>
580 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
581 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
582 (exception_receiver): Renamed to ...
583 (nonlocal_goto_receiver): ... this.
585 2007-11-27 H.J. Lu <hongjiu.lu@intel.com>
586 Joey Ye <joey.ye@intel.com>
589 * config/i386/i386.c (function_arg_32): Don't pass aggregate
590 arguments in ECX/EDX for fastcall.
592 2007-11-28 Rask Ingemann Lambertsen <rask@sygehus.dk>
594 * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
596 * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
597 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
599 2007-11-28 Ben Elliston <bje@au.ibm.com>
601 * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
602 (maix32): Add Negative(maix64).
604 2007-11-27 Jakub Jelinek <jakub@redhat.com>
606 PR tree-optimization/34016
607 * tree-ssa-loop.c (pass_linear_transform): Add
608 TODO_update_ssa_only_virtuals to todo_flags_finish.
610 2007-11-27 Eric B. Weddington <eric.weddington@atmel.com>
612 * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
613 * config/avr/avr.h (LINK_SPEC): Likewise.
614 (CRT_BINUTILS_SPECS): Likewsie.
615 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
617 2007-11-27 Jakub Jelinek <jakub@redhat.com>
620 * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
621 MEM_SIZE is set on all MEMs.
623 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
625 * config/s390/s390.opt (mhard-float): Add the option to be
626 overridden. That was missing in my last patch.
628 2007-11-27 Richard Guenther <rguenther@suse.de>
630 PR tree-optimization/34241
631 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
632 to only delete real conversion chains.
634 2007-11-27 Andreas Krebbel <krebbel1@de.ibm.com>
636 * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
637 mhard-float, mlong-double-64, mlong-double-128): Add the
638 option to be overridden.
640 2007-11-27 Richard Guenther <rguenther@suse.de>
642 * builtins.c (fold_builtin_1): Verify the argument types
643 of BUILT_IN_ISNORMAL.
644 (fold_builtin_n): Verify the number of arguments to variadic
647 2007-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
649 * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
650 * doc/invoke.texi (Blackfin Options): Document the effects.
652 2007-11-27 Ben Elliston <bje@au.ibm.com>
654 * config/rs6000/sysv4.opt (m32): Add Negative(m64).
655 (m64): Add Negative(m32).
656 * config/rs6000/darwin.opt (m32): Add Negative(m64).
657 (m64): Add Negative(m32).
659 2007-11-26 Eric Botcazou <ebotcazou@adacore.com>
661 * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
663 2007-11-26 Michael Meissner <michael.meissner@amd.com>
666 * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
667 constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode
668 to get the mode for loading a pseudo register with a count rather
669 than duplicating code.
671 2007-11-25 Eric B. Weddington <eric.weddington@atmel.com>
673 * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
674 * config/avr/avr.h (LINK_SPEC): Likewise.
675 (CRT_BINUTILS_SPECS): Likewsie.
676 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
678 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
680 * c-common.c (conversion_warning): Use get_unwidened instead of
683 2007-11-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
686 * c-parser.c (struct c_parser): New bit in_if_block.
687 (c_parser_compound_statement_nostart): Handle unexpected 'else'
689 (c_parser_statement_after_labels): Set in_if_block to false while
691 (c_parser_if_body): Don't call c_parser_statement_after_labels if
692 a semicolon is found, just consume it. Don't call
693 c_parser_statement_after_labels if an open brace is found, call
694 c_parser_compound_statement instead.
695 (c_parser_else_body): New.
696 (c_parser_if_statement): Set in_if_block to true when parsing the
697 body of the 'if' statement. Use c_parser_else_body.
699 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
702 * c-decl.c (store_parm_decls): Pass 'false' for the new
703 allocate_struct_function parameter.
704 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
705 * tree-parloops.c (create_loop_fn): Likewise.
706 * function.c (push_function_context_to, push_struct_function,
707 init_function_start): Likewise.
708 (allocate_struct_function): Add boolean parameter.
709 * tree.h (allocate_struct_function): Add boolean parameter.
710 * function.h (struct function): Move returns_struct and
711 returns_pcc_struct to the end of the structure definiton.
713 2007-11-26 Uros Bizjak <ubizjak@gmail.com>
716 * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
717 virtual registers are already instantiated.
718 (truncxf<mode>2): Ditto.
719 (floatsi<mode>2): Ditto.
723 2007-11-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
726 * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
727 the address before it is clobbered.
729 2007-11-26 Nick Clifton <nickc@redhat.com>
731 * config/mn10300/mn10300.md: (call_internal): Remove mode on
732 operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
733 (call_value_internal): Remove mode on operands 0 and 1 in order to
734 match UNPSEC'ed calls generated in PIC mode.
735 (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
738 2007-11-26 Richard Guenther <rguenther@suse.de>
741 * builtins.c (expand_builtin_pow): Use expand_expr to expand
742 the result of build_call_expr.
744 2007-11-26 Steven Bosscher <stevenb.gcc@gmail.com>
745 Revital Eres <eres@il.ibm.com>
748 * bb-reorder.c (insert_section_boundary_note): Clear
749 BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
751 2007-11-26 Richard Sandiford <rsandifo@nildram.co.uk>
753 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
755 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
757 * dwarf2asm.c (splay_tree_compare_strings): New function.
758 (dw2_force_const_mem): Use it.
760 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
762 * tree.c (type_hash_add): Don't violate strict aliasing rules.
764 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
767 * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
768 matches between anonymous union fields.
770 2007-11-26 Alexandre Oliva <aoliva@redhat.com>, Jan Hubicka <jh@suse.cz>
772 * tree-ssa-live.c (remove_unused_scope_block_p): Drop
773 declarations and blocks only after inlining. Check that
774 non-empty blocks are not dropped.
775 * tree-inline.c (expand_call_inline): Check that functions are
776 not inlined too late.
778 2007-11-26 Ben Elliston <bje@au.ibm.com>
780 * unwind-dw2-fde.c: Fix comment typo.
781 * unwind-generic.h: Likewise, fix comment typos.
783 2007-11-25 Richard Sandiford <rsandifo@nildram.co.uk>
785 * tree-sra.c (scalarize_use): Adjust the vpos argument to
786 sra_explode_bitfield_assignment in cases where the type is
787 wider than the bitfield.
789 2007-11-25 Richard Guenther <rguenther@suse.de>
791 * tree.h (struct tree_block): Move locus member next to flags.
792 * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
793 (SCOPE_LIST_CONCAT): Likewise.
794 (pop_scope): Likewise.
795 * function.c (instantiate_decls_1): Likewise.
796 (setjmp_vars_warning): Likewise.
797 * emit-rtl.c (set_used_decls): Likewise.
798 * tree-inline.c (add_lexical_block): Likewise.
800 2007-11-24 Hans-Peter Nilsson <hp@axis.com>
802 * rtlanal.c (label_is_jump_target_p): Return true for a matching
804 * reorg.c (fill_slots_from_thread): Correct last change to use
805 NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
806 decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
807 * jump.c (mark_jump_label_1): Add comment for last change
808 regarding JUMP_LABEL setting.
809 * gcse.c (add_label_notes): Remove conditional that the label is
810 mentioned in insn before adding regnote.
811 * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
812 single_set insn only feeding a label to a jump through a
813 register that dies there.
815 2007-11-23 Dirk Mueller <dmueller@suse.de>
816 Richard Guenther <rguenther@suse.de>
819 * tree-vrp.c (check_array_ref): Move check for valid location..
820 (check_array_bounds) here. Use EXPR_HAS_LOCATION().
822 2007-11-23 Hans-Peter Nilsson <hp@axis.com>
824 * reload.c (find_reloads_address_1) <autoincdec cases>:
825 Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
827 2007-11-23 Richard Guenther <rguenther@suse.de>
828 Michael Matz <matz@suse.de>
830 PR tree-optimization/34176
831 * alloc-pool.h (empty_alloc_pool): Declare.
832 * alloc-pool.c (empty_alloc_pool): New function.
833 * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
834 valid table if a lookup from the optimistic table failed.
835 (vn_unary_op_lookup): Likewise.
836 (vn_binary_op_lookup): Likewise.
837 (vn_phi_lookup): Likewise.
838 (process_scc): Clear optimistic tables before every iteration.
840 2007-11-23 Richard Guenther <rguenther@suse.de>
842 * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
843 (merge_alias_info): Do verification only if checking is
844 enabled. Merge flow-sensitive alias information in simple cases.
845 * tree-ssa-operands.c (get_addr_dereference_operands): Also
846 complain about missing NMTs.
848 2007-11-23 Jakub Jelinek <jakub@redhat.com>
851 * c-common.c (conversion_warning): For INTEGER_TYPE to
852 INTEGER_TYPE conversions call get_narrower on expr to avoid
853 spurious warnings from binop shortening or when the implicit
854 conversion can't change the value.
856 2007-11-22 Joseph Myers <joseph@codesourcery.com>
859 * c-decl.c (set_array_declarator_inner): Don't give error for
860 static or type qualifiers in abstract declarator. Remove
861 abstract_p parameter.
862 * c-tree.h (set_array_declarator_inner): Update prototype.
863 * c-parser.c (c_parser_direct_declarator_inner): Update call to
864 set_array_declarator_inner.
865 * doc/standards.texi: Update for C99 TC3.
867 2007-11-22 Hans-Peter Nilsson <hp@bitrange.com>
869 * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
870 line in my edit of the last change.
872 2007-11-22 Jakub Jelinek <jakub@redhat.com>
875 * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
876 and TREE_READONLY on the fn decl rather than passing a chain
879 2007-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
881 * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
883 2007-11-22 Uros Bizjak <ubizjak@gmail.com>
885 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
886 of ix86_arch and ix86_tune into a switch statement.
887 (enum processor_type): Default PROCESSOR_I386 to 0.
888 * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
889 of "ix86_tune == PROCESSOR_K6".
890 (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
893 2007-11-22 Tom Tromey <tromey@redhat.com>
895 * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
896 avoid writing into string allocated by ggc_alloc_string.
898 2007-11-21 Kaz Kojima <kkojima@gcc.gnu.org>
901 * config/sh/sh.md (binary_sf_op): Remove.
902 (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
903 * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
904 and gen_binary_sf_op1.
906 2007-11-21 Hans-Peter Nilsson <hp@axis.com>
908 * regclass.c (init_reg_autoinc): Fix typo preventing test of
909 secondary output reload when setting forbidden_inc_dec_class.
911 2007-11-21 Richard Guenther <rguenther@suse.de>
913 PR tree-optimization/34148
914 * tree-ssa-structalias.c (create_variable_info_for): Do not use
915 field-sensitive PTA for single-element structures.
916 * tree-ssa-alias.c (create_overlap_variables_for): Do not create
917 SFTs for single-element structures.
919 2007-11-20 Richard Guenther <rguenther@suse.de>
922 * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
923 of the signed INT_CST_LT.
924 * stmt.c (expand_case): Likewise.
925 (estimate_case_costs): Likewise.
927 2007-11-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
929 * read-rtl.c (fatal_expected_char): Print EOF as text rather that
930 its binary representation.
932 2007-11-20 Richard Guenther <rguenther@suse.de>
934 * tree-ssa-operands.c (add_virtual_operand): Consistently prune
937 2007-11-20 Thiemo Seufer <ths@mips.com>
939 * config/mips/mips.c (mips_file_start): Add support for
940 flagging 32-bit code with -mfp64 floating-point.
942 2007-11-20 Jakub Jelinek <jakub@redhat.com>
945 * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
946 (c_gimplify_expr): Use it.
948 2007-11-20 Ben Elliston <bje@au.ibm.com>
950 * config/spu/spu_mfcio.h: Fix typo.
952 2007-11-20 Ben Elliston <bje@au.ibm.com>
954 * unwind.inc: Comment that unwind-sjlj.c includes this file.
956 2007-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
957 Ben Elliston <bje@au.ibm.com>
959 * config/spu/mfc_tag_release.c: New file.
960 * config/spu/mfc_multi_tag_release.c: Likewise.
961 * config/spu/mfc_multi_tag_reserve.c: Likewise.
962 * config/spu/mfc_tag_release.c: Likewise.
963 * config/spu/mfc_tag_reserve.c: Likewise.
964 * config/spu/mfc_tag_table.c: Likewise.
965 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
966 (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
967 * config/spu/spu_mfcio.h: Avoid <stdint.h>.
968 (uint64_t): Typedef if __IN_LIBGCC2 is defined.
969 (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
970 (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
971 mfc_multi_tag_release): Likewise.
972 (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
973 __mfc_multi_tag_release): Declare.
975 2007-11-19 Jason Merrill <jason@redhat.com>
977 PR debug/28834, debug/29436, c/32326
978 * tree.c (build_type_attribute_qual_variant): Refuse to make
979 a distinct copy of a struct/enum type. Use build_distinct_type_copy.
980 * doc/extend.texi (Type Attributes): Don't encourage people to add
981 attributes to struct/enum types in a typedef. Fix
982 transparent_union example.
984 * tree-inline.c (remap_type_1): Remove code that's redundant with
986 (build_duplicate_type): Set id.copy_decl.
987 * c-common.c (handle_transparent_union_attribute): Simplify logic.
989 2007-11-19 Peter Bergner <bergner@vnet.ibm.com>
991 * config/rs6000/rs6000.c (invalid_e500_subreg,
992 rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
993 rs6000_legitimize_address, rs6000_legitimize_reload_address,
994 rs6000_legitimate_address, function_arg_advance,
995 spe_build_register_parallel, rs6000_spe_function_arg,
996 rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
997 emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
998 rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
999 TDmode similarly to DFmode and TFmode.
1000 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1001 DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1003 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
1005 * stor-layout.c (lang_adjust_rli): Delete.
1006 (set_lang_adjust_rli): Likewise.
1007 (layout_type): Do not call lang_adjust_rli hook.
1008 * tree.h (set_lang_adjust_rli): Delete.
1010 2007-11-19 Bernd Schmidt <bernd.schmidt@analog.com>
1012 * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1013 n_dregs_to_save and n_pregs_to_save.
1014 (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
1015 all callers changed.
1016 (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1017 able to save single D/P registers that aren't saved by the push/pop
1020 2007-11-19 Richard Guenther <rguenther@suse.de>
1022 PR tree-optimization/34099
1023 * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1024 MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1025 if only one operand is undefined.
1027 2007-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
1029 PR tree-optimization/34036
1030 * opts.c (set_fast_math_flags): Do not set flags in common
1031 with set_unsafe_math_optimizations_flags, invoke it directly.
1032 (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1033 and flag_signed_zeros.
1034 * toplev.c (process_options): Force flag_associative_math to 0 and
1035 warn, if it is set and either flag_trapping_math or flag_signed_zeros
1037 * doc/invoke.texi (Optimize Options): Document the new behavior
1038 of -funsafe-math-optimizations, that -fassociative-math requires
1039 both -fno-signed-zeros and -fno-trapping-math and make it clear
1040 that -fno-trapping-math requires -fno-signaling-nans. Refactor
1041 documentation of -ffast-math.
1043 2007-11-18 Jakub Jelinek <jakub@redhat.com>
1045 PR rtl-optimization/34132
1046 * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1050 * optabs.h (optab_table): Change type to struct optab from optab.
1051 (convert_optab_table): Similarly.
1052 Adjust all _optab macros to expand to addresses of optab_table
1053 resp. convert_optab_table elements rather than the values of the
1055 * optabs.c (optab_table): Change typype to struct optab from optab.
1056 If compiled by recent GCC, initialize all the insn_code fields in
1057 the array using designated range initializers.
1058 (convert_optab_table): Similarly.
1059 (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1060 set_conv_libfunc): Into libfunc_entry's optab field store index within
1061 optab_table resp. convert_optab_table array instead of difference
1062 between two separately malloced addresses.
1063 (new_optab): Add op argument, don't return anything. Initialize
1064 just the insn_code field in handlers array and only when needed.
1065 (init_optab, init_optabv): Add op argument, don't return anything.
1066 Adjust new_optab caller.
1067 (new_convert_optab): Removed.
1068 (init_convert_optab): Add op argument, don't return anything, don't
1069 call new_convert_optab. If needed, initialize insn_code field in
1071 (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
1073 (debug_optab_libfuncs): Adjust uses of optab_table and
1074 convert_optab_table arrays.
1076 2007-11-18 Richard Guenther <rguenther@suse.de>
1078 PR tree-optimization/34127
1079 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1080 Make code match up the comments, require compatibility of the
1083 2007-11-17 Richard Guenther <rguenther@suse.de>
1086 * fold-const.c (extract_muldiv_1): Do not move negative
1087 constants inside ABS_EXPR.
1089 2007-11-16 Ian Lance Taylor <iant@google.com>
1091 * collect2.c (dump_file): If a demangled symbol is followed by a
1092 space, make sure we output at least one space.
1094 2007-11-16 Richard Guenther <rguenther@suse.de>
1097 * fold-const.c (fold_binary): Use correct types for folding
1098 1 << X & Y to Y >> X & 1.
1100 2007-11-16 Richard Guenther <rguenther@suse.de>
1102 PR tree-optimization/33870
1103 * tree.h (struct tree_memory_tag): Add base_for_components flag.
1104 (struct tree_struct_field_tag): Remove nesting_level field.
1105 (SFT_NESTING_LEVEL): Remove.
1106 (SFT_BASE_FOR_COMPONENTS_P): Add.
1107 * tree-flow.h (struct fieldoff): Remove nesting_level field. Add
1108 base_for_components flag.
1109 (push_fields_onto_fieldstack): Remove nesting_level parameter.
1110 * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components
1112 (create_overlap_variables_for): Deal with it.
1113 * tree-dfa.c (dump_subvars_for): Likewise.
1114 (dump_variable): Likewise.
1115 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1116 Set base_for_components for first elements of sub-structures.
1117 (create_variable_info_for): Handle base_for_components.
1118 (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
1119 pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
1120 * tree-ssa-operands.c (ref_nesting_level): Remove.
1121 (add_vars_for_offset): Remove full_ref parameter, always add
1122 the offset of the pointed-to SFT.
1123 (add_virtual_operand): Adjust for changed signature of
1124 add_vars_for_offset.
1126 2007-11-16 Sa Liu <saliu@de.ibm.com>
1128 * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined
1129 floatunssidf2 and floatunsdidf2.
1131 2007-11-16 Richard Guenther <rguenther@suse.de>
1133 PR tree-optimization/34113
1134 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1135 Use correct conversion direction for checking type compatibility.
1137 2007-11-16 Richard Guenther <rguenther@suse.de>
1139 PR tree-optimization/34099
1140 * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
1141 that produce UNDEFINED result if at least one of its operands
1142 is UNDEFINED. By default the result is only UNDEFINED if all
1143 operands are UNDEFINED.
1145 2007-11-16 Jakub Jelinek <jakub@redhat.com>
1148 * gcc.c (init_spec): Don't initialize asm_debug here...
1149 (main): ... but here.
1151 2007-11-07 Tom Tromey <tromey@redhat.com>
1153 * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'.
1154 * tree-parloops.c (create_loop_fn): Use set_cfun.
1155 * gengtype.c (open_base_files): Emit #undef cfun.
1156 * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
1157 * function.h (cfun): New define.
1158 * function.c: Undefine cfun.
1160 2007-11-07 Eric B. Weddington <eweddington@cso.atmel.com>
1162 * config/avr/avr.c (avr_mcu_types): Add attiny88.
1163 * config/avr/avr.h (LINK_SPEC): Likewise.
1164 (CRT_BINUTILS_SPECS): Likewsie.
1165 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1167 2007-11-15 Jakub Jelinek <jakub@redhat.com>
1170 * tree-ssa-ccp.c (optimize_stack_restore): New function.
1171 (execute_fold_all_builtins): Call optimize_stack_restore for
1172 BUILT_IN_STACK_RESTORE.
1174 2007-11-15 Paolo Bonzini <bonzini@gnu.org>
1176 * fwprop.c (try_fwprop_subst): Skip profitability check for forward
1177 propagation into an address; that's done in should_replace_address.
1179 2007-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1181 * config/spu/spu-protos.h (legitimate_const): Remove prototype.
1182 * config/spu/spu.c (legitimate_const): Remove.
1183 (classify_immediate): Inline call to legitimate_const.
1184 (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT
1185 for any constant, not just -512 .. 511.
1187 2007-11-15 Sa Liu <saliu@de.ibm.com>
1189 * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
1190 condition from HONOR_NANS test.
1191 * config/spu/spu.md (ceq_df): Always generate comparison code
1192 inline, including checks for NaNs and infinities.
1194 (cgt_v2df): Likewise.
1195 (cmpdf): Make this expander unconditional.
1197 2007-11-15 Richard Guenther <rguenther@suse.de>
1199 * tree-ssa-alias.c (create_overlap_variables_for): Make sure
1200 to only create SFTs if we also create variable infos for PTA.
1201 * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
1203 2007-11-15 Richard Guenther <rguenther@suse.de>
1205 * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
1206 type for TBAA pruning.
1207 (find_what_p_points_to): Call set_uids_in_ptset with the original
1208 pointer, not the decl of the solution we collapsed to.
1210 2007-11-14 David Daney <ddaney@avtrex.com>
1212 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
1215 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1218 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
1219 for registers in BR_REGS class.
1221 2007-11-14 Jakub Jelinek <jakub@redhat.com>
1224 * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
1225 init_ssa_operands has not been called for cfun.
1227 2007-11-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1229 PR tree-optimization/34046
1230 * cfg.c (update_bb_profile_for_threading): Avoid the division for the
1231 scaling if the old probability is greater than the new base.
1233 2007-11-14 Sebastian Pop <sebastian.pop@amd.com>
1235 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
1236 unused edges after loop duplication.
1238 2007-11-14 Uros Bizjak <ubizjak@gmail.com>
1240 * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
1241 (enum target_cpu_default): ... this enum.
1242 (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ...
1243 * config/i386/i386.c (override_options): ... here.
1244 * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
1245 TARGET_CPU_DEFAULT_i486.
1247 2007-11-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
1249 * global.c (rest_of_handle_global_alloc): Fix comment typos.
1250 * config/sh/sh.c (sh_rtx_costs): Likewise.
1251 * ChangeLog: Likewise.
1253 2007-11-13 Sebastian Pop <sebastian.pop@amd.com>
1255 * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
1256 should not be of pointer type.
1258 2007-11-13 Michael Meissner <michael.meissner@amd.com>
1260 * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
1262 2007-11-13 Sterling Augustine <sterling@tensilica.com>
1263 Bob Wilson <bob.wilson@acm.org>
1265 * config/xtensa/unwind-dw2-xtensa.c: New.
1266 * config/xtensa/unwind-dw2-xtensa.h: New.
1267 * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1268 (DWARF2_UNWIND_INFO): Remove.
1269 (DWARF_FRAME_REGISTERS): Define.
1270 (EH_RETURN_DATA_REGNO): Define.
1271 * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
1273 * config/xtensa/t-xtensa (LIB2ADDEH): Define.
1275 2007-11-13 Jakub Jelinek <jakub@redhat.com>
1277 * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
1278 -fsched-stalled-insns.
1280 PR tree-optimization/34063
1281 * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
1282 as first chrec_fold_plus operand rather than second.
1284 2007-11-13 Diego Novillo <dnovillo@google.com>
1286 PR tree-optimization/33870
1287 * tree.h (strcut tree_memory_tag): Add field unpartitionable.
1288 Remove field in_nested_struct.
1289 (struct tree_struct_field_tag): Add field nesting_level.
1290 (sft_in_nested_struct): Remove.
1291 (sft_nesting_level): Define.
1292 (sft_unpartitionable_p): Define.
1293 * tree-ssa-alias.c (mem_sym_score): If mp->var is not
1294 partitionable, return long_max.
1295 (compute_memory_partitions): Do not partition sfts marked
1297 (create_sft): Add argument nesting_level. Set
1298 sft_nesting_level with it. Update all users.
1299 (create_overlap_variables_for): Show nesting level.
1300 * tree-dfa.c (dump_subvars_for): Likewise.
1301 (dump_variable): Likewise. Show whether the sft is
1302 partitionable or not.
1303 * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
1304 Add field nesting_level.
1305 * tree-ssa-structalias.c (struct variable_info): Remove
1306 field in_nested_struct.
1307 (push_fields_onto_fieldstack): Add argument nesting_level.
1308 Update all users. Update documentation. Update pair->nesting_level
1309 with nesting_level. Make recursive calls with nesting_level + 1.
1310 (set_uids_in_ptset): If an sft is added to the points-to set,
1311 mark it as unpartitionable.
1312 * tree-ssa-operands.c (ref_nesting_level): New.
1313 (add_vars_for_offset): Call it. Add argument full_ref. Update
1314 callers. If var is inside a nested structure and the nesting level
1315 of full_ref is lower than the nesting level of var,
1316 adjust offset by the offset of var.
1318 2007-11-13 Victor Kaplansky <victork@il.ibm.com>
1320 PR tree-optimization/32582
1321 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
1323 2007-11-12 Danny Smith <dannysmith@users.sourceforge.net>
1325 * doc/extend.texi (dllimport): Document that pointers to dllimport'd
1326 functions can be used as constant.
1328 2007-11-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1330 PR rtl-optimization/34035
1331 * cse.c (cse_cfg_altered): New global variable.
1332 (cse_jumps_altered): Make boolean.
1333 (recorded_label_ref): Likewise.
1334 (cse_insn): Adjust for above changes.
1335 (cse_extended_basic_block): Likewise. Set cse_cfg_altered
1336 if dead edges have been purged.
1337 (cse_main): Change return value specification and adjust code.
1338 (rest_of_handle_cse): Adjust for above change.
1339 (rest_of_handle_cse2): Likewise.
1340 * gcse.c (rest_of_handle_gcse): Likewise.
1342 2007-11-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1343 Michael Meissner <michael.meissner@amd.com>
1345 * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
1346 get the appropriate suffix for the coms* instruction.
1347 (sse5_pcmov_<mode>): Restrict operands of pcmov
1348 for scalar case to be only xmm registers and not memory.
1350 * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
1351 constraints to follow the mnemonics for the pcmov instruction
1353 2007-11-12 Richard Sandiford <rsandifo@nildram.co.uk>
1356 * config/mips/mips.c (mips_return_fpr_single): New function.
1357 (mips_function_value): Use it when returning single-field
1359 (mips_expand_call): Handle the PARALLELs created by
1360 mips_return_fpr_single.
1362 2007-11-12 Richard Guenther <rguenther@suse.de>
1365 * fold-const.c (fold_binary): If testing for non-negative
1366 operands with tree_expr_nonnegative_warnv_p make sure to
1367 use op0 which has all (sign) conversions retained.
1369 2007-11-12 Richard Guenther <rguenther@suse.de>
1372 * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
1373 (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
1375 2007-11-12 Ira Rosen <irar@il.ibm.com>
1377 PR tree-optimization/33953
1378 * tree-vect-transform.c (vectorizable_operation): In case of SLP,
1379 allocate vec_oprnds1 according to the number of created vector
1380 statements. In case of shift with scalar argument, store scalar operand
1381 for every vector statement to be created for the SLP node. Fix a
1384 2007-11-10 Steven Bosscher <stevenb.gcc@gmail.com>
1386 * gcse.c (CUID_INSN): Remove.
1388 (alloc_gcse_mem): Don't allocate cuid_insn.
1389 (free_gcse_mem): Don't free cuid_insn.
1391 2007-11-10 Jakub Jelinek <jakub@redhat.com>
1394 * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
1398 * tree-inline.h (copy_body_data): Add regimplify field.
1399 * tree-inline.c (copy_body_r): Set id->regimplify to true
1400 if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
1402 (copy_bb): Clear id->regimplify before walk_tree, if it is
1403 set afterwards, regimplify the whole statement.
1405 PR tree-optimization/33680
1406 * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
1407 if the added cast involves variable length types.
1409 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
1410 Maxim Kuvyrkov <maxim@codesourcery.com>
1412 * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
1413 instead of TRUE_BARRIER for jumps. Add register dependencies
1414 even when reg_pending_barrier is set.
1416 2007-11-09 Alexander Monakov <amonakov@ispras.ru>
1418 * haifa-sched.c (haifa_classify_insn): Rename to ...
1419 (haifa_classify_rtx): ... this. Improve handling of COND_EXECs,
1420 handle PARALLELs by recursing. Use it ...
1421 (haifa_classify_insn): ... here. Reimplement.
1423 2007-11-09 Richard Guenther <rguenther@suse.de>
1425 * bitmap.h (bitmap_single_bit_set_p): Declare.
1426 * bitmap.c (bitmap_single_bit_set_p): New function.
1427 * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
1428 (maybe_create_global_var): Use bitmap_empty_p.
1430 2007-11-09 Paolo Bonzini <bonzini@gnu.org>
1431 Jakub Jelinek <jakub@redhat.com>
1433 PR rtl-optimization/34012
1434 * fwprop.c (try_fwprop_subst): Do not replace if the new
1435 SET_SRC has a higher cost than the old one.
1437 2007-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
1439 PR rtl-optimization/33732
1440 * reload.c (push_reload): Check that the REG_DEAD note was referring
1441 to a hardreg or to a pseudo that has been assigned exactly one hardreg
1442 before considering it in order to select the reload register.
1443 (combine_reloads): Likewise.
1444 (find_dummy_reload): Likewise.
1446 2007-11-09 Richard Guenther <rguenther@suse.de>
1448 * tree-flow.h (struct ptr_info_def): Make escape_mask a
1450 (struct ptr_info_def): Likewise.
1451 (enum escape_type): Also use bit zero.
1453 2007-11-09 Richard Guenther <rguenther@suse.de>
1455 PR tree-optimization/33604
1456 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1457 Disregard changes in CV qualifiers of pointed to types for
1458 forward propagating ADDR_EXPRs.
1459 * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
1462 2007-11-09 Richard Sandiford <rsandifo@nildram.co.uk>
1464 * dse.c (find_shift_sequence): Always choose an integer mode for
1466 (replace_read): Require both the read and store mode to be
1467 integer ones. Remove a then-redundant FLOAT_P check.
1469 2007-11-08 Richard Guenther <rguenther@suse.de>
1471 * tree-dfa.c (remove_referenced_var): If removing a
1472 variable which has subvars, also remove those from
1473 the referenced vars. Do not create a variable annotation.
1475 2007-11-08 Bob Wilson <bob.wilson@acm.org>
1477 * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
1478 argument for gen_entry calls.
1479 * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
1480 (entry): Use the new attribute value. Remove unused first operand.
1482 2007-11-08 Tom Tromey <tromey@redhat.com>
1484 * c-parser.c (c_parser_translation_unit): Use location in error.
1485 (c_parser_external_declaration): Likewise.
1486 (c_parser_declaration_or_fndef): Likewise.
1487 (c_parser_enum_specifier): Likewise.
1488 (c_parser_struct_or_union_specifier): Likewise.
1489 (c_parser_struct_declaration): Likewise.
1490 (c_parser_typeof_specifier): Likewise.
1491 (c_parser_parms_list_declarator): Likewise.
1492 (c_parser_asm_string_literal): Likewise.
1493 (c_parser_braced_init): Likewise.
1494 (c_parser_initelt): Likewise.
1495 (c_parser_compound_statement_nostart): Likewise.
1496 (c_parser_statement_after_labels): Likewise.
1497 (c_parser_do_statement): Likewise.
1498 (c_parser_asm_statement): Likewise.
1499 (c_parser_conditional_expression): Likewise.
1500 (c_parser_unary_expression): Likewise.
1501 (c_parser_sizeof_expression): Likewise.
1502 (c_parser_postfix_expression): Likewise.
1503 (c_parser_postfix_expression_after_paren_type): Likewise.
1504 (c_parser_objc_class_instance_variables): Likewise.
1505 (c_parser_objc_method_definition): Likewise.
1506 (c_parser_objc_methodprotolist): Likewise.
1507 (c_parser_pragma): Likewise.
1508 (c_parser_omp_clause_num_threads): Likewise.
1509 (c_parser_omp_clause_schedule): Likewise.
1510 (c_parser_omp_all_clauses): Likewise.
1511 (c_parser_omp_sections_scope): Likewise.
1512 (c_parser_label): Use location of label, not colon.
1514 2007-11-08 Danny Smith <dannysmith@users.sourceforge.net>
1517 * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
1520 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1523 * ipa-pure-const.c (static_execute): Added code to keep recursive
1524 functions from being marked as pure or const.
1525 * ipa-utils.c (searchc): Fixed comment.
1527 2007-11-08 Tom Tromey <tromey@redhat.com>
1529 * common.opt (fshow-column): Default to 0.
1530 * configure: Rebuilt.
1531 * configure.ac (--enable-mapped-location): Default to 'yes'.
1533 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1535 * common.opt: Add pointer to doc/options.texi.
1536 * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
1537 -fipa-reference): Add or correct doc. Sorted options list for -Os
1540 2007-11-07 Bernhard Fischer <aldot@gcc.gnu.org>
1543 * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
1544 * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
1545 TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS.
1546 (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
1547 (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
1548 * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
1549 to TARGET_BIG_ENDIAN_DEFAULT.
1550 (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
1551 * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
1552 to TARGET_BIG_ENDIAN_DEFAULT.
1554 2007-11-07 Diego Novillo <dnovillo@google.com>
1556 * tree.h (struct tree_struct_field_tag): Move field
1557 in_nested_struct ...
1558 (struct tree_memory_tag): ... here.
1560 2007-11-07 Diego Novillo <dnovillo@google.com>
1563 * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
1564 (SFT_IN_NESTED_STRUCT): Define.
1565 * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
1566 * tree-flow.h (struct fieldoff): Add field in_nested_struct.
1567 * tree-ssa-structalias.c (struct variable_info): Likewise.
1568 (push_fields_onto_fieldstack): If OFFSET is positive,
1569 set in_nested_struct.
1570 (create_variable_info_for): Copy setting of
1571 in_nested_struct from the field offset object.
1572 (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
1573 variable info object.
1574 * tree-ssa-operands.c (add_vars_for_offset): If VAR
1575 belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
1577 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1579 PR rtl-optimization/33737
1580 * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
1581 target block after computing the probabilities of outgoing edges.
1582 Cap the frequency to BB_FREQ_MAX.
1583 * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
1584 frequency of the basic block if it has been reused.
1586 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr>
1588 PR rtl-optimization/33822
1589 * rtl.h (REG_OFFSET): Fix comment.
1590 * var-tracking.c (INT_MEM_OFFSET): New macro.
1591 (var_mem_set): Use it.
1592 (var_mem_delete_and_set): Likewise.
1593 (var_mem_delete): Likewise.
1594 (same_variable_part_p): Likewise.
1595 (vt_get_decl_and_offset): Likewise.
1596 (offset_valid_for_tracked_p): New predicate.
1597 (count_uses): Do not track locations with invalid offsets.
1598 (add_uses): Likewise.
1599 (add_stores): Likewise.
1601 2007-11-07 Tom Tromey <tromey@redhat.com>
1603 * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
1604 (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
1606 2007-11-07 Dmitry Zhurikhin <zhur@ispras.ru>
1607 Andrey Belevantsev <abel@ispras.ru>
1609 * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
1610 generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
1611 (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
1612 Save calculated max_asap in it.
1613 (sms_schedule): Calculate maxii using max_asap.
1615 2007-11-07 Andreas Krebbel <krebbel1@de.ibm.com>
1617 * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
1618 with -mhard-dfp/-mno-hard-dfp.
1620 2007-11-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1621 Jakub Jelinek <jakub@redhat.com>
1624 * haifa-sched.c (check_sched_flags): Remove.
1625 (sched_init): Don't call it.
1627 2007-11-06 Diego Novillo <dnovillo@google.com>
1629 * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
1630 * tree-ssa-operands.c: Tidy top-level comments.
1631 (add_vop): Likewise.
1632 (add_vars_for_offset): Tidy parameter formatting..
1633 (get_addr_dereference_operands): Likewise.
1634 (get_indirect_ref_operands): Likewise.
1635 (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
1636 <OMP_ATOMIC_STORE>: Likewise.
1638 2007-11-06 Rask Ingemann Lambertsen <rask@sygehus.dk>
1641 * config/i386/driver-i386.c: Test for __GNUC__ instead of
1642 GCC_VERSION which is always defined.
1644 2007-11-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1647 * reload1.c (find_reloads): Also check in_reg when handling a
1648 simple move with an input reload and a destination of a hard register.
1650 2007-11-06 Maxim Kuvyrkov <maxim@codesourcery.com>
1652 * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
1653 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
1654 TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
1655 TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1656 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
1657 (m68k_sched_attr_type2): New function.
1658 (sched_adjust_cost_state): New static variable.
1659 (m68k_sched_adjust_cost): New static function implementing
1661 (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
1662 New static variables.
1663 (m68k_sched_variable_issue): New static function implementing
1665 (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
1666 (sched_dump_split_class): New static function.
1667 (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
1669 (sched_dump_dfa_class, m68k_sched_dump): New static function.
1670 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1671 m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
1672 m68k_sched_dfa_post_advance_cycle): New static functions implementing
1675 * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
1676 (CPU_UNITS_QUERY): Define.
1678 * config/m68k/cf.md: New file.
1679 * config/m68k/m68.md (cf.md): New include.
1681 2007-11-06 Tom Tromey <tromey@redhat.com>
1683 PR c++/32256, PR c++/32368:
1684 * function.c (saved_in_system_header): New global.
1685 (push_cfun): Save in_system_header.
1686 (pop_cfun): Restore in_system_header.
1687 (push_struct_function): Save in_system_header.
1689 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
1693 * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
1694 (complete_array_type): Set canonical type appropriately.
1695 * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
1696 C and C++ front ends now have different versions of this function,
1697 because the C++ version needs to maintain canonical types here.
1699 2007-11-04 Razya Ladelsky <razya@il.ibm.com>
1701 * tree-parloops.c (reduction_info): Remove reduction_init field.
1702 (initialize_reductions): Remove creation of the reduction_init variable.
1703 (struct data_arg): Remove.
1704 (add_field_for_reduction, create_stores_for_reduction): New functions.
1705 (add_field_for_name): Remove reduction handling.
1706 (separate_decls_in_loop): Call add_field_for_reduction,
1707 create_stores_for_reduction.
1709 2007-11-06 Jakub Jelinek <jakub@redhat.com>
1711 PR tree-optimization/33458
1712 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
1713 !is_gimple_val PHI argument, gimplify it and insert it on edge.
1715 PR tree-optimization/33993
1716 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
1717 rather than build_constructor_from_list if all list values are
1719 (get_initial_def_for_induction): Use build_vector instead of
1720 build_constructor_from_list.
1722 2007-11-05 Mark Mitchell <mark@codesourcery.com>
1725 * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
1726 (DECL_FINI_PRIORITY): Likewise.
1727 * tree.c (decl_init_priority_lookup): Remove assert.
1728 (decl_fini_priority_insert): Likewise.
1729 * cgraphunit.c (static_ctors): Make it a VEC.
1730 (static_dtors): Likewise.
1731 (record_cdtor_fn): Adjust accordingly.
1732 (build_cdtor): Generate multiple functions for each initialization
1734 (compare_ctor): New function.
1735 (compare_dtor): Likewise.
1736 (cgraph_build_cdtor_fns): Sort the functions by priority before
1737 calling build_cdtor.
1738 (cgraph_build_static_cdtor): Put the priority in the function's name.
1740 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
1743 * common.opt: Add shared and pie.
1745 2007-11-05 Bob Wilson <bob.wilson@acm.org>
1747 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
1748 replace references to virtual_stack_vars_rtx in goto_handler.
1750 2007-11-05 Paul Brook <paul@codesourcery.com>
1752 * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
1753 * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
1754 (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call
1755 arm_lang_output_object_attributes_hook.
1756 * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
1757 (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
1758 * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
1760 * config/arm/t-arm.c (arm.o): New rule.
1761 * config/arm/arm-c.c: New file.
1763 2007-11-05 Nick Clifton <nickc@redhat.com>
1764 Sebastian Pop <sebastian.pop@amd.com>
1766 PR tree-optimization/32540
1767 PR tree-optimization/33922
1768 * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
1769 * tree-ssa-pre.c: Include params.h.
1770 (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
1771 to limit the maximum length of the PA set for a given block.
1772 * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
1773 * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
1775 2007-11-05 Nathan Sidwell <nathan@codesourcery.com>
1777 * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1778 __fixunssfDI): Make return type unsigned.
1779 * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1780 __fixunssfDI): Make return type unsigned.
1782 2007-11-05 Jakub Jelinek <jakub@redhat.com>
1784 PR tree-optimization/33856
1785 * tree-data-ref.c (get_references_in_stmt): Don't add
1786 REFERENCE_CLASS_P trees to references vector if get_base_address
1787 returns NULL on them.
1789 2007-11-05 Alexandre Oliva <aoliva@redhat.com>
1791 * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
1793 2007-11-04 Andrew Pinski <pinskia@gmail.com>
1796 * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
1797 for TRUTH_NOT_EXPR to type.
1799 2007-11-04 Gerald Pfeifer <gerald@pfeifer.com>
1801 * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
1803 2007-11-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1806 * dwarf2out.c (add_calling_convention_attribute): Change
1807 second argument. Set calling convention to DW_CC_program for
1808 Fortran main program.
1809 (gen_subprogram_die): Adjust to new prototype for
1810 add_calling_convention_attribute.
1812 2007-11-03 Dorit Nuzman <dorit@il.ibm.com>
1814 PR tree-optimization/33987
1815 * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
1817 (vectorizable_reduction): Add type check.
1819 2007-11-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1822 * c-parser.c (c_parser_statement_after_labels): Error if a
1823 declaration is parsed after a label.
1825 2007-11-03 Daniel Jacobowitz <dan@codesourcery.com>
1828 * reorg.c (emit_delay_sequence): Do not clear the locator on
1829 the jump instruction.
1831 2007-11-03 Jakub Jelinek <jakub@redhat.com>
1834 * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
1835 current sched region.
1837 2007-11-02 Jakub Jelinek <jakub@redhat.com>
1839 * config/ia64/ia64.c (struct reg_write_state): Change into
1840 unsigned short bitfields rather than unsigned int, decrease
1841 first_pred to just 10 bits.
1842 (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
1843 into two char array.
1844 (rws_insn_set, rws_insn_test): New functions.
1845 (in_safe_group_barrier): New variable.
1846 (rws_update): Remove first argument, always set rws_sum array.
1847 (rws_access_regno): Use rws_insn_set macro. Only call rws_update
1848 or update rws_sum if !in_safe_group_barrier, adjust rws_update
1850 (rtx_needs_barrier): Use rws_insn_test macro.
1851 (safe_group_barrier_needed): Don't save/restore rws_sum array,
1852 instead set/clear in_safe_group_barrier flag.
1854 2007-11-02 Bob Wilson <bob.wilson@acm.org>
1856 * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
1857 REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
1858 pointer or frame pointer.
1859 * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
1860 (MUST_USE_SJLJ_EXCEPTIONS): Define.
1861 (DWARF2_UNWIND_INFO): Define.
1862 (INCOMING_RETURN_ADDR_RTX): Define.
1863 (DWARF_FRAME_RETURN_COLUMN): Define.
1865 2007-11-02 Tom Tromey <tromey@redhat.com>
1867 * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
1870 2007-11-02 Diego Novillo <dnovillo@google.com>
1872 * langhooks.h (struct lang_hooks_for_callgraph): Remove third
1873 argument from function pointer ANALYZE_EXPR. Update all users.
1874 * cgraph.c (debug_cgraph_node): New.
1875 (debug_cgraph): New.
1877 2007-11-02 Jakub Jelinek <jakub@redhat.com>
1879 PR rtl-optimization/33648
1880 * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
1881 the newly created basic block.
1883 2007-11-01 Richard Guenther <rguenther@suse.de>
1885 * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
1887 2007-11-01 Steven Bosscher <stevenb.gcc@gmail.com>
1889 PR rtl-optimization/33828
1890 * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
1891 of VBEIN and VBEOUT.
1893 2007-11-01 Eric Botcazou <ebotcazou@libertysurf.fr>
1895 * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
1896 * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
1897 * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
1899 2007-11-01 Nathan Sidwell <nathan@codesourcery.com>
1901 * gcc.c (getenv_spec_function): Escape the environment variable's
1904 2007-11-01 Janis Johnson <janis187@us.ibm.com>
1906 * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
1907 show that CSE means common subexpression elimination. Change wording
1908 for -fsee and define LCM. Remove capitalization of optimizations
1909 for -ftree-reassoc, -ftree-pre, and -ftree-fre.
1911 2007-11-01 Janis Johnson <janis187@us.ibm.com>
1914 * doc/sourcebuild.texi (Test Directives): Document that xfail
1915 has no effect for dg-do except when dg-do-what is "run".
1917 2007-11-01 Tom Tromey <tromey@redhat.com>
1919 * c-decl.c (grokdeclarator): Set decl source locations.
1920 * c-parser.c (c_parser_enum_specifier): Set location.
1921 (c_parser_struct_or_union_specifier): Likewise.
1923 2007-11-01 Tom Tromey <tromey@redhat.com>
1925 * print-tree.c (print_node): Print column number.
1927 2007-11-01 Jakub Jelinek <jakub@redhat.com>
1930 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
1931 gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
1932 rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
1934 PR rtl-optimization/33673
1935 * gcse.c (cprop_jump): If a conditional jump has been optimized
1936 into unconditional jump, make the remaining normal edge fallthru
1937 and delete the jump insn.
1939 2007-11-01 Ben Elliston <bje@au.ibm.com>
1941 * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
1942 (set_mem_attrs_from_reg): Likewise.
1944 2007-11-01 Michael Matz <matz@suse.de>
1946 PR tree-optimization/33961
1947 * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
1948 (name_to_bb_hash, name_to_bb_eq): Consider and check it.
1949 (add_or_mark_expr): New argument 'store', using it to search
1951 (nt_init_block): Adjust calls to add_or_mark_expr.
1953 2007-10-31 Jakub Jelinek <jakub@redhat.com>
1956 * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
1957 for the first push_operand.
1959 2007-10-31 Revital Eres <eres@il.ibm.com>
1961 * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
1962 reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
1963 vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
1964 movmisalignv2sf, vcondv2sf): New.
1965 (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
1966 UNSPEC_EXTODD_V2SF): Define new constants.
1967 * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
1968 paired_emit_vector_cond_expr): New.
1969 * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
1970 * config/rs6000/rs6000.c (paired_expand_vector_move,
1971 paired_emit_vector_cond_expr, paired_emit_vector_compare):
1973 * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
1975 2007-10-31 Sebastian Pop <sebastian.pop@amd.com>
1977 PR tree-optimization/32377
1978 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
1979 work also for unknown number of iterations.
1980 (analyze_subscript_affine_affine): Clean up. Don't fail when the
1981 number of iterations is not known.
1983 2007-10-31 Richard Guenther <rguenther@suse.de>
1986 * fold-const.c (extract_muldiv_1): Make sure to not introduce
1987 new undefined integer overflow.
1988 (fold_binary): Avoid useless conversion.
1990 2007-10-31 Richard Sandiford <rsandifo@nildram.co.uk>
1993 * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
1995 2007-10-31 Andreas Krebbel <krebbel1@de.ibm.com>
1997 * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
1999 * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
2000 with -mhard-dfp/-mno-hard-dfp.
2001 * config/s390/s390.opt: Likewise.
2002 * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2005 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2007 * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2009 2007-10-30 Janis Johnson <janis187@us.ibm.com>
2011 * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2012 optimization options.
2013 (Optimize Options): Add -fdce and -fdse to the list of optimizations
2014 enabled by -O. Document -fdce and -fdse.
2016 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2019 * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2020 convert second operand of COMPOUND_EXPR to the original type of
2023 2007-10-30 Richard Guenther <rguenther@suse.de>
2025 * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2026 of loop adding SFTs as virtual operands.
2028 2007-10-30 Richard Guenther <rguenther@suse.de>
2030 * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2032 2007-10-29 Dorit Nuzman <dorit@il.ibm.com>
2034 PR tree-optimization/32893
2035 * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2036 STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2038 2007-10-29 Rask Ingemann Lambertsen <rask@sygehus.dk>
2040 * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2042 (sub_ddmmss): Likewise.
2043 (umul_ppmm): Likewise.
2044 (udiv_qrnnd): Likewise.
2046 2007-10-29 Janis Johnson <janis187@us.ibm.com>
2049 * doc/sourcebuild.texi (Test Directives): Document that dg-require
2050 directives must come before dg-additional-sources.
2052 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2054 PR tree-optimization/33723
2055 * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2056 MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2058 2007-10-29 Richard Sandiford <rsandifo@nildram.co.uk>
2060 PR tree-optimization/33614
2061 * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2062 if they can't be reduced to VECTOR_CSTs and aren't legitimate
2063 initializer constants.
2065 2007-10-29 Richard Guenther <rguenther@suse.de>
2067 PR tree-optimization/33870
2068 * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2069 (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2072 2007-10-29 Richard Guenther <rguenther@suse.de>
2074 * passes.c (init_optimization_passes): Exchange store_copy_prop
2076 * tree-pass.h (pass_store_copy_prop): Remove.
2077 * tree-ssa-copy.c (do_store_copy_prop): Remove.
2078 (stmt_may_generate-copy): Do not handle store_copy_prop.
2079 (get_copy_of_val): Likewise.
2080 (set_copy_of_val): Likewise.
2081 (copy_prop_visit_assignment): Likewise.
2082 (copy_prop_visit_stmt): Likewise.
2083 (copy_prop_visit_phi_node): Likewise.
2084 (init_copy_prop): Likewise.
2085 (execute_copy_prop): Likewise.
2086 (do_copy_prop): Remove.
2087 (gate_store_copy_prop): Likewise.
2088 (store_copy_prop): Likewise.
2089 (pass_store_copy_prop): Likewise.
2090 (pass_copy_prop): Call execute_copy_prop.
2091 * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2092 * common.opt (ftree-store-copy-prop): Mark obsolete.
2093 * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2095 2007-10-29 Ian Lance Taylor <iant@google.com>
2097 * ifcvt.c (noce_can_store_speculate_p): New static function.
2098 (noce_process_if_block): Call it.
2099 (if_convert): Remove recompute_dominance parameter. Change all
2102 2007-10-29 Richard Guenther <rguenther@suse.de>
2104 * tree-flow-inline.h (get_subvar_at): Use binary search.
2105 (get_first_overlapping_subvar): New function to binary search
2106 for the first overlapping subvar.
2107 * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2108 just handle adding subvars for a pointed-to subvar. Optimize
2109 and use get_first_overlapping_subvar.
2110 (add_vars_for_bitmap): Fold into single caller.
2111 (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2112 and non pointed-to bits of add_vars_for_offset.
2114 2007-10-29 Revital Eres <eres@il.ibm.com>
2116 * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2118 2007-10-29 Razya Ladelsky <razya@il.ibm.com>
2119 Zdenek Dvorak <ook@ucw.cz>
2122 reduction support for automatic parallelization.
2124 * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2126 * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2127 * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2128 and OMP_ATOMIC_STORE.
2129 * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2130 * gimple-low.c (lower_stmt): Same.
2131 * gimplify.c (gimplify_expr): Same.
2132 (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2133 gimplify_omp_atomic_mutex): Remove.
2134 (gimplify_omp_atomic): Change it to simply gimplify the
2135 statement instead of expanding it.
2136 * omp-low.c: Add includes to optabs.h, cfgloop.h.
2137 (expand_omp_atomic, expand_omp_atomic_pipeline,
2138 goa_stabilize_expr, expand_omp_atomic_mutex,
2139 expand_omp_atomic_fetch_op): New functions to implement
2140 expansion of OMP_ATOMIC.
2141 (expand_omp, build_omp_regions_1): Add support for
2142 OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2143 * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2145 * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2147 * tree-parloops.c: add include to tree-vectorizer.h.
2148 (reduction_info): New structure for reduction.
2149 (reduction_list): New list to represent list of reductions per loop.
2150 (struct data_arg): New helper structure for reduction.
2151 (reduction_info_hash, reduction_info_eq, reduction_phi,
2152 initialize_reductions, create_call_for_reduction,
2153 create_phi_for_local_result, create_call_for_reduction_1,
2154 create_loads_for_reductions, create_final_loads_for_reduction):
2156 (loop_parallel_p): Identify reductions, add reduction_list parameter.
2157 (separate_decls_in_loop_name): Support reduction variables.
2158 (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2159 call create_loads_for_reduction for each reduction.
2160 (canonicalize_loop_ivs): Identify reductions, add reduction_list
2162 (transform_to_exit_first_loop): Add reduction support, add
2163 reduction_list parameter.
2164 (gen_parallel_loop): Add reduction_list parameter. Add call
2165 separate_decls_in_loop with
2166 the new argument. Traverse reductions and call
2167 initialize_reductions, create_call_for_reduction.
2168 (parallelize_loops): Create and delete the reduction list.
2169 (add_field_for_name): Change use of data parameter. Add fields for
2171 * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2172 * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2173 * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2174 * tree-inline.c (estimate_num_insns_1): add cases for
2175 OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2176 * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2177 * tree-ssa-operands.c (get_addr_dereference_operands):
2178 New function. Subroutine of get_indirect_ref_operands.
2179 (get_indirect_ref_operands): Call get_addr_dereference_operands.
2180 (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2183 2007-10-29 Hans-Peter Nilsson <hp@axis.com>
2185 * config/cris/cris.c: Include df.h.
2186 (cris_address_cost): Add gcc_assert for canonicalization
2187 assumptions. For PLUS with MULT or register, correct
2188 test for register in other arm. Tweak comments.
2190 2007-10-28 Richard Guenther <rguenther@suse.de>
2192 * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2193 telling if the var is to be treated as points-to location.
2194 (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2195 (add_virtual_operand): Only recurse into MPTs if aliases
2198 2007-10-28 Richard Guenther <rguenther@suse.de>
2200 * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2201 (add_vars_for_bitmap): Do not recurse further. Only add vars
2202 for pointed-to SFTs.
2203 (add_virtual_operand): Re-instantiate loop to add operands for
2204 aliases. Recurse into MPTs.
2205 (get_indirect_ref_operands): If we fall back to use a pointers
2206 SMT, make sure to not prune based on the access offset and size.
2208 2007-10-28 Andrew Pinski <pinskia@gmail.com>
2211 * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2212 the eh information on the statement.
2214 2007-10-28 Richard Guenther <rguenther@suse.de>
2216 * tree-flow.h (subvar_t): Make it a VEC.
2217 (struct subvar): Remove.
2218 (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2219 * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2221 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2222 * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2223 * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2224 (set_initial_properties): Likewise.
2225 (setup_pointers_and_addressables): Likewise.
2226 (new_type_alias): Likewise.
2227 (create_overlap_variables_for): Likewise.
2228 * tree-dfa.c (dump_subvars_for): Likewise.
2229 * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2230 (get_expr_operands): Likewise.
2231 (add_to_addressable_set): Likewise.
2232 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2234 2007-10-28 Uros Bizjak <ubizjak@gmail.com>
2236 PR tree-optimization/33920
2237 * tree-if-conv.c (tree_if_conversion): Force predicate of single
2238 successor bb to true when predecessor bb has NULL predicate.
2239 (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2241 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2243 * config/mips/mips.md: Add combiner patterns for DImode extensions
2244 of HImode and QImode truncations. Reformat HImode <- QImode pattern
2247 2007-10-28 Richard Sandiford <rsandifo@nildram.co.uk>
2250 * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2252 2007-10-28 Andreas Krebbel <krebbel1@de.ibm.com>
2254 * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2255 LIBCALL notes if they are about to be moved to the same insn.
2257 2007-10-27 Richard Guenther <rguenther@suse.de>
2259 PR tree-optimization/33870
2260 * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2261 duplication. Remove redundant call to access_can_touch_variable.
2262 (add_vars_for_bitmap): New helper for recursing over MPT contents.
2263 (add_virtual_operand): Use it.
2265 2007-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2268 * pa.h (ASM_PN_FORMAT): Delete define.
2270 2007-10-26 Janis Johnson <janis187@us.ibm.com>
2272 * doc/invoke.texi (Option Summary, optimizations): Remove
2273 -fbounds-check. Add -fassociative-math, -freciprocal-math,
2274 -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to
2275 -fsplit-wide-types to match later entry. Break up a long line.
2276 (Option Summary, code gen options) Add -fno-stack-limit. Add
2277 missing @gol to the end of a line.
2278 (Optimization Options): Remove -fbounds-check, which is also
2279 documented under Code Generation Options. Remove =n from
2280 index entry for -ftree-parallelize-loops. Change -fno-cprop-registers
2281 to -fcprop-registers to match other options, and say when it is
2282 enabled rather than disabled. Remove extra index entry for
2283 -fno-cx-limited-range. Add index entries for -fstack-protector
2284 and -fstack-protector-all.
2285 (Code Gen Options): Add index entry for -ftls-model.
2287 2007-10-26 Anatoly Sokolov <aesok@post.ru>
2289 * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2290 (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2291 (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2292 expand_epilogue, output_movhi): Don't handle 'main' function.
2293 (avr_attribute_table): Add 'OS_task' function attribute.
2294 * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2296 * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2297 (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2299 * config/avr/avr.opt (minit-stack): Remove.
2301 2007-10-26 Eric Botcazou <ebotcazou@adacore.com>
2303 * tree-nested.c (get_trampoline_type): Fix thinko.
2305 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
2308 * tree.c (build_offset_type): Build canonical type based on the
2309 TYPE_MAIN_VARIANT of the base type.
2311 2007-10-26 Daniel Jacobowitz <dan@codesourcery.com>
2313 * reorg.c (emit_delay_sequence): Move insn locator from the
2314 first insn to the sequence.
2316 2007-10-26 Samuel Tardieu <sam@rfc1149.net>
2318 * ipa-pure-const.c (check_decl): Return immediately when
2319 pure_const_state has been set to IPA_NEITHER.
2321 2007-10-25 Ira Rosen <irar@il.ibm.com>
2323 PR tree-optimization/33833
2324 * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
2325 and convert init to sizetype in inner_base construction.
2327 2007-10-25 Richard Guenther <rguenther@suse.de>
2329 * tree-flow.h (mem_sym_stats): Remove.
2330 (dump_mem_sym_stats_for_var): Declare.
2331 * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
2332 (mem_sym_stats): Move ...
2333 * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
2334 (mem_sym_score): Rename from ...
2335 (pscore): ... this. Remove.
2336 (dump_mem_sym_stats_for_var): New function. Dump the score, but
2337 not the frequencies.
2338 (compare_mp_info_entries): Make sort stable by disambiguating
2341 2007-10-25 Ira Rosen <irar@il.ibm.com>
2343 PR tree-optimization/33866
2344 * tree-vect-transform.c (vectorizable_store): Check operands of all
2345 the stmts in the group of strided accesses. Get def stmt type for each
2346 store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
2348 2007-10-25 Uros Bizjak <ubizjak@gmail.com>
2350 * config/i386/constraints.md (Y0): Rename register constraint to Yz.
2351 (Yt): Rename register constraint to Y2.
2352 * config/i386/sse.md: Use renamed register constraints.
2353 * config/i386/mmx.md: Ditto.
2354 * config/i386/i386.md: Ditto.
2356 2007-10-25 Rask Ingemann Lambertsen <rask@sygehus.dk>
2358 * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
2360 2007-10-24 Chao-ying Fu <fu@mips.com>
2362 * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
2363 DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
2365 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
2366 Olga Golovanevsky <olga@il.ibm.com>
2368 * ipa-struct-reorg.c (replace_field_acc): Make it clear to
2369 the compiler that wr.wrap and wr.domain are initialized in
2372 2007-10-24 Samuel Tardieu <sam@rfc1149.net>
2374 * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
2375 to print gcov_type values.
2377 2007-10-24 Eric B. Weddington <eweddington@cso.atmel.com>
2379 * config/avr/avr.h: Do not include progmem_section definition when
2380 building with IN_TARGET_LIBS.
2382 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
2385 * config/mips/mips.c (mips_lo_sum_offset): New structure.
2386 (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
2387 (mips_lo_sum_offset_lookup, mips_record_lo_sum)
2388 (mips_orphaned_high_part_p: New functions.
2389 (mips_avoid_hazard): Don't check INSN_P here.
2390 (mips_avoid_hazards): Rename to...
2391 (mips_reorg_process_insns): ...this. Cope with
2392 !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations,
2393 or turn them into nops.
2394 (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
2395 dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
2396 (mips_set_mips16_mode): Don't set flag_delayed_branch here.
2397 (mips_override_options): Set flag_delayed_branch to 0.
2399 2007-10-24 Richard Sandiford <rsandifo@nildram.co.uk>
2401 * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
2402 MIPS-specific implementation details.
2403 (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
2404 (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
2405 (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
2406 for targets with movmemsi.
2407 (MOVE_BY_PIECES_P): Define.
2408 * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
2409 (mips_block_move_loop): Add a bytes_per_iter argument.
2410 (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
2411 Update call to mips_block_move_loop.
2413 2007-10-24 Michael Matz <matz@suse.de>
2416 * var-tracking.c (variable_union): Don't break after one loop
2417 iteration but only when a difference is found.
2418 (dump_variable): Also print DECL_UID.
2420 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
2422 * ipa-type-escape.h: Expose function
2423 is_array_access_through_pointer_and_index.
2425 (is_array_access_through_pointer_and_index):
2426 Add three new parameters. Add support of
2427 POINTER_PLUS_EXPR tree code.
2429 2007-10-24 Olga Golovanevsky <olga@il.ibm.com>
2431 * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
2432 * tree-pass.h: Add pass_ipa_struct_reorg.
2433 * common.opt: Add ipa-struct-reorg flag.
2434 * Makefile.in: Add ipa-strcut-reorg.o compilation.
2435 * passes.c: Add pass pass_ipa_struct_reorg.
2436 * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO.
2437 * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
2439 2007-10-24 Ira Rosen <irar@il.ibm.com>
2441 PR tree-optimization/33804
2442 * tree-vect-transform.c (vectorizable_operation): Remove the
2443 checks that the vectorization is worthwhile from the transformation
2446 2007-10-24 Ira Rosen <irar@il.ibm.com>
2448 * tree-vect-analyze.c (vect_build_slp_tree): Return false if
2449 vectype cannot be determined for the scalar type.
2450 (vect_analyze_slp_instance): Likewise.
2451 * tree-vect-transform.c (vect_model_reduction_cost): Change the
2452 return type to bool. Return false if vectype cannot be determined
2453 for the scalar type.
2454 (vect_get_constant_vectors): Return false if vectype cannot be
2455 determined for the scalar type.
2456 (get_initial_def_for_induction, vect_get_vec_def_for_operand,
2457 get_initial_def_for_reduction, vect_create_epilog_for_reduction,
2458 vectorizable_reduction): Likewise.
2460 2007-10-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
2462 * config.gcc: For a FreeBSD target, parse the value of ${target}
2463 to determine the value of FBSD_MAJOR, instead of adding an
2464 explicit check for every possible FreeBSD major version.
2466 2007-10-23 Uros Bizjak <ubizjak@gmail.com>
2468 PR rtl-optimization/33846
2469 * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
2471 2007-10-23 Dorit Nuzman <dorit@il.ibm.com>
2473 PR tree-optimization/33860
2474 * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
2475 interleaved accesses in case the dr is inside the inner-loop during
2476 outer-loop vectorization.
2478 2007-10-23 Eric Botcazou <ebotcazou@libertysurf.fr>
2480 * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
2481 Document MEM_POINTER. Replace mentions of "integrated"
2482 field with "return_val". Delete outdated stuff.
2484 2007-10-23 David Edelsohn <edelsohn@gnu.org>
2486 * config/rs6000/rs6000.c (rs6000_override_options): Set
2487 rs6000_altivec_abi on AIX.
2488 (conditional_register_usage): Set VR20:31 fixed on AIX.
2490 2007-10-23 Richard Guenther <rguenther@suse.de>
2492 * alias.c (get_alias_set): For INDIRECT_REFs, deal with
2495 2007-10-22 Seongbae Park <seongbae.park@gmail.com>
2496 David S. Miller <davem@davemloft.net>
2498 * df-scan.c (df_get_call_refs): Mark global registers as both a
2499 DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
2501 2007-10-22 Dorit Nuzman <dorit@il.ibm.com>
2503 PR tree-optimization/33834
2504 PR tree-optimization/33835
2505 * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
2506 stmts need to be checked for success seperately.
2507 * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
2508 Remove the check that stmt is not LIVE.
2509 (vectorizable_assignment, vectorizable_induction): Likewise.
2510 (vectorizable_operation, vectorizable_type_demotion): Likewise.
2511 (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
2513 (vectorizable_live_operation): Check that op is not NULL.
2515 2007-10-22 Janis Johnson <janis187@us.ibm.com>
2517 * doc/invoke.texi (Optimization Options): In the summary, show
2518 that the value for options -falign-jumps, -falign-labels,
2519 -falign-loops, -falign-functions, -fsched-stalled-insns, and
2520 -fsched-stalled-insns-dep is optional. In the summary, show that
2521 -fsched-stalled-insns takes an optional argument and that
2522 -fparallelize-loops takes an argument. Add opindex for several
2523 optimization options, and fix typos in the opindex commands for
2524 several others. In the descriptions for -fsched-stalled-insns
2525 and -fsched-stalled-insns-dep, show the options with and without
2528 2007-10-22 Eric B. Weddington <eweddington@cso.atmel.com>
2530 * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
2532 * config/avr/avr.h (LINK_SPEC): Likewise.
2533 (CRT_BINUTILS_SPECS): Likewsie.
2534 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2536 2007-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2538 PR rtl-optimization/33644
2539 * cfgcleanup.c: Do not include dce.h.
2540 * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
2541 * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
2542 * dce.c (something_changed): Delete.
2543 (libcall_dead_p): New predicate.
2544 (delete_unmarked_insns): Use it to delete dead libcalls.
2545 Deal with REG_LIBCALL and REG_RETVAL notes.
2546 (prescan_libcall_for_dce): New function.
2547 (prescan_insns_for_dce): Use it to deal with libcalls.
2548 (mark_reg_dependencies): Do nothing special for libcalls.
2549 (dce_process_block): Likewise.
2550 (fast_dce): Delete unused local variable.
2551 (run_fast_dce): Do not return a value.
2552 * dce.h (struct df): Delete.
2553 (run_fast_dce): Adjust prototype.
2554 * optabs.c (libcall_id): Delete.
2555 (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
2556 (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
2557 * reload1.c (reload): Delete REG_LIBCALL_ID case.
2558 * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
2559 * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
2560 notes instead of REG_LIBCALL_ID notes.
2561 * reg-notes.def (LIBCALL_ID): Delete.
2562 * Makefile.in (see.o): Add dce.h dependency.
2563 (cfgcleanup.o): Remove dce.h dependency.
2565 2007-10-22 Michael Matz <matz@suse.de>
2567 PR tree-optimization/33855
2568 * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
2571 2007-10-22 Ira Rosen <irar@il.ibm.com>
2573 PR tree-optimization/33854
2574 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
2575 FLOAT_EXPR to the list of promotion operations.
2577 2007-10-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
2581 * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
2582 (print_reg): Print register prefix only with AT&T asm syntax.
2583 Support pc_rtx for RIP register.
2584 (print_operand_address): Use print_reg()'s pc_rtx support for RIP
2585 relative addressing. Always print segment register prefix with AT&T
2586 asm syntax and never with Intel asm syntax.
2587 (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands.
2588 Fix prefix for 16-byte XFmode operands.
2589 (output_addr_const_extra): Support Intel asm syntax.
2590 (x86_file_start): Don't use register prefix with Intel asm syntax.
2591 * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
2592 ("return_internal_long"): Fix Intel asm syntax output.
2593 ("set_got_rex64"): Support Intel asm syntax.
2594 ("set_rip_rex64"): Likewise.
2595 ("set_got_offset_rex64"): Likewise.
2596 ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
2598 ("*tls_global_dynamic_64"): Likewise.
2599 ("*tls_local_dynamic_base_64"): Likewise.
2600 ("*load_tp_si")("*load_tp_di"): Likewise.
2601 ("*add_tp_si")("*add_tp_di"): Likewise.
2602 ("*tls_dynamic_lea_64"): Likewise.
2603 ("*sibcall_value_1_rex64_v"): Likewise.
2604 ("stack_tls_protect_set_si"): Likewise.
2605 ("stack_tls_protect_set_di"): Likewise.
2606 ("stack_tls_protect_test_si"): Likewise.
2607 ("stack_tls_protect_test_di"): Likewise.
2608 * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
2610 ("*movv2sf_internal_rex64"): Likewise.
2611 * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
2612 (__get_cpuid_max): Likewise.
2614 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2616 * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
2617 the STRICT_P argument type "bool" rather than "int".
2618 (mips_legitimate_address_p): Likewise.
2619 (fp_register_operand, lo_operand): Delete.
2620 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2621 (mips_emit_scc): Rename to...
2622 (mips_expand_scc): ...this.
2623 (gen_conditional_branch): Rename to...
2624 (mips_expand_conditional_branch): ...this.
2625 (gen_conditional_move): Rename to...
2626 (mips_expand_conditional_move): ...this.
2627 (mips_gen_conditional_trap): Rename to...
2628 (mips_expand_conditional_trap): ...this and take an rtx code instead
2629 of an operands array.
2630 (mips_expand_call): Give the SIBCALL_P argument type "bool"
2632 (mips_emit_fcc_reload): Rename to...
2633 (mips_expand_fcc_reload): ...this.
2634 (init_cumulative_args): Rename to...
2635 (mips_init_cumulative_args): ...this and remove the libname argument.
2636 (function_arg_advance): Rename to...
2637 (mips_function_arg_advance): ...this.
2638 (function_arg): Rename to...
2639 (mips_function_arg): ...this and use "rtx" instead of
2641 (function_arg_boundary): Rename to...
2642 (mips_function_arg_boundary): ...this.
2643 (mips_expand_unaligned_load): Rename to...
2644 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2645 and BITPOS arguments type "HOST_WIDE_INT".
2646 (mips_expand_unaligned_store): Rename to...
2647 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2648 and BITPOS arguments type "HOST_WIDE_INT".
2649 (override_options): Rename to...
2650 (mips_override_options): ...this.
2651 (print_operand): Rename to...
2652 (mips_print_operand): ...this.
2653 (print_operand_address): Rename to...
2654 (mips_print_operand_address): ...this.
2655 (mips_output_ascii): Remove the PREFIX argument.
2656 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2658 (mips_can_use_return_insn): Return a "bool" rather than an "int".
2659 (mips_function_value): Remove the FUNC argument. Use "rtx" instead
2660 of "struct rtx_def *".
2661 (mips_secondary_reload_class): Give the IN_P argument type "bool"
2663 (build_mips16_call_stub): Delete.
2664 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2665 (mips_use_ins_ext_p): Give the second and third arguments type
2666 "HOST_WIDE_INT" rather than "rtx".
2667 * config/mips/mips.h: Update after the above changes. Tweak comments
2669 (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
2670 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2671 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2672 element type from "char" to "bool".
2673 (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
2674 (mips_cpu_info_table): Delete.
2675 * config/mips/mips.md: Update after the above changes. Tweak some
2677 * config/mips/mips-ps-3d.md: Likewise.
2678 * config/mips/mips.c: Tweak comments and formatting.
2679 Use NULL-like macros rather than 0 in various places.
2680 (mips_section_threshold): Rename to...
2681 (mips_small_data_threshold): ...this and give it an unsigned type.
2682 (num_source_filenames): Remove explicit initialization.
2683 (sdb_label_count): Likewise.
2684 (sym_lineno): Delete.
2685 (set_noat): Make static.
2686 (mips_branch_likely): Likewise, and give it type "bool".
2687 (mips_isa_info): Rename to...
2688 (mips_isa_option_info): ...this.
2689 (mips_flag_delayed_branch): Rename to...
2690 (mips_base_delayed_branch): ...this.
2691 (mips_split_addresses): Delete.
2692 (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2693 element type from "char" to "bool".
2694 (mips_regno_to_class): Add an explicit array size.
2695 (mips16_flipper): Change from type "int" to type "bool".
2696 (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
2697 (mips_tls_operand_p): Rename to...
2698 (mips_tls_symbol_p): ...this.
2699 (mips_global_symbol_p): Remove redundant "const".
2700 (mips_offset_within_alignment_p): Simplify.
2701 (mips_regno_mode_ok_for_base_p): Change the name of the last argument
2702 to STRICT_P and give it type bool.
2703 (mips_valid_base_register_p): Likewise.
2704 (mips_classify_address): Likewise.
2705 (mips_legitimate_address_p): Likewise.
2706 (mips16_unextended_reference_p): Take the offset as an
2707 "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify.
2708 (mips_const_insns): Use IN_RANGE.
2709 (mips_force_temporary): Remove an unnecessary copy_rtx.
2710 (mips16_gp_pseudo_reg): Simplify.
2711 (mips_split_symbol): Remove an unnecessary copy_rtx.
2712 (mips_legitimize_tls_address): Only create registers if we need them.
2713 (mips_legitimize_address): Use mips_split_plus.
2714 (mips_move_integer): Swap DEST and TEMP arguments. Rename local
2715 variable COST to NUM_OPS.
2716 (mips_legitimize_move): Use gen_lowpart.
2717 (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
2718 (m16_check_op): Use IN_RANGE.
2719 (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2720 (mips_split_doubleword_move): Pass booleans to mips_subword.
2721 (mips_output_move): Store the mode in a local variable.
2722 Explicitly assert that this function does not deal with
2723 MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of
2724 cases more consistent.
2725 (mips_relational_operand_ok_p): Rename to...
2726 (mips_int_order_operand_ok_p): ...this.
2727 (mips_canonicalize_comparison): Rename to...
2728 (mips_canonicalize_int_order_test): ...this.
2729 (mips_emit_int_relational): Rename to...
2730 (mips_emit_int_order_test): ...this. Store the mode in a local
2732 (mips_reverse_fp_cond_p): Rename to...
2733 (mips_reversed_fp_cond): ...this.
2734 (mips_emit_compare): Make the order of the statements more consistent.
2735 (mips_emit_scc): Rename to...
2736 (mips_expand_scc): ...this.
2737 (gen_conditional_branch): Rename to...
2738 (mips_expand_conditional_branch): ...this.
2739 (gen_conditional_move): Rename to...
2740 (mips_expand_conditional_move): ...this. Build the condition
2741 separately from the main pattern.
2742 (mips_gen_conditional_trap): Rename to...
2743 (mips_expand_conditional_trap): ...this and take an rtx code instead
2744 of an operands array. Simplify.
2745 (init_cumulative_args): Rename to...
2746 (mips_init_cumulative_args): ...this. Use memset rather than a
2747 copy from a zeroed static. Use prototype_p and stdarg_p.
2748 (mips_arg_info): Rename to...
2749 (mips_get_arg_info): ...this and put the INFO argument first.
2750 (function_arg): Rename to...
2751 (mips_function_arg): ...this and use "rtx" instead of
2752 "struct rtx_def *". Only split structures into chunks if
2753 TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
2754 a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a
2755 comparison with REAL_TYPE. Rename local variable REG to REGNO
2756 and make it unsigned.
2757 (function_arg_advance): Rename to...
2758 (mips_function_arg_advance): ...this.
2759 (function_arg_boundary): Rename to...
2760 (mips_function_arg_boundary): ...this.
2761 (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
2763 (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
2764 comparison with REAL_TYPE.
2765 (mips_function_value): Remove the FUNC argument. Rename local
2766 variable UNSIGNEDP to UNSIGNED_P.
2767 (mips_return_in_memory): Use IN_RANGE.
2768 (mips_setup_incoming_varargs): Pass a boolean rather than an int
2769 to FUNCTION_ARG_ADVANCE.
2770 (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
2771 to INDIRECT_P. Remove a redundant mips_abi check. Only calculate
2772 SIZE and RSIZE if needed.
2773 (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
2775 (build_mips16_function_stub): Rename to...
2776 (mips16_build_function_stub): ...this.
2777 (build_mips16_call_stub): Rename to...
2778 (mips16_build_call_stub): ...this. Make static, and return a
2779 "bool" rather than an "int". Rename the ARG_SIZE argument to
2780 ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give
2781 it type "bool". Use "jr" rather than "j". Use XNEW. Simplify.
2782 (mips_load_call_address): Give the SIBCALL_P argument type "bool"
2784 (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs
2785 are not sibling ones.
2786 (mips_emit_fcc_reload): Rename to...
2787 (mips_expand_fcc_reload): ...this.
2788 (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
2790 (mips_expand_unaligned_load): Rename to...
2791 (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2792 and BITPOS arguments type "HOST_WIDE_INT". Remove redundant
2794 (mips_expand_unaligned_store): Rename to...
2795 (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2796 and BITPOS arguments type "HOST_WIDE_INT".
2797 (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
2798 and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
2800 (mips_init_split_addresses): Replace with...
2801 (mips_split_addresses_p): ...this new function.
2802 (mips_init_relocs): Check mips_split_addresses_p () rather than
2803 mips_split_addresses. Always initialize mips_split_p with booleans.
2804 (print_operand_reloc): Rename to...
2805 (mips_print_operand_reloc): ...this. Use a gcc_assert rather than
2807 (print_operand): Rename to...
2808 (mips_print_operand): ...this.
2809 (print_operand_address): Rename to...
2810 (mips_print_operand_address): ...this. Use GP_REG_FIRST.
2811 (mips_in_small_data_p): Simplify.
2812 (mips_output_ascii): Remove the PREFIX argument and "register"
2813 keywords. Use the STRING parameter directly and cast to
2815 (mips16e_collect_argument_save_p): Use IN_RANGE.
2816 (mips_function_has_gp_insn): Simplify.
2817 (mips_set_return_address): Use BITSET_P.
2818 (mips_restore_gp): Use a separate statement to pick the base
2820 (mips_output_function_prologue): Use a local FRAME variable.
2821 (mips_save_reg): Pass booleans to mips_subword.
2822 (mips_expand_prologue): Use a local FRAME variable. Use
2823 cprestore_size to detect when .cprestore is needed.
2824 (mips_restore_reg): Use GP_REG_FIRST.
2825 (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2826 rather than "int". Use local FRAME and REGNO variables.
2827 (mips_can_use_return_insn): Return a "bool" rather than an "int".
2828 (mips_secondary_reload_class): Give the IN_P argument type "bool"
2830 (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
2831 (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2832 (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
2833 (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
2834 (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
2835 (builtin_description): Rename to...
2836 (mips_builtin_description): ...this.
2837 (mips_bdesc): Rename to...
2838 (mips_ps_bdesc): ...this.
2839 (sb1_bdesc): Rename to...
2840 (mips_sb1_bdesc): ...this.
2841 (dsp_bdesc): Rename to...
2842 (mips_dsp_bdesc): ...this.
2843 (dsp_32only_bdesc): Rename to...
2844 (mips_dsp_32only_bdesc): ...this.
2845 (bdesc_map): Rename to...
2846 (mips_bdesc_map): ...this.
2847 (bdesc_arrays): Rename to...
2848 (mips_bdesc_arrays): ...this.
2849 (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
2850 Tweak error message.
2851 (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
2852 Rename local variables I and J to OPNO and ARGNO respectively.
2853 Assert that the number of arguments is no more than the number of
2855 (mips_expand_builtin_compare): Use an array of arguments rather
2856 than an array of operands. Assert that the number of operands is
2858 (add_constant): Rename to...
2859 (mips16_add_constant): ...this. Use XNEW.
2860 (dump_constants_1): Rename to...
2861 (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P.
2862 (dump_constants): Rename to...
2863 (mips16_emit_constants): ...this.
2864 (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
2865 (mips_set_mips16_mode): Don't call mips_init_split_addresses.
2866 Assign mips16_p to was_mips16_p.
2867 (mips_parse_cpu): Tweak warning message.
2868 (override_options): Rename to...
2869 (mips_override_options): ...this. Move the mips_cost initialization
2870 out of the "shared with GAS" block. Quote option names in error
2872 (mips_conditional_register_usage): Make local variable REGNO unsigned.
2873 (mips_order_regs_for_local_alloc): Remove register keyword.
2875 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2877 * system.h (IN_RANGE): Cast each argument individually.
2879 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2881 * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
2882 MIPS16 code unless using o32 or o64.
2884 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2886 * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
2887 for modes smaller than 4 bytes.
2888 * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
2891 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2893 * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
2894 * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
2895 (ASM_OUTPUT_ALIGNED_BSS): Delete.
2896 * config/mips/mips.c (mips_output_aligned_bss): Delete.
2898 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2900 * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
2901 sibling calls to "mips16" functions if the function satisfies
2902 const_call_insn_operand.
2904 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2906 * config/mips/mips.c (mips_va_start): Fix types in calls
2909 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2911 * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
2914 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2916 * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
2917 * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
2918 instead of checking mips_isa.
2920 2007-10-21 Richard Sandiford <rsandifo@nildram.co.uk>
2922 * doc/invoke.texi (-mpaired-single): Don't say that the option
2923 requires 64-bit code.
2924 * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
2925 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
2926 (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for
2927 V2SF if ISA_MIPS32R2.
2928 (MODES_TIEABLE_P): Use mips_modes_tieable_p.
2929 * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
2930 to ISA_HAS_NMADD_NMSUB.
2931 (mips_split_doubleword_move): Handle V2SF.
2932 (mips_modes_tieable_p): New function.
2933 (override_options): Report a warning rather than an error when
2934 -mpaired-single is used on ISAs that don't support it; use
2935 ISA_HAS_PAIRED_SINGLE to check that case.
2936 * config/mips/mips.md (MOVE64): New mode iterator. Replace DI
2937 and DF move splitters with a single MOVE64 splitter, thereby adding
2938 a V2SF splitter too.
2939 (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
2940 Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator.
2941 (HALFMODE): Add V2SF.
2942 (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
2943 (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
2944 (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
2945 (movv2sf_hardfloat_32bit): New pattern.
2946 (load_low<mode>, load_high<mode>, store_word<mode>): Remove
2947 TARGET_DOUBLE_FLOAT conditions.
2949 2007-10-20 Jakub Jelinek <jakub@redhat.com>
2951 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
2952 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
2953 64-bit register in 64-bit libgcc.
2955 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
2957 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
2958 * config/avr/avr.h (LINK_SPEC): Likewise.
2959 (CRT_BINUTILS_SPECS): Likewsie.
2960 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2962 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2964 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
2965 and -Wfatal-errors together.
2967 2007-10-20 Alan Modra <amodra@bigpond.net.au>
2970 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
2971 change for vrsave, ie restore after frame pop.
2973 2007-10-19 David S. Miller <davem@davemloft.net>
2975 * config/sparc/niagara2.md: Fix copyright notice.
2977 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
2979 PR tree-optimization/23820
2980 PR tree-optimization/24309
2981 PR tree-optimization/33766
2982 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
2983 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
2984 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
2985 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
2986 * tree-loop-linear.c (perfect_loop_nest_depth): New.
2987 (linear_transform_loops): Use perfect_loop_nest_depth.
2988 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
2989 should have a single condition: their exit.
2991 2007-10-19 Richard Guenther <rguenther@suse.de>
2995 * stor-layout.c (layout_type): Assert that aggregates do not
2996 have their alias sets set.
2997 * alias.c (get_alias_set): Return alias set zero for incomplete
2998 types, return the alias set of the element for incomplete array
2999 types, but do not remember these.
3001 2007-10-19 Richard Guenther <rguenther@suse.de>
3004 2007-10-19 Richard Guenther <rguenther@suse.de>
3007 * tree.c (build_array_type): Do not re-layout unbound array
3010 2007-10-19 Richard Guenther <rguenther@suse.de>
3013 * tree.c (build_array_type): Do not re-layout unbound array
3016 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3018 * config/mips/mips.c (mips_canonicalize_comparison): Check
3019 mips_relational_operand_ok_p before trying to rewrite the test.
3020 Only calculate PLUS_ONE if needed.
3021 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
3024 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3026 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
3029 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3031 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
3032 the call uses the incoming value of $2.
3034 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3036 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
3037 rather then gen_rtx_MEM.
3038 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
3040 (mips_set_return_address): Likewise.
3041 (mips_restore_gp): Likewise.
3043 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3045 * config/mips/mips.c (gpr_mode): Delete.
3046 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
3047 instead of gpr_mode.
3048 (mips_for_each_saved_reg): Likewise.
3049 (mips_expand_prologue, mips_expand_epilogue): Likewise.
3050 (override_options): Don't initialize gpr_mode.
3051 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
3053 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3055 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
3057 (mips_class_max_nregs): Calculate the smallest consituent register
3058 size and use that to determine an upper bound on the number of
3061 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3063 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
3065 (mips_expand_epilogue): ...here.
3066 (mips_mdebug_abi_name): New function, split out from...
3067 (mips_file_start): ...here.
3068 (mips_hard_regno_mode_ok_p): New function, split out from...
3069 (override_options): ...here.
3070 (mips_expand_builtin_1): New function, split out from...
3071 (mips_expand_buitin): ...here. Abort if we don't recognize
3074 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3076 * config/mips/mips.c (build_mips16_function_stub): Load the
3077 target address into $1 before transfering the arguments.
3078 Don't use ".set noreorder".
3079 (build_mips16_call_stub): Likewise.
3081 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3083 * config/mips/mips.c (mips_output_32bit_xfer): New function.
3084 (mips_output_64bit_xfer): Likewise.
3085 (mips16_fp_args): Rename to...
3086 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
3087 with a DIRECTION argument. Use mips_output_32bit_xfer and
3088 mips_output_64bit_xfer.
3089 (build_mips16_function_stub): Update accordingly.
3090 (mips16_fpret_double): Delete.
3091 (build_mips16_call_stub): Update after above changes.
3092 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
3093 of mips16_fpret_double. Use GP_REG_RETURN.
3095 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
3097 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
3098 use asm_out_file instead.
3099 (build_mips16_function_stub): Likewise.
3100 (build_mips16_call_stub, mips_output_function_prologue): Update
3103 2007-10-18 David S. Miller <davem@davemloft.net>
3105 Add Niagara-2 support.
3106 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
3107 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
3108 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
3109 (include): Add inclusion of niagara2.md
3110 * config/sparc/sparc.c (niagara2_costs): New.
3111 (sparc_override_options): Add niagara2 entry to cpu_default[]
3112 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
3113 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
3114 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
3115 (sparc_initialize_trampoline): Handle niagara2 like niagara.
3116 (sparc64_initialize_trampoline): Likewise.
3117 (sparc_use_sched_lookahead): Likewise.
3118 (sparc_issue_rate): Likewise.
3119 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
3121 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
3122 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
3123 TARGET_CPU_niagara2.
3124 (PROCESSOR_NIAGARA2): New.
3125 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
3126 (BRANCH_COST): Likewise.
3127 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
3128 * config/sparc/sol2.h: Likewise.
3129 * config/sparc/niagara2.md: New file.
3131 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3133 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
3135 (mips_compute_frame_info): Remove associated code.
3136 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
3138 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3140 * config/mips/mips-protos.h (compute_frame_size): Delete.
3141 * config/mips/mips.h: Update comments.
3142 * config/mips/mips.c (mips_frame_info): Remove initialized.
3143 (compute_frame_size): Rename to...
3144 (mips_compute_frame_info): ...this and make static. Remove the
3145 SIZE argument and return no value. Remove the setting of initialized.
3146 Update rest of file accordingly.
3147 (mips_set_return_address): Don't call compute_frame_size.
3148 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
3149 Don't call compute_frame_size.
3151 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3153 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
3154 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
3155 mips_hard_frame_pointer_required.
3156 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
3157 large MIPS16 frames.
3158 * config/mips/mips.c (mips_frame_pointer_required): New function.
3160 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3162 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
3163 and hard_frame_pointer_offset.
3164 (mips_debugger_offset): Use hard_frame_pointer_offset.
3165 (mips16e_collect_argument_save_p): Likewise.
3166 (compute_frame_size): Initialize arg_pointer_offset and
3167 hard_frame_pointer_offset.
3168 (mips_initial_elimination_offset): Use them.
3169 (mips_output_function_prologue): Use hard_frame_pointer_offset.
3170 (mips_expand_prologue, mips_expand_epilogue): Likewise.
3172 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3174 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
3176 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
3177 "unsigned int" rather than "int" and put them with the other
3178 register-related fields. Put expanded comments above fields
3179 rather than to their right.
3180 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
3181 with a NUM_REGS_PTR argument.
3182 (mips16e_save_restore_pattern_p): Update accordingly.
3183 (compute_frame_size): Clarify frame diagram. Rewrite.
3185 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3187 * config/mips/mips-ftypes.def: New file.
3188 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
3189 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
3190 (mips_function_type): Redefine using mips-ftypes.def.
3191 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
3192 (mips_builtin_vector_type): New function.
3193 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
3194 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
3195 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
3196 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
3198 (mips_build_function_type): New function.
3199 (mips_init_builtins): Use it to create types lazily.
3201 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3203 * config/mips/mips.h (set_volatile): Delete.
3204 * config/mips/mips.c (set_volatile): Delete.
3205 (mips_print_operand_punctuation): New function, split out from
3206 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
3207 Use the same character ordering in the code and the comments.
3208 Use a recursive call to handle '*'. Abort on unknown characters.
3209 (mips_init_print_operand_punct): New function, split out from
3211 (mips_print_int_branch_condition): New function, split out from
3212 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
3213 to report unexpected codes.
3214 (mips_print_float_branch_condition): New function, split out from
3215 print_operand. Use output_operand_lossage to report unexpected codes.
3216 (print_operand): Rework to use a case statement. Use the
3217 same letter ordering in the code and the comments. Use
3218 output_operand_lossage to report unexpected codes and
3219 reverse_condition to handle inverted branch conditions.
3220 (override_options): Use mips_init_print_operand_punct.
3222 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3224 * config/mips/mips.h: Move variable declarations to end of file and
3225 enclose them all in #ifndef USED_FOR_TARGET.
3226 * config/mips/mips.c: Reorder functions into more logical groups,
3227 and so that callees appear before callers. Put the targetm
3228 initializer at the end of the file. Remove forward static
3229 declarations where possible.
3230 (mips_init_builtins): Add "static" to definition.
3231 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
3233 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3235 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
3236 (TARGET_MAX_ANCHOR_OFFSET): Delete.
3237 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
3238 (mips_set_mips16_mode): Initialize min_anchor_offset and
3239 max_anchor_offset directly to constants.
3241 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3243 * config/mips/mips.c: Delete trailing whitespace.
3245 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
3247 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
3248 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
3250 * config/mips/mips.md (load_call<mode>): Don't make the unspec
3251 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
3253 2007-10-18 David Daney <ddaney@avtrex.com>
3255 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
3256 reg_offset variable to calculate register locations.
3258 2007-10-18 Richard Guenther <rguenther@suse.de>
3260 * tree-ssa.c (uid_ssaname_map_eq): New function.
3261 (uid_ssaname_map_has): Likewise.
3262 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
3263 * tree-flow.h (struct gimple_df): Make default_defs a
3265 * tree-dfa.c (gimple_default_def): Deal with it.
3266 (set_default_def): Likewise.
3268 2007-10-18 Richard Guenther <rguenther@suse.de>
3270 * tree-flow.h (struct gimple_df): Make referenced_vars
3272 (uid_decl_map_eq): Declare.
3273 (uid_decl_map_hash): Likewise.
3274 * tree-ssa.c (uid_decl_map_eq): New function.
3275 (uid_decl_map_hash): Likewise.
3276 (init_tree_ssa): Make referenced_vars a uid_decl_map.
3277 * tree-flow-inline.h (first_referenced_var): Deal with
3278 the referenced_vars representation change.
3279 (next_referenced_var): Likewise.
3280 * tree-dfa.c (referenced_var_lookup): Likewise.
3281 (referenced_var_check_and_insert): Likewise.
3282 (remove_referenced_var): Likewise.
3284 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
3286 * config/mips/mips.c (mips_dwarf_register_span): New.
3287 (TARGET_DWARF_REGISTER_SPAN): Define.
3289 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
3291 * config.gcc : update score-*-elf(extra_objs).
3292 * config/score/mac.md : Remove.
3293 * config/score/misc.md : Remove.
3294 * config/score/score7.md : Remove.
3295 * config/score/score-mdaux.h : Remove.
3296 * config/score/score-mdaux.c : Remove.
3297 * config/score/score-version.h : Remove.
3298 * config/score/score-generic.md : New.
3299 * config/score/score3.h : New.
3300 * config/score/score3.c : New.
3301 * config/score/score7.h : New.
3302 * config/score/score7.c : New.
3303 * config/score/mul-div.S : add flush_cache score3 support.
3304 * config/score/elf.h : Fix some typos.
3305 * config/score/score.md : merge score3 and score7 pattern.
3306 * config/score/score.c : use to seperate which target it used.
3307 * config/score/score.h : use to seperate the target macro.
3308 * config/score/score.opt : remove -mmac option , add -mscore3,
3309 -mscore3d and -march OPTION support.
3311 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
3313 * cfgexpand.c (expand_stack_vars): Add checking to make sure
3314 that the offset of a variable is not greater than the size
3317 2007-10-17 Anatoly Sokolov <aesok@post.ru>
3319 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
3320 atmega88p, atmega168p and atmega328p devices.
3321 * config/avr/avr.h (LINK_SPEC): (Ditto.).
3322 (CRT_BINUTILS_SPECS): (Ditto.).
3323 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3325 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
3327 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
3329 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
3330 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
3331 (print_insn): Move declaration to ...
3332 * rtl.h (print_insn): ... here.
3334 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
3336 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
3337 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
3338 m68k_sched_branch_type): Move declarations to ...
3339 * config/m68/m68k-protos.h: ... here.
3341 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
3343 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
3345 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
3347 * config/avr/avr.c (avr_mcu_types): Add attiny48.
3348 * config/avr/avr.h (LINK_SPEC): Likewise.
3349 (CRT_BINUTILS_SPECS): Likewsie.
3350 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3352 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
3354 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
3355 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
3356 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3358 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
3361 * reg-stack.c (move_for_stack_reg): Swap input argument of
3362 UNSPEC_TAN insn to the top of the stack.
3364 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
3367 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
3368 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
3369 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
3370 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
3371 immediate shift value.
3372 * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
3373 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
3374 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
3375 Remove macros for !__OPTIMIZE__ case.
3377 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
3379 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
3381 (perform_var_substitution): Only DFS from real nodes. Don't test
3383 (unite_pointer_equivalences): Fix broken test.
3385 2007-10-17 Alan Modra <amodra@bigpond.net.au>
3387 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
3388 altivec sp_offset. Rearrange sp_offset assignments to
3389 correspond to stack adjustments. Use frame_reg_rtx for
3390 SPE register restores. Correct SPE stack adjustment.
3392 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3394 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
3395 * toplev.c (check_global_declaration_1): Use appropriate warning
3396 option instead of unnamed warning.
3397 * stor-layout.c (layout_decl): Likewise.
3398 * c-typeck.c (build_conditional_expr): Likewise.
3399 (build_compound_expr): Fix wrong comment.
3400 (build_binary_op): Use appropriate warning option instead of
3402 * cfgexpand.c (tree_expand_cfg): Likewise.
3403 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3404 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
3405 (execute_warn_function_return): Likewise.
3406 * stmt.c (warn_if_unused_value): Likewise.
3408 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
3410 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
3411 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
3413 (CRT_BINUTILS_SPECS): Likewsie.
3414 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3416 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
3419 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
3421 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
3423 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
3424 (fini_dce): Only release them for the fast pass.
3425 (end_ud_dce): Delete.
3426 (rest_of_handle_ud_dce): Do not modify df_in_progress.
3427 Call fini_dce instead of end_ud_dce.
3428 (rest_of_handle_fast_dce): Do not modify df_in_progress.
3429 (run_fast_df_dce): Reset df_in_progress to false on exit.
3431 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
3432 Maxim Kuvyrkov <maxim@codesourcery.com>
3434 * target.h (unspec_may_trap_p): New target hook.
3435 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
3436 * targhooks.c (default_unspec_may_trap_p): Default implementation of
3438 * targhooks.h (default_unspec_may_trap_p): Declare it.
3439 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
3440 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
3441 * rtl.h (may_trap_p_1): Declare.
3443 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
3444 override default hook implementation.
3445 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
3448 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3450 * doc/invoke.texi (Wextra): Move it just after Wall, list the
3451 options enabled by Wextra and mention Wuninitialized.
3453 2007-10-15 Nigel Stephens <nigel@mips.com>
3455 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
3457 2007-10-15 Jakub Jelinek <jakub@redhat.com>
3459 PR tree-optimization/33136
3460 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
3462 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
3464 PR tree-optimization/33735
3465 PR tree-optimization/33572
3466 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
3467 2007-10-09's change.
3468 * except.c (duplicate_eh_regions): Don't look for prev_try
3469 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
3471 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
3474 * tree-inline.c (copy_bb): Use bsi_replace to replace a
3475 __builtin_va_arg_pack-containing call stmt.
3477 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
3479 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
3482 2007-10-15 Jakub Jelinek <jakub@redhat.com>
3484 PR tree-optimization/33619
3485 * tree-ssa-ter.c (is_replaceable_p): Return false for all
3488 2007-10-15 David Edelsohn <edelsohn@gnu.org>
3490 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
3492 2007-10-15 Richard Guenther <rguenther@suse.de>
3494 * fold-const.c (extract_array_ref): Remove.
3495 (fold_comparison): Handle POINTER_PLUS_EXPR with the
3496 generic address expression comparison folding. Remove
3497 the folding that used extract_array_ref.
3499 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
3502 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
3503 speculation type of insn can be changed before trying to do that.
3505 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
3507 * dse.c (struct insn_info): Add 'frame_read' field.
3508 (scan_insn): For the call to a const function, set frame_read if
3509 reload has been run.
3510 If the insn reads the frame, kill the frame related stores.
3511 (scan_reads_nospill): Likewise.
3513 2007-10-14 Jason Merrill <jason@redhat.com>
3515 * tree-eh.c (optimize_double_finally): Don't assume that the
3516 cleanup we're duplicating is only one statement.
3518 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
3520 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
3521 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
3522 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
3523 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
3524 tree-vect-transform.c: Fix comment typos.
3525 * doc/extend.texi: Fix a typo.
3527 * c-common.h: Remove the prototype for c_expand_body.
3528 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
3529 * tree.h: Remove the prototype for fold_build_call_expr.
3531 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
3533 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
3535 2007-10-13 David Edelsohn <edelsohn@gnu.org>
3537 * config/rs6000/aix53.h: New file.
3538 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
3539 (TARGET_ALTIVEC_ABI): Same.
3540 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
3541 (TARGET_ALTIVEC_ABI): Delete.
3542 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
3543 stanza defaulting to aix5.3.
3545 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
3547 * config/i386/i386.md (SI_REG, DI_REG): New constants.
3548 (strmov): Use defined constants.
3549 (cmpstrnsi): Likewise.
3550 * config/i386/i386.c (decide_alg): Use defined constants.
3551 (ix86_expand_strlen): Likewise.
3553 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
3555 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
3556 * var-tracking.c (micro_operation_def): Update comment on u.loc.
3557 (mode_for_reg_attrs, var_lowpart): New functions.
3558 (add_uses): Consider recording a lowpart of LOC for MO_USE.
3559 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
3560 or copy is known, set LOC to the SET that performs the set, instead
3562 (find_src_status, find_src_set_src): Remove LOC parameter.
3563 Replace INSN with the source value.
3564 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
3565 handling MO_SET and MO_COPY. Update the calls to find_src_status
3566 and find_src_set_src.
3568 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
3571 * config/i386/i386.md (strmov): Check for esi and edi usage.
3572 * config/i386/i386.c (decide_alg): Check whether we can use a
3573 rep prefix and adjust algorithm choice accordingly.
3574 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
3576 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3578 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
3580 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
3582 * global.c (build_insn_chain): Formatting fixes.
3584 2007-10-12 Richard Guenther <rguenther@suse.de>
3586 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
3587 combining both operands require either both have single uses
3588 or combining to a constant.
3590 2007-10-12 Richard Guenther <rguenther@suse.de>
3593 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
3594 a rhs with side-effects or which is a load.
3595 (forward_propagate_into_cond): Also try combining both operands.
3597 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
3599 PR tree-optimization/33742
3600 * tree-vect-transform.c (vectorizable_operation): Return false
3601 if get_vectype_for_scalar_type for scalar_dest can't be determined.
3602 (vectorizable_call): Same for rhs_type and lhs_type.
3604 2007-10-12 Jakub Jelinek <jakub@redhat.com>
3606 PR tree-optimization/33645
3607 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
3608 pass it to walk_tree.
3609 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
3610 When calling set_is_used on a VAR_DECL, if data is not NULL and
3611 its DECL_UID is in the bitmap, call mark_all_vars_used on its
3612 DECL_INITIAL after clearing the bit in bitmap.
3613 (remove_unused_locals): Adjust mark_all_vars_used callers.
3614 Instead of removing unused global vars from unexpanded_var_list
3615 immediately record them in bitmap, call mark_all_vars_used on
3616 all used global vars from unexpanded_var_list and only purge
3617 global vars that weren't found used even during that step.
3619 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3621 * gthr-posix.h (__gthread_active_init): Create detached instead of
3622 joinable thread when testing whether threads are active on hppa-hpux.
3623 * gthr-posix95.h (__gthread_active_init): Likewise.
3625 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3628 * global.c (build_insn_chain): Include insn that occur between
3631 2007-10-11 Tom Tromey <tromey@redhat.com>
3633 * gengtype-yacc.y: Delete.
3635 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
3637 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
3638 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
3639 function_value_32, function_value_64, function_value_ms_64,
3640 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
3641 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
3644 2007-10-11 Richard Guenther <rguenther@suse.de>
3646 * gcse.c (hash_scan_set): If the next nonnote insn is in
3647 a different basic block insert the set.
3649 2007-10-11 Richard Guenther <rguenther@suse.de>
3652 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
3653 (verify_gimple_expr): Use it to verify pointer-to types for
3656 2007-10-11 Richard Guenther <rguenther@suse.de>
3659 * c-typeck.c (build_array_ref): Do not strip qualifiers from
3660 the array element type.
3662 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
3664 PR rtl-optimization/33638
3665 * dse.c (struct insn_info): Remove 'stack_read' field,
3666 add 'stack_pointer_based' field.
3667 (record_store): For a store with non-constant base, record
3668 whether it is stack pointer based.
3669 (scan_insn): For the call to a const function, remove stack
3670 pointer based stores from the list of local active stores.
3671 (scan_reads_nospill): Delete code dealing with const functions.
3673 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
3675 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
3677 (conflict_p, set_conflict, set_conflicts): Likewise.
3678 * global.c (global_alloc): Likewise.
3679 * ra.h: Update prototypes.
3681 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
3683 * opth-gen.awk: Fixed generation of comment stating the origin
3686 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
3689 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3690 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3691 and '%}', respectively.
3694 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3695 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3696 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3698 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3702 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
3703 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3704 syntax for ASSEMBLER_DIALECT.
3705 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3707 2007-10-10 Revital Eres <eres@il.ibm.com>
3709 * modulo-sched.c (check_nodes_order): Dump the final order of
3711 (get_sched_window): Add dump info.
3712 (calculate_order_params): Dump order params of the nodes.
3714 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3717 * ra-conflict.c (record_one_conflict_between_regnos,
3718 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
3719 (global_conflicts): Enhanced incorrect check.
3721 2007-10-09 Geoffrey Keating <geoffk@apple.com>
3723 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
3724 if flag_exceptions is not set.
3725 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
3726 assemble_name rather than incorrectly emulating it.
3728 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
3729 friends are removed from G++.
3731 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3733 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
3734 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
3735 enabling them is redundant. Don't check two times for
3738 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
3740 * ra-conflict.c (record_one_conflict_between_regnos): Revert
3742 (set_conflicts_for_earlyclobber): Likewise.
3743 (global_conflicts): Likewise.
3745 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3747 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
3748 and '%}', respectively.
3750 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
3752 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
3753 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
3755 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
3758 2007-10-09 Richard Guenther <rguenther@suse.de>
3761 * gimplify.c (canonicalize_component_ref): Honor qualifiers
3762 of referenced structure and component.
3764 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
3767 * ra-conflict.c (record_one_conflict_between_regnos,
3768 set_conflicts_for_earlyclobber, global_conflicts): Improved
3770 (global_conflicts): Removed incorrect check.
3772 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
3774 PR tree-optimization/33615
3775 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
3776 if the statement might throw. Fix formatting.
3778 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
3780 PR tree-optimization/33615
3781 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
3782 if the rhs might throw.
3784 2007-10-09 Jan Hubicka <jh@suse.cz>
3786 * invoke.texi (align-threshold, align-loop-iterations): Document.
3787 * final.c: Include cfgloop.h, params.h
3788 (compute_alignments): Dump decisions and compare them with loop
3789 structure; honor given parameters.
3790 (pass_compute_alignments): New dump file.
3791 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
3792 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
3794 2007-10-09 James E. Wilson <wilson@specifix.com>
3796 PR tree-optimization/33655
3798 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
3799 convert it to bitsizetype before size_binop call.
3801 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
3803 PR tree-optimization/33572
3804 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
3805 the absence of a corresponding edge from the exit block.
3807 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
3810 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
3812 (sra_build_assignment): Likewise. Set up mask depending on
3813 precision, not type.
3814 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
3815 computing bit masks.
3816 (sra_build_elt_assignment): Don't view-convert from signed to
3818 (sra_explode_bitfield_assignment): Use bit-field type if
3819 possible. Use BYTES_BIG_ENDIAN.
3821 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
3824 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
3825 the original stmt can throw.
3826 (sra_build_bf_assignment): Fix type mismatch when applying negated
3829 2007-10-08 Geoffrey Keating <geoffk@apple.com>
3831 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
3832 '#pragma mark' to be executed at preprocessing time.
3834 2007-10-08 Ollie Wild <aaw@google.com>
3836 * varasm.c (compare_constant): Removed call to
3837 lang_hooks.expand_constant.
3838 (copy_constants): Removed call to lang_hooks.expand_constant.
3839 (compute_reloc_for_constant): Removed call to
3840 lang_hooks.expand_constant.
3841 (output_addressed_constants): Removed call to
3842 lang_hooks.expand_constant.
3843 (constructor_static_from_elts_p): Removed call to
3844 lang_hooks.expand_constant.
3845 (output_constant): Removed calls to lang_hooks.expand_constant.
3846 * langhooks.h (struct lang_hooks): Removed field expand_constant.
3847 * langhooks-def.h (lhd_return_tree): Removed.
3848 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
3849 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
3850 * langhooks.c (lhd_return_tree): Removed.
3852 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
3854 * combine.c (setup_incoming_promotions): Ensure that
3855 arguments that have not undergone mode promotions do not
3856 incorrectly get marked as being sign- or zero-extended.
3858 2007-10-08 Richard Guenther <rguenther@suse.de>
3863 * fold-const.c (fold_binary): Use correct types in folding
3864 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
3865 and building of RROTATE_EXPR.
3867 2007-10-08 Richard Guenther <rguenther@suse.de>
3872 * fold-const.c (fold_binary): Use the correct types when
3873 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
3874 (fold_binary): Use the correct types when folding
3875 (-A) - B to (-B) - A.
3876 (fold_unary): Use the correct types when folding ~(X).
3878 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3880 * doc/invoke.texi (Wall): fix formatting issues.
3882 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
3884 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
3885 truncated shift counts.
3887 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
3889 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
3890 syntax for ASSEMBLER_DIALECT.
3891 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
3893 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
3894 Nathan Froyd <froydnj@codesourcery.com>
3896 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
3897 when determining whether to record INCOMING_RETURN_ADDR_RTX.
3899 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
3902 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
3904 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3905 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3906 the function, temporarily point the debug interface to the null one.
3908 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
3910 PR tree-optimization/33655
3912 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
3915 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
3917 PR tree-optimization/33572
3918 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
3919 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
3920 (update_ssa_across_abnormal_edges): ... this. Set slots in the
3922 (copy_edges_for_bb): Handle nonlocal label edges.
3923 (make_nonlocal_label_edges): Deleted.
3924 (optimize_inline_calls): Don't call it.
3926 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
3928 * gthr-single.h: Revert last change.
3930 2007-10-05 Michael Matz <matz@suse.de>
3933 * lower-subreg.c (decompose_multiword_subregs): Use
3934 validate_unshare_change().
3936 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
3938 * ra-conflict.c: Include "sparseset.h".
3939 (conflicts): Change to HOST_WIDEST_FAST_INT.
3940 (allocnos_live): Redefine variable as a sparseset.
3941 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
3943 (allocno_row_words): Removed global variable.
3944 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
3945 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
3946 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
3947 (record_one_conflict_between_regnos): Cache allocno values and reuse.
3949 (record_one_conflict): Update uses of allocnos_live to use
3950 the sparseset routines. Use set_conflicts_p.
3951 (mark_reg_store): Likewise.
3952 (set_reg_in_live): Likewise.
3953 (global_conflicts): Update uses of allocnos_live.
3954 Use the new adjacency list to visit an allocno's neighbors
3955 rather than iterating over all possible allocnos.
3956 Call set_conflicts_p to setup conflicts rather than adding
3958 * global.c: Comments updated.
3959 (CONFLICTP): Delete define.
3960 (regno_compare): New function. Add prototype.
3961 (global_alloc): Sort the allocno to regno mapping according to
3962 which basic blocks the regnos are referenced in. Modify the
3963 conflict bit matrix to a compressed triangular bitmatrix.
3964 Only allocate the conflict bit matrix and adjacency lists if
3965 we are actually going to allocate something.
3966 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
3967 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
3968 allocno's neighbors rather than iterating over all possible allocnos.
3969 (mirror_conflicts): Removed function.
3970 (dump_conflicts): Iterate over regnos rather than allocnos so
3971 that all dump output will be sorted by regno number.
3972 Use the FOR_EACH_CONFLICT macro.
3973 * ra.h: Comments updated.
3974 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
3975 (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
3977 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
3978 (adjacency_list_d, adjacency_iterator_d): New types.
3979 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
3980 adjacency_iter_next, regno_basic_block): New static inline functions.
3981 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
3982 (conflict_p): Add function prototype.
3983 * sparseset.h, sparseset.c: New files.
3984 * Makefile.in (OBJS-common): Add sparseset.o.
3985 (sparseset.o): New rule.
3987 2007-10-05 Richard Guenther <rguenther@suse.de>
3990 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
3993 2007-10-05 Michael Matz <matz@suse.de>
3996 * function.c (match_asm_constraints_1): Check for input
3997 being used in the outputs.
3999 2007-10-05 Richard Guenther <rguenther@suse.de>
4001 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
4003 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
4006 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
4007 subset checks. Make the cost of FPR -> FPR moves depend on
4008 mips_mode_ok_for_mov_fmt_p.
4010 2007-10-04 Doug Kwan <dougkwan@google.com>
4012 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
4013 __gthread_cond_wait_recursive): Add to extend interface for POSIX
4014 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
4015 support of conditional variables.
4016 * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
4017 __gthread_cond_wait_recursive): Add to extend interface for POSIX
4018 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify