1 2006-10-12 Jie Zhang <jie.zhang@analog.com>
3 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
4 emit_insn to emit eh_return_internal instruction.
5 (eh_return_internal): Explicitly set pc.
7 2006-10-11 Richard Guenther <rguenther@suse.de>
9 PR tree-optimization/28230
10 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
13 2006-10-11 Richard Guenther <rguenther@suse.de>
16 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
19 2006-10-10 Brooks Moses <bmoses@stanford.edu>
21 * configure.ac: Added pdf to "Make-hooks"
22 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
23 targets and *.pdf file patterns in cleanup targets.
24 * configure: Regenerated.
26 2006-10-10 Anatoly Sokolov <aesok@post.ru>
28 * config/avr/predicates.md: New file.
29 * config/avr/avr.md: Include it.
30 (REG_SP): New constant.
31 (peepholes): Use predicates.
32 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
33 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
34 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
36 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
38 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
41 2006-10-10 Jakub Jelinek <jakub@redhat.com>
44 * builtins.c (var_decl_component_p): New function.
45 (fold_builtin_memset, fold_builtin_memory_op): Restrict
46 single entry optimization to variables and components thereof.
48 2006-10-10 Richard Guenther <rguenther@suse.de>
50 PR rtl-optimization/29323
51 * except.c (set_nothrow_function_flags): For functions
52 that do not bind local bail out early.
54 2006-10-10 Ben Elliston <bje@au.ibm.com>
56 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
59 2006-10-09 Richard Henderson <rth@redhat.com>
63 2006-10-09 Richard Guenther <rguenther@suse.de>
66 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
69 2006-10-09 Steve Ellcey <sje@cup.hp.com>
72 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
73 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
74 * configure: Regenerate.
75 * config.in: Regenerate.
77 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
79 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
81 2006-10-08 Richard Sandiford <richard@codesourcery.com>
83 * config/mips/mips.c (mips_legitimize_tls_address): Implement
84 all TLS models in the same way as local exec if !TARGET_ABICALLS.
87 2006-10-08 Richard Sandiford <richard@codesourcery.com>
89 * config/mips/mips.c (mips_classify_symbol): Do not return
90 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
91 (mips_in_small_data_p): Tweak comments.
93 2006-10-08 Richard Sandiford <richard@codesourcery.com>
95 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
97 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
99 * gimplify.c, sched-int.h: Fix comment typos.
101 * sched-int.h: Fix comment typos.
103 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
105 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
107 * sched-ebb.c (begin_schedule_ready): Use them.
108 * haifa-sched.c (schedule_insn, move_insn, try_ready,
109 add_to_speculative_block, create_check_block_twin, speculate_insn,
110 fix_jump_move, move_block_after_check): Ditto.
111 * sched-rgn.c (new_ready): Ditto.
113 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
115 PR rtl-optimization/29128
116 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
117 * sched-ebb.c (advance_target_bb): Use it to fix condition to
118 allow interblock movement of speculation checks.
120 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
123 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
124 casted to integer type.
125 (get_address_cost): Decrease cost of [symbol + index] addressing modes
126 if they are significantly more expensive than [reg + index] ones.
128 2006-10-06 Jakub Jelinek <jakub@redhat.com>
130 PR tree-optimization/29330
131 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
132 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
133 on newly allocated ddrs.
134 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
135 to VEC (loop_p, heap) pointer.
136 (compute_data_dependences_for_loop): Adjust caller.
137 (free_dependence_relations): Free DDR_LOOP_NEST.
139 * tree-loop-linear.c (linear_transform_loops): Don't forget to
140 free DEPENDENCE_RELATIONS and DATAREFS.
143 * builtins.c (expand_builtin_sync_operation,
144 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
145 Use convert_to_mode to handle promoted arguments.
147 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
149 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
151 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
153 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
155 2006-10-05 Uros Bizjak <uros@kss-loka.si>
157 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
158 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
159 Use <modeconstraint> instead of "r" as operand 1 constraint.
161 2006-10-06 Olivier Hainque <hainque@adacore.com>
163 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
164 Don't recurse on the pointed-to type.
165 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
166 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
167 types with components of variable size.
169 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
171 config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
173 2006-10-06 Jakub Jelinek <jakub@redhat.com>
175 PR tree-optimization/29290
176 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
180 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
181 * config/i386/predicates.md (local_symbolic_operand): Likewise.
184 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
185 the number of vector elements fill the rest with zeros.
187 2006-10-05 Richard Sandiford <richard@codesourcery.com>
189 * config/mips/mips.c (mips_pass_by_reference): Do not return false
190 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
193 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
195 * config/bfin/bfin.md (subsi3): Lose expander, change previously
196 unnamed pattern into subsi3. Use correct constraints/predicates.
197 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
198 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
200 2006-10-05 Ira Rosen <irar@il.ibm.com>
202 * doc/loop.texi: Add data references analysis description.
204 2006-10-04 Brooks Moses <bmoses@stanford.edu>
206 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
208 2006-10-04 Richard Henderson <rth@redhat.com>
209 Jakub Jelinek <jakub@redhat.com>
211 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
212 * builtin-types.def (BT_WORD): Make unsigned.
213 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
214 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
215 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
216 * c-decl.c (grokdeclarator): Don't error if !have_tls.
217 * c-parser.c (c_parser_omp_threadprivate): Likewise.
218 * cgraph.c (decide_is_variable_needed): Look at force_output.
219 Recurse for emulated tls.
220 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
221 checks redundant with decide_is_variable_needed.
222 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
223 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
225 * expr.c (emutls_var_address): New.
226 (expand_expr_real_1): Expand emulated tls.
227 (expand_expr_addr_expr_1): Likewise.
228 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
229 * output.h (emutls_finish): Declare.
230 * toplev.c (compile_file): Call it.
231 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
232 address before wrapping in CONST.
233 * varasm.c (emutls_htab, emutls_object_type): New.
234 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
235 (get_emutls_object_name, get_emutls_object_type): New.
236 (get_emutls_init_templ_addr, emutls_decl): New.
237 (emutls_common_1, emutls_finish): New.
238 (assemble_variable): When emulating tls, swap decls; generate
239 constructor for the emutls objects.
240 (do_assemble_alias): When emulating tls, swap decl and target name.
241 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
243 * emutls.c: New file.
244 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
245 tls_object for real tls.
247 2006-10-04 Zack Weinberg <zackw@panix.com>
249 Fix bug in constraint-check generator, reported by Rask Ingemann
251 * genpreds.c (add_constraint): Don't remove anything from the
253 (write_tm_constrs_h): Detect whether "op" argument is used, and
254 mark it ARG_UNUSED if it isn't.
255 (write_insn_const_int_ok_for_constraint): Skip the part of the
256 expression that would test whether "op" (which is not available
257 here) is a CONST_INT.
259 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
262 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
264 2006-10-03 Geoffrey Keating <geoffk@apple.com>
266 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
267 current Leopard versions.
268 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
270 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
272 * doc/install.texi: Fix typos.
274 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
276 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
277 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
278 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
280 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
282 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
283 arg to be struct mach_header_64* instead.
285 2006-10-02 Jakub Jelinek <jakub@redhat.com>
288 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
289 side effects after the outer expression's post side effects.
291 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
293 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
294 comments to reflect actual behavior and relationship between
295 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
297 * doc/c-tree.texi (Working with declarations): Fix documentation
298 of FIELD_DECL likewise.
300 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
303 * doc/extend.texi: Add used variable attribute description.
305 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
308 * c.opt (Woverride-init): New.
309 * c-opts.c (c_common_post_options): Default warn_override_init to
311 * c-typeck.c (add_pending_init, output_init_element): Warn for
312 overriding initializers without side effects.
313 * doc/invoke.texi (-Woverride-init): Document.
316 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
318 PR rtl-optimization/28096
319 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
320 assignment has already been used as a destination earlier in the block.
322 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
324 * builtins.c (expand_builtin_setjmp): Delete.
325 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
326 <BUILT_IN_SETJMP_SETUP>: New case.
327 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
328 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
329 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
330 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
331 (BUILT_IN_SETJMP_RECEIVER): Likewise.
332 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
333 (lower_function_body): Initialize it to false. If it is set to true
334 at the end of the processing, emit the setjmp dispatcher.
335 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
336 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
337 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
338 on the rhs of the assignment.
339 (lower_builtin_setjmp): New function.
340 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
341 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
342 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
343 to detect calls that can go to non-local labels. Use specific
344 helper to create the abnormal edges associated with them.
345 <MODIFY_EXPR>: Likewise.
346 (make_abnormal_goto_edges): New function extracted from...
347 (make_goto_expr_edges): ...here. Call it for computed gotos.
348 (simple_goto_p): Minor tweak.
349 (tree_can_make_abnormal_goto): New predicate.
350 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
351 (tree_purge_dead_abnormal_call_edges): New function.
352 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
353 (tree_purge_dead_abnormal_call_edges): Likewise.
354 (make_abnormal_goto_edges): Likewise.
355 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
356 Purge all dead abnormal edges if the call was in the last statement.
357 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
358 (execute_fixup_cfg): If there are non-local labels in the function,
359 scan the basic blocks and split them at calls that can go to non-local
360 labels or add missing abnormal call edges. Write down the CFG in the
362 (pass_fixup_cfg): Remove TODO_dump_func flag.
363 * unwind-sjlj.c: Poison setjmp.
364 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
365 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
366 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
367 (DONT_USE_BUILTIN_SETJMP): Document it.
369 2006-09-28 Geoffrey Keating <geoffk@apple.com>
372 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
373 to 1 when __ppc64__ is defined.
374 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
376 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
378 2006-09-28 Steve Ellcey <sje@cup.hp.com>
380 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
381 * config/ia64/unwind-hpux.c: Delete.
383 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
385 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
386 on the element before gimplifying it, instead of punting if it is of
389 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
391 * doc/loop.texi: New file.
392 * doc/gccint.texi: Reference loop.texi.
393 * Makefile.in (loop.texi): Add.
395 2006-09-27 Geoffrey Keating <geoffk@apple.com>
397 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
399 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
400 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
402 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
404 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
406 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
408 * doc/install.texi: Document required versions of GMP and MPFR.
410 2006-09-27 Paul Brook <paul@codesourcery.com>
413 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
415 2006-09-27 Richard Sandiford <richard@codesourcery.com>
417 * reload1.c (alter_reg): Require the alignment of the stack slot to
418 be at least reg_max_ref_width bytes.
419 (scan_paradoxical_subregs): Record the largest width in
422 2006-09-26 Jakub Jelinek <jakub@redhat.com>
426 * tree-nested.c (struct nesting_info): Added static_chain_added.
427 (convert_call_expr): Set static_chain_added when adding static
428 chain. Handle OMP_PARALLEL and OMP_SECTION.
430 2006-09-25 Matthias Klose <doko@debian.org>
432 * doc/invoke.texi: Add missing full stop.
434 2006-09-25 Richard Henderson <rth@redhat.com>
436 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
437 before cgraph_function_flags_ready.
439 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
440 Adam Nemet <anemet@caviumnetworks.com>
442 * tree-ssa-loop-ivopts.c (aff_combination_convert,
443 determine_common_wider_type): New functions.
444 (get_computation_aff): Use them to simplify arithmetic between
445 UBASE and CBASE if they are shortened from the same type.
447 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
450 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
451 -2147483647 - 1 instead of 0x80000000.
453 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
455 * flags.h (HONOR_NANS): Fix typo in comment.
457 2006-09-23 Uros Bizjak <uros@kss-loka.si>
459 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
461 2006-09-23 Jakub Jelinek <jakub@redhat.com>
465 * tree.c (merge_attributes, attribute_list_contained): If both
466 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
468 * c-typeck.c (comptypes_internal): Don't consider aggregates
469 in different TUs as compatible if there one set of attributes is
470 not a subset of the other type's attributes.
471 (composite_type): Try harder not to create a new aggregate type.
473 2006-09-22 Geoffrey Keating <geoffk@apple.com>
475 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
476 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
477 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
478 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
479 than replicating condition above.
480 * config.host (i[34567]86-*-*): Always use driver-i386.o.
482 * config/darwin.h (LINK_SYSROOT_SPEC): New.
483 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
484 the linker by default.
486 2006-09-22 Mike Stump <mrs@apple.com>
488 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
491 2006-09-22 Richard Guenther <rguenther@suse.de>
494 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
495 sort of stack variables stable.
497 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
500 * explow.c (force_reg): Set REG_POINTER flag according to
503 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
505 PR tree-optimization/28888
506 * tree-if-conv.c (combine_blocks): Rewritten.
507 * tree-cfg.c (tree_verify_flow_info): Check that edges with
508 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
510 2006-09-22 Jakub Jelinek <jakub@redhat.com>
512 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
515 2006-09-21 Richard Sandiford <richard@codesourcery.com>
517 * varasm.c (copy_constant): Fix reversed gcc_assert check.
519 2006-09-21 Janis Johnson <janis187@us.ibm.com>
521 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
523 2006-09-21 Roger Sayle <roger@eyesopen.com>
526 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
527 dw_fde_current_label, to be the start of the function, i.e. the same
528 value as dw_fde_begin.
530 2006-09-20 Richard Sandiford <richard@codesourcery.com>
532 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
533 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
534 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
535 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
536 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
537 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
538 (abs<mode>2, neg<mode>2): Likewise.
539 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
540 (*mips_abs_ps): New define_insn.
542 2006-09-20 Josh Conner <jconner@apple.com>
545 * calls.c (expand_call): Allow reuse of structure return stack
548 2006-09-20 Paul Brook <paul@codesourcery.com>
550 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
553 2006-09-20 Janis Johnson <janis187@us.ibm.com>
555 * doc/extend.texi (Decimal Float): Update for latest draft TR,
556 clean up terminology.
558 2006-09-20 Steve Ellcey <sje@cup.hp.com>
561 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
562 with tablejumps in them.
564 2006-09-20 Jakub Jelinek <jakub@redhat.com>
567 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
568 wrap it into TARGET_EXPR.
570 2006-09-20 Eric Christopher <echristo@apple.com>
572 * config/i386/i386.c (x86_fisttp): Remove.
573 * config/i386/i386.h (x86_fisttp): Ditto.
574 (TARGET_FISTTP): Ditto.
576 2006-09-19 Eric Christopher <echristo@apple.com>
578 * doc/tm.texi (OBJC_JBLEN): Describe.
579 * config/i386/darwin.h (OBJC_JBLEN): Define.
580 * config/rs6000/darwin.h: Ditto.
582 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
584 PR rtl-optimization/21299
585 * reload1.c (reload): Purge invalid ASMs in the final pass.
587 2006-09-19 Steve Ellcey <sje@cup.hp.com>
590 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
591 pointers as legitimate constants.
593 2006-09-19 Paul Brook <paul@codesourcery.com>
596 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
598 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
600 PR tree-optimization/28887
601 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
602 component parts from the reference.
603 (gather_memory_references_ref): Record the reference without the
604 nonaddressable component parts.
606 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
609 * c-opts.c (c_common_handle_option): Ignore the -std options
610 if the input language is assembly.
612 2006-09-17 Ira Rosen <irar@il.ibm.com>
615 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
617 (ptr_ptr_may_alias_p): Likewise.
618 (record_record_differ_p): New function.
619 (base_object_differ_p): Call record_record_differ_p.
621 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
624 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
625 away for the expr argument.
627 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
630 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
631 before using it for dumping after vectorizing loops.
633 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
634 Jack Howarth <howarth@bromo.med.uc.edu>
637 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
638 skip on error_mark_node.
639 (rs6000_darwin64_record_arg_recurse): Likewise.
641 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
643 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
644 * doc/rtl.texi: Remove related documentation.
646 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
648 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
651 2006-09-15 Jim Wilson <wilson@specifix.com>
653 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
654 Handle symbol offsets same as they are handled in ia64_expand_move
657 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
659 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
660 Add forgotten parameter to the fprintf call.
662 2006-09-15 Steve Ellcey <sje@cup.hp.com>
664 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
666 2006-09-15 Uros Bizjak <uros@kss-loka.si>
668 * doc/contrib.texi: Add my entry.
670 2006-09-15 Nick Clifton <nickc@redhat.com>
672 * doc/md.texi (Processor pipeline description): Fix typo in
673 example of how to use the absence_set directive and reword the
674 description to make it slightly easier to read.
676 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
678 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
679 * loop-doloop.c (doloop_optimize): Use it to limit costs of
680 expanding the number of iterations.
681 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
683 * cfgrtl.c (emit_insn_at_entry): New function.
684 * rtl.h (emit_insn_at_entry): Declare it.
685 * integrate.c (emit_initial_value_sets): Use it.
687 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
689 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
691 (struct loop_work and related VEC declarations): Delete.
692 (bfin_dump_loops): Print out new member bad.
693 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
694 (bfin_scan_loop): Don't recurse.
695 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
696 loops. No longer need to update outer loops if the current one is
697 found bad. Move some validitiy checks to bfin_discover_loop.
698 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
699 but changed not to check for nesting. Also changed to use the new bad
701 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
702 time. Use bitmap based test to discover loop nesting.
704 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
706 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
709 2006-09-14 Richard Guenther <rguenther@suse.de>
710 Kazu Hirata <kazu@codesourcery.com>
713 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
714 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
715 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
716 with TARGET_FUNCTION_VALUE.
718 2006-09-14 Anatoly Sokolov <aesok@post.ru>
721 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
723 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
725 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
728 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
731 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
734 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
736 * basic_block.h (bb_has_eh_pred): Fix comment.
738 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
740 * flow.c (calculate_global_regs_live): Invalidate eh registers
741 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
742 (propagate_block): Handle eh registers as if they were set at basic
744 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
746 * global.c (global_conflicts): Make eh registers to conflict with
747 pseudos live at basic block begin.
748 * basic_block.h (bb_has_eh_pred): New function.
750 2006-09-13 Richard Sandiford <richard@codesourcery.com>
752 PR rtl-optimization/28982
753 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
754 index of a PRE_MODIFY or POST_MODIFY address.
755 * reload1.c (inc_for_reload): Use find_replacement on the original
756 base and index registers.
758 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
760 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
761 for -Os. Update __m128 alignment requirement.
763 2006-09-13 Jan Hubicka <jh@suse.cz>
765 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
767 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
769 PR rtl-optimization/28243
770 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
771 the insn to which the note was originally attached.
773 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
774 Roger Sayle <roger@eyesopen.com>
776 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
777 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
778 on platforms that don't use dwarf for debug info.
780 2006-09-12 Jason Merrill <jason@redhat.com>
783 * builtins.c (expand_builtin_setjmp_receiver): Clobber
784 hard_frame_pointer_rtx after using it to update the frame pointer.
786 2006-09-12 Roger Sayle <roger@eyesopen.com>
788 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
789 (TARGET_ASM_CLOSE_PAREN): Likewise.
790 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
791 (TARGET_ASM_CLOSE_PAREN): Likewise.
793 2006-09-12 Roger Sayle <roger@eyesopen.com>
796 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
797 frame information for frames larger than 512 Kbytes on Tru64 when
798 using the native assembler.
800 2006-09-12 Roger Sayle <roger@eyesopen.com>
804 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
805 and symbols. Instead use the implementation from cse.c's hash_rtx.
807 2006-09-12 Jan Hubicka <jh@suse.cz>
809 PR rtl-optimization/28071
810 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
811 (vect_transform_loop): Likewise.
812 * tree-vectorizer.c (new_loop_vec_info): Likewise.
813 (new_loop_vec_info): Likewise.
814 (destroy_loop_vec_info): Likewise.
815 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
816 (create_stmt_ann): Likewise.
817 (create_tree_ann): Rename to ...
818 (create_tree_common_ann): ... this one; allocate only the common part
820 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
821 (get_value_handle): Likewise.
822 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
824 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
825 (vinfo_for_stmt): Use stmt annotations.
826 * tree-flow.h (tree_ann_common_t): New type.
827 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
828 (tree_ann, get_tree_ann, create_tree_ann): New.
829 * tree-flow-inline.h (get_function_ann): Do more type checking.
830 (stmt_ann): Likewise.
831 (tree_ann): Rename to ...
832 (tree_common_ann): ... this one; return ony common_ann
833 (get_tree_ann): Rename to ...
834 (tree_common_ann): This one; return only common_ann.
835 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
838 2006-09-11 Geoffrey Keating <geoffk@apple.com>
840 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
843 * dwarf2out.c (dwarf_file_data): New.
844 (enum dw_val_class): Add dw_val_class_file.
845 (struct dw_val_struct): Add val_file.
846 (file_table): Change to a hash table.
847 (file_table_emitted): Delete.
848 (file_table_last_lookup_index): Delete.
850 (last_emitted_file): New.
851 (lookup_filename): Change prototype to return a struct dwarf_file_data.
852 (init_file_table): Delete.
853 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
854 (AT_addr): Add comment.
858 (print_die): Handle dw_val_class_file.
859 (print_dwarf_line_table): Update for new file table structure.
860 (attr_checksum): Do checksum a filename.
861 (same_dw_val_p, same_attr_p): Do compare a filename.
862 (size_of_die): Handle dw_val_class_file.
863 (value_format): Likewise.
864 (output_die): Likewise. Also, call maybe_emit_file here.
865 (struct file_info): Constify filenames. Make file_idx a pointer
866 to a struct dwarf_file_data.
867 (struct dir_info): Constify directory names. Remove 'used' field.
868 (struct file_name_acquire_data): New.
869 (file_name_acquire): New.
870 (output_file_names): Modify to handle new file data structures.
871 (add_src_coords_attributes): Use add_AT_file.
872 (add_call_src_coords_attributes): Likewise.
873 (dwarf2out_imported_module_or_decl): Likewise.
874 (gen_subprogram_die): Modify for new file data structures.
875 (gen_variable_die): Likewise.
876 (file_table_eq): New.
877 (file_table_hash): New.
878 (file_table_last_lookup): New.
879 (lookup_filename): Rewrite to handle new file data structures.
880 (maybe_emit_file): Rewrite to handle new file data structures.
881 (dwarf2out_source_line): Always call lookup_filename and
883 (dwarf2out_init): Create file_table here.
884 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
885 (file_table_relative_p): New.
886 (dwarf2out_finish): Change detection of relative filenames
887 to work with new file data structures. Move output_line_info call
888 after debug_info output.
890 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
895 * config/i386/i386.c (override_options): Always default to 16
898 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
901 * var-tracking.c (dump_dataflow_set): Start dumping at
903 (clobber_variable_part): Kill only the variable part in
904 registers holding it, leaving other variables alone.
906 2006-09-11 Josh Triplett <josh@freedesktop.org>
908 * doc/extend.texi (Other Builtins): Actually use the macro
909 argument in the documentation example for
910 __builtin_types_compatible_p.
912 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
914 PR rtl-optimization/28726
915 * sched-deps.c (sched_analyze_reg): New function extracted from...
916 (sched_analyze_1): ...here. Call it to analyze references to
917 registers. Treat again writes to a stack register as writing to the
919 (sched_analyze_2): ...and here. Call it to analyze references to
920 registers. Treat again reads of a stack register as reading the
923 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
924 David Edelsohn <edelsohn@gnu.org>
927 * config/rs6000/spe.md (frob_df_di): Remove %H.
928 (frob_di_df): Remove %H. Change evmergelo to mr.
929 (frob_di_df_2): Remove %H. Change evldd to two loads.
931 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
933 * doc/cpp.texi: Fix names of charset options.
935 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
938 * config/i386/i386.c (override_options): Use 128-bit
939 stack boundary always for 64bits.
941 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
943 PR rtl-optimization/28636
944 * combine.c (force_to_mode): Test for side-effects before
945 substituting by zero.
946 (simplify_shift_const): Likewise for zero or other constants.
948 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
951 * builtins.c (expand_builtin_setjmp): Force next_lab to be
954 2006-09-10 Richard Sandiford <richard@codesourcery.com>
957 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
958 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
959 returned by mode_for_size, rather than the mode of src itself,
960 to choose between 32-bit and 64-bit patterns.
961 (mips_mem_fits_mode_p): New function.
962 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
963 that the size of the source matches the size of the destination.
964 (mov_<store>l, mov_<store>r): Likewise.
966 2006-09-10 Eric Christopher <echristo@apple.com>
968 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
971 2006-09-09 Eric Christopher <echristo@apple.com>
974 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
977 2006-09-09 Roger Sayle <roger@eyesopen.com>
978 Nicolas Setton <setton@adacore.com>
980 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
982 2006-09-10 Andreas Schwab <schwab@suse.de>
984 * config/m68k/m68k.md (bungt_rev): New pattern.
986 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
987 Dale Johannesen <dalej@apple.com>
990 * regclass.c (struct reg_pref): Update documentation.
991 (regclass): Set prefclass to NO_REGS if memory is the best option.
992 (record_reg_classes): Cope with a prefclass set to NO_REGS.
994 2006-09-08 Eric Christopher <echristo@apple.com>
996 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
997 * config/t-slibgcc-darwin: Support x86_64 multilib.
998 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
999 Return 1 for x86_64-darwin.
1000 * config/i386/t-darwin: Add m64 multilib.
1001 (LIB2_SIDITI_CONV_FUNCS): Use.
1002 (LIB2FUNCS_EXTRA): Ditto.
1003 * config/i386/darwin.h: Support x86_64.
1004 * config/i386/i386.c (override_options): Turn on flag_pic
1005 for x86_64-darwin. Disable flag_omit_pointer.
1006 (get_pc_thunk_name): Assert !TARGET_64BIT.
1007 (legitimate_address_p): Disable machopic addressing for
1009 (legitimize_pic_address): Ditto.
1010 (ix86_expand_move): Ditto.
1011 (ix86_expand_call): Ditto.
1012 (machopic_output_stub): Ditto.
1013 * config/darwin.c (machopic_select_section): Support literal16.
1014 (machopic_select_rtx_section): Ditto.
1015 * config/darwin-sections.def: Ditto.
1016 * config/darwin-64.c: New.
1018 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
1021 * c-tree.h (struct c_arg_info): Add pending_sizes.
1022 * c-parser.c (c_parser_parms_declarator,
1023 c_parser_parms_list_declarator): Initialize pending_sizes.
1024 * c-decl.c (get_parm_info): Initialize pending_sizes.
1025 (get_parm_info): Set pending_sizes.
1026 (grokdeclarator): Call put_pending_sizes for parameters for
1027 function definition only.
1029 2006-09-07 Jason Merrill <jason@redhat.com>
1032 * varasm.c (output_constant): Only strip actual no-op conversions.
1035 * config/i386/i386.c (override_options): Use 128-bit
1036 stack boundary if -msse.
1038 2006-09-07 Eric Christopher <echristo@apple.com>
1040 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
1042 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
1045 2006-09-07 Geoffrey Keating <geoffk@apple.com>
1047 * dwarf2out.c: Remove strange characters from comment above
1048 dwarf2out_frame_debug_expr.
1050 2006-09-07 Eric Christopher <echristo@apple.com>
1052 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
1053 * config/darwin.h: ... to here.
1055 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
1057 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
1059 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
1060 (TARGET_PARTIAL_FLAG_REG_STALL): New.
1062 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
1063 TARGET_PARTIAL_FLAG_REG_STALL.
1064 (*ashldi3_cconly_rex64): Likewise.
1065 (*ashlsi3_cmp): Likewise.
1066 (*ashlsi3_cconly): Likewise.
1067 (*ashlsi3_cmp_zext): Likewise.
1068 (*ashlhi3_cmp): Likewise.
1069 (*ashlhi3_cconly): Likewise.
1070 (*ashlqi3_cmp): Likewise.
1071 (*ashlqi3_cconly): Likewise.
1072 (*ashrdi3_cmp_rex64): Likewise.
1073 (*ashrdi3_cconly_rex64): Likewise.
1074 (*ashrsi3_cmp): Likewise.
1075 (*ashrsi3_cconly): Likewise.
1076 (*ashrsi3_cmp_zext): Likewise.
1077 (*ashrhi3_cmp): Likewise.
1078 (*ashrhi3_cconly): Likewise.
1079 (*ashrqi3_cmp): Likewise.
1080 (*ashrqi3_cconly): Likewise.
1081 (*lshrdi3_cmp_rex64): Likewise.
1082 (*lshrdi3_cconly_rex64): Likewise.
1083 (*lshrsi3_cmp): Likewise.
1084 (*lshrsi3_cconly): Likewise.
1085 (*lshrsi3_cmp_zext): Likewise.
1086 (*lshrhi3_cmp): Likewise.
1087 (*lshrhi3_cconly): Likewise.
1088 (*lshrqi2_cmp): Likewise.
1089 (*lshrqi2_cconly): Likewise.
1091 2006-09-07 Uros Bizjak <uros@kss-loka.si>
1094 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
1095 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
1096 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
1097 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
1098 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
1099 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
1100 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
1101 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
1102 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
1103 implement only CC setting effects of shift instructions.
1105 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
1107 * doc/contrib.texi: Add myself.
1109 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
1112 * stor-layout.c (relayout_decl): Don't zero the alignment if it
1113 was set by the user.
1115 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
1118 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
1119 (divsi_inv_m1): Use them.
1120 (UNSPEC_DIV_INV_TABLE): New constant.
1122 2006-09-06 James E Wilson <wilson@specifix.com>
1125 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
1126 then call count_or_remove_death_notes.
1128 2006-09-06 Jason Merrill <jason@redhat.com>
1131 * tree-inline.c (copy_result_decl_to_var): New fn.
1132 (declare_return_variable): Use it. Call declare_inline_vars here.
1133 (expand_call_inline): Not here.
1135 2006-09-06 Diego Novillo <dnovillo@redhat.com>
1137 * doc/contrib.texi: Update my entry.
1139 2006-09-06 Nick Clifton <nickc@redhat.com>
1141 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
1143 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
1146 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
1147 (canonicalize_induction_variables): Likewise.
1148 (tree_unroll_loops_completely): Likewise.
1149 (tree_ssa_prefetch_arrays): Likewise.
1150 (remove_empty_loops): Likewise.
1151 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
1152 TODO_cleanup_cfg instead of directly calling
1153 cleanup_tree_cfg_loop.
1154 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
1156 (tree_unroll_loops_completely): Likewise.
1157 (remove_empty_loops): Likewise.
1158 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
1159 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
1160 of tree_ssa_unswitch_loops.
1161 (tree_ssa_loop_ivcanon): Use the return value of
1162 canonicalize_induction_variables.
1163 (tree_ssa_empty_loop): Use the return value of
1165 (tree_complete_unroll): Use the return value of
1166 tree_unroll_loops_completely.
1167 (tree_ssa_loop_prefetch): Use the return value of
1168 tree_ssa_prefetch_arrays.
1169 * passes.c (execute_todo): Before Cleanup CFG, set
1170 updating_used_alone and after cleanup CFG, call
1171 recalculate_used_alone.
1173 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
1176 * tree-vect-transform.c (vectorizable_condition): Move the check
1177 for the type after the check for simple condition.
1179 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
1180 Kaz Kojima <kkojima@gcc.gnu.org>
1183 * mode-switching.c (optimize_mode_switching): Make the destination
1184 block of an abnormal edge have no anticipatable mode. Don't
1185 insert mode switching code at the end of the source block of
1188 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
1190 PR rtl-optimization/26847
1191 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
1192 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
1193 (simplify_plus_minus): Count n_constants while filling ops. Replace
1194 qsort with insertion sort. Before going through the array to simplify
1195 pairs, sort it. Delay early exit until after the first sort, exiting
1196 only if no swaps occurred. Simplify pairs in reversed order, without
1197 special-casing the first iteration. Pack ops after simplifying pairs.
1199 2006-09-05 Anatoly Sokolov <aesok@post.ru>
1201 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
1202 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1203 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1204 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
1206 2006-09-05 Richard Guenther <rguenther@suse.de>
1208 PR tree-optimization/28900
1209 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
1210 compound conditional before creating COND_EXPR condition.
1212 2006-09-05 Richard Guenther <rguenther@suse.de>
1214 PR tree-optimization/28905
1215 * tree-vrp.c (fix_equivalence_set): Manually implement
1216 !value_ranges_intersect_p to also handle symbolic ranges.
1218 2006-09-05 Richard Guenther <rguenther@suse.de>
1221 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
1224 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1226 PR rtl-optimization/27616
1227 * cse.c (table_size): New static variable.
1228 (new_basic_block): Initialize it to 0.
1229 (remove_from_table): Decrement it.
1230 (insert): Increment it.
1231 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
1232 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
1233 fold_rtx_mem_1 if under the cap.
1234 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
1235 the lookup of the equivalent expression and test for equality of the
1236 first operand of the equivalent expression before in turn looking up
1237 an equivalent constant for the second operand.
1239 2006-09-02 Geoffrey Keating <geoffk@apple.com>
1242 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
1243 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1244 pointer, instead of assuming it is possible to derive the
1245 correct args size from a call insn.
1247 2006-09-02 Jakub Jelinek <jakub@redhat.com>
1250 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
1251 (fold_builtin_mempcpy): Rename to...
1252 (fold_builtin_memory_op): ... this. Optimize one element copy
1254 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
1256 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
1257 (expand_builtin_memcpy, expand_builtin_mempcpy,
1258 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
1259 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
1260 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
1261 BUILT_IN_MEM{CPY,PCPY,MOVE}.
1263 2006-09-01 DJ Delorie <dj@redhat.com>
1265 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
1266 (stzx_16): Likewise.
1267 ("stzx_24_<mode>"): Likewise.
1268 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
1269 ("cmp<mode>_op"): New.
1270 (cmp<mode>): Change to expander; just save operands.
1272 (b<code>): Change to expander, emit compare here.
1273 (s<code>_op): Change to use split and expander.
1274 (s<code>_24_op): Likewise.
1275 (s<code>_<mode>): New.
1276 (s<code>_<mode>_24): New.
1277 (movqicc_<code>_<mode): New.
1278 (movhicc_<code>_<mode>): New.
1281 * config/m32c/m32c.c (compare_op0, compare_op1): New.
1282 (m32c_pend_compare): New.
1283 (m32c_unpend_compare): New.
1284 (m32c_expand_scc): New.
1285 (m32c_expand_movcc): Emit the compare also.
1286 * config/m32c/predicates.md (mra_nopp_operand): New.
1288 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
1289 Richard Guenther <rguenther@suse.de>
1290 Adam Nemet <anemet@caviumnetworks.com>
1293 * builtins.c (get_pointer_alignment): Handle more forms
1294 of base addresses that can be used to derive more precise
1295 information about alignment.
1297 2006-09-01 Jason Merrill <jason@redhat.com>
1300 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
1303 * gimplify.c (voidify_wrapper_expr): Handle null type.
1305 2006-09-01 Josh Conner <jconner@apple.com>
1308 * tree-nrv.c (dest_safe_for_nrv_p): New function.
1309 (execute_return_slot_opt): Use it.
1311 2006-08-31 Josh Conner <jconner@apple.com>
1314 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
1315 returning aggregates.
1317 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
1319 PR tree-optimization/28839
1320 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
1321 blocks in that phi arguments appear.
1323 2006-08-31 Roger Sayle <roger@eyesopen.com>
1326 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
1327 NULL, otherwise use an advance_loc4 to adjust relative to the
1329 (output_cfi) <DW_CFA_set_loc>: Update the current label.
1330 (dwarf2out_switch_text_section): Reset the current label to avoid
1331 using advance_loc4 over section boundaries.
1333 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
1336 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
1337 r12 + SYMBOLIC_CONST.
1339 2006-08-30 Richard Guenther <rguenther@suse.de>
1341 * Makefile.in (see.o): Add $(EXPR_H) dependency.
1343 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
1345 PR rtl-optimization/27735
1346 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
1347 Add new argument to keep track of whether an irreducible region
1348 was affected. All callers changed.
1349 (fix_irreducible_loops): Removed.
1350 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
1351 flags were invalidated.
1353 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
1355 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
1356 instead of SF operands.
1357 (*fop_df_comm_sse): Likewise.
1358 (*fop_df_comm_i387): Likewise.
1359 (*fop_df_1_mixed): Likewise.
1360 (*fop_df_1_sse): Likewise.
1362 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
1363 J"orn Rennecke <joern.rennecke@st.com>
1365 PR tree-optimization/17506
1366 * tree-ssa.c (warn_uninit): If warning about a location outside of
1367 the current function, note where the variable was declared.
1369 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
1371 PR tree-optimization/28411
1372 * double-int.c (double_int_div): Use double_int_divmod.
1373 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
1374 double_int_mod, double_int_smod, double_int_umod): New functions.
1375 * double-int.h (double_int_divmod, double_int_sdivmod,
1376 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
1378 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
1380 (get_computation_aff, get_computation_cost_at): Handle double_int
1381 return type of constant_multiple_of.
1383 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
1386 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
1387 an implicit conversion.
1389 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
1391 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
1393 2006-08-27 Roger Sayle <roger@eyesopen.com>
1395 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
1398 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
1400 * config/i386/crtfastmath.c: Fix a comment typo.
1402 2006-08-26 Roger Sayle <roger@eyesopen.com>
1404 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
1405 temporary visit flags on CASE_LABEL_EXPRs.
1406 * c-common.c (match_case_to_enum): Add function comment. Avoid
1407 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
1408 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
1409 CASE_HIGH_SEEN for enumerated types. If the switch expression is
1410 a constant, only warn if that constant value isn't handled.
1412 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
1415 * input.h (restore_input_file_stack): Declare.
1416 (INPUT_FILE_STACK_BITS): Define.
1417 * toplev.c (fs_p, input_file_stack_history,
1418 input_file_stack_restored, restore_input_file_stack): New.
1419 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
1420 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
1421 (pop_srcloc): Don't free old state of stack.
1423 2006-08-26 David Edelsohn <edelsohn@gnu.org>
1426 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
1427 (PowerPC Type Attributes): New.
1429 2006-08-26 Bob Wilson <bob.wilson@acm.org>
1431 * config/xtensa/xtensa.c (function_arg_boundary): New.
1432 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
1434 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
1435 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
1437 2006-08-26 Jakub Jelinek <jakub@redhat.com>
1440 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
1443 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1445 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
1446 (verify_local_live_at_start): Likewise.
1448 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
1451 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
1452 omp_add_variable): Treat sizes as variable whenever not
1455 2006-08-26 Richard Guenther <rguenther@suse.de>
1458 * fold-const.c (fold_binary): Fold temporary to correct
1459 type before constructing new comparison.
1461 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
1464 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
1465 variable again if DECL_SEEN_IN_BIND_EXPR_P.
1467 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
1470 * c-decl.c (start_function): Don't try to process prototype
1471 information from old declaration that isn't a function.
1473 2006-08-25 Jan Hubicka <jh@suse.cz>
1476 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
1478 2006-08-25 Alan Modra <amodra@bigpond.net.au>
1481 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
1484 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
1486 PR tree-optimization/16876
1487 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
1488 exit if PARM doesn't match VALUE.
1490 2006-08-25 Bob Wilson <bob.wilson@acm.org>
1492 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
1493 literal_prefix directive.
1494 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
1495 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1496 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1498 2006-08-25 David Edelsohn <edelsohn@gnu.org>
1501 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
1502 predicate to general_operand. Add 0->y and I->r alternatives.
1504 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
1506 * doc/tm.texi: Fix a typo.
1507 * predict.c: Fix comment typos.
1509 2006-08-25 Nick Clifton <nickc@redhat.com>
1511 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1512 assertions of "cpu" and "machine".
1514 2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
1517 * tree-ssa-operands.c (access_can_touch_variable): Don't say
1518 the access through a base which has an alias set of 0 cannot
1521 2006-08-24 Bill Wendling <wendling@apple.com>
1523 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
1525 2006-08-24 Jan Hubicka <jh@suse.cz>
1527 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
1529 2006-08-24 Jan Hubicka <jh@suse.cz>
1532 * cgraph.c: Fix comments.
1533 (cgraph_varpool_mark_needed_node): Mark only variables not already
1535 * cgraphunit.c: Update comments; include gt-cgraphunit.h
1536 (cgraph_varpool_assembled_nodes_queue): New static variable.
1537 (cgraph_varpool_assemble_decl): Record output decls for debug out code.
1538 (cgraph_varpool_output_debug_info): New function.
1539 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
1540 * Makefile.in: Add gt-cgraphunit.h
1542 2006-08-24 Jan Hubicka <jh@suse.cz>
1544 * predict.c (probability_reliable_p): New predicate.
1545 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
1546 (predict_loops): Do not predict loop exit with less than 2%
1548 * basic-block.h (edge_probability_reliable_p,
1549 br_prob_note_reliable_p): Declare.
1550 * ia64.h (ia64_print_operand): Do not disable on-chip branch
1551 prediction when static predictor is not reliable.
1552 * rs6000.c (output_cbranch): Likewise.
1554 2006-08-23 Stuart Hastings <stuart@apple.com>
1557 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
1558 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
1560 2006-08-21 Geoffrey Keating <geoffk@apple.com>
1563 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
1564 complex values, nor for generic vector values.
1566 2006-08-22 Richard Guenther <rguenther@suse.de>
1569 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
1570 parameter. Convert arguments to arithmetic expression to the
1572 (analyze_scalar_evolution_1): Adjust caller.
1574 2006-08-22 Jan Hubicka <jh@suse.cz>
1576 Patch by Paolo Bonzini
1577 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
1580 2006-08-22 Daniel Berlin <dberlin@dberlin.org>
1582 PR tree-optimization/28003
1583 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
1584 before grouping aliases.
1586 2006-08-22 Roger Sayle <roger@eyesopen.com>
1588 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
1589 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
1591 2006-08-21 Jason Merrill <jason@redhat.com>
1594 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
1595 wrapper. Loop to handle nested wrappers.
1596 (gimplify_bind_expr): Remove temp parameter.
1597 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
1598 and STATEMENT_LIST on the rhs.
1599 (gimplify_statement_list): Voidify the STATEMENT_LIST.
1600 (gimplify_expr): Pass pre_p to gimplify_statement_list.
1601 (gimplify_target_expr): Remove special BIND_EXPR handling.
1603 2006-08-21 J"orn Rennecke <joern.rennecke@st.com>
1605 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
1608 2006-08-21 Olivier Hainque <hainque@adacore.com>
1610 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
1611 Arrange for the temporary captures of components overlapping the lhs
1612 to happen before the lhs is possibly cleared.
1614 2006-08-21 Mark Shinwell <shinwell@codesourcery.com>
1616 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
1617 necessary places to pass the correct "number of registers" values
1620 2006-08-20 Jan Hubicka <jh@suse.cz>
1622 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
1623 (create_name_tags): Instead of quadratic checking use hashtable.
1624 * bitmap.h: Include hashtab.h.
1625 (bitmap_hash): Declare.
1626 * bitmap.c (bitmap_hash): New function.
1628 2006-08-20 Jan Hubicka <jh@suse.cz>
1630 PR rtl-optimization/28071
1631 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
1633 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
1634 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
1635 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
1636 cgraph_decide_inlining_incrementally): Update use of
1637 cgraph_check_inline_limits.
1638 * cgraph.c (edge_hash, edge_eq): New function.
1639 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
1640 cgraph_edge_remove_caller, cgraph_node_remove_callees,
1641 cgraph_remove_node): Maintain call site hash.
1642 * cgraph.h (struct cgraph_node): Add call_site_hash.
1643 (cgraph_set_call_stmt): New function.
1645 2006-08-20 Jan Hubicka <jh@suse.cz>
1647 PR rtl-optimization/28071
1648 * reload1.c (reg_has_output_reload): Turn into regset.
1649 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
1650 choose_reload_regs, emit_reload_insns): Update to new
1651 reg_has_output_reload.
1653 2006-08-20 Jan Hubicka <jh@suse.cz>
1656 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
1657 function body sizes.
1658 * cgraphunit.c (cgraph_analyze_function): Don't do so.
1660 2006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
1663 * tree.c (handle_dll_attribute): Return early if not a
1664 var or function decl.
1666 2006-08-18 Joseph Myers <joseph@codesourcery.com>
1669 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
1670 alignment of SPE vector types.
1672 2006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
1674 * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
1676 2006-08-17 Jakub Jelinek <jakub@redhat.com>
1679 * cgraph.h (struct cgraph_node): Remove externally_visible
1681 * cgraphunit.c (process_function_and_variable_attributes): Set
1682 local.externally_visible rather than externally_visible.
1685 * c-common.c (handle_externally_visible_attribute): First look
1686 at TREE_CODE and only if it is function or var decl, check for
1687 non-public objects. Don't warn for DECL_EXTERNAL.
1688 * cgraphunit.c (process_function_and_variable_attributes): Warn
1689 if externally_visible attribute is used on non-public object.
1691 2006-08-17 Jan Hubicka <jh@suse.cz>
1693 PR tree-optimization/27865
1694 * reload1.c (forget_marked_reloads): New function.
1695 (forget_old_reloads_1): When data are passed, just mark the registers
1697 (reload_as_needed): Use the new mechanizm.
1699 2006-08-17 Alexandre Oliva <aoliva@redhat.com>
1702 * reload.h (reg_equiv_alt_mem_list): New declaration.
1703 * reload1.c (reg_equiv_alt_mem_list): New definition.
1704 (reload): Initialize it and release it.
1705 (delete_output_reload): Use it.
1706 * reload.c (push_reg_equiv_alt_mem): New function.
1707 (find_reloads_toplev): Call it.
1708 (find_reloads_address, find_reloads_address_1): Likewise.
1709 (find_reloads_subreg_address): Likewise.
1711 2006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1713 PR rtl-optimization/28489
1714 * sched-ebb.c (begin_schedule_ready): Create basic block
1716 (advance_target_bb): Skip empty blocks.
1717 * haifa-sched.c (bb_note): Make global.
1718 * sched-int.h (bb_note): Add prototype.
1720 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1722 PR tree-optimization/27865
1723 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
1725 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
1726 fold_used_pointer, pointer_used_p): New functions.
1727 (analyze_scalar_evolution_1): Use fold_used_pointer.
1728 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
1729 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
1732 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1735 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
1736 or the INTEGER_CST. Fail on a CALL_EXPR.
1737 (fold_offsetof): Pass new argument to fold_offsetof_1.
1738 * c-parser.c (c_parser_postfix_expression): Don't include a NULL
1739 operand into an INDIRECT_REF.
1740 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1742 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1744 PR gcov/profile/26570
1745 * value-prof.c (static_values): Removed.
1746 (tree_find_values_to_profile): Do not set static_values.
1747 (find_values_to_profile): Do not free static_values.
1748 * profile.c (instrument_values): Do not free the values.
1749 (branch_prob): Free the values.
1751 2006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
1753 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1755 2006-08-16 Joseph S. Myers <joseph@codesourcery.com>
1758 * c-typeck.c (build_component_ref): Combine qualifiers of
1759 structure or union and field.
1761 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1763 PR rtl-optimization/28071
1764 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1765 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1766 * tree-into-ssa.c (struct dom_dfsnum): New.
1767 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1769 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1770 compute_global_livein.
1771 (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1772 in phi nodes in the correct blocks.
1774 2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1776 PR tree-optimization/28364
1777 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1779 (fold_affine_expr): New function.
1780 (may_eliminate_iv): Use fold_affine_expr.
1782 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1785 * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1788 2006-08-16 Mike Stump <mrs@apple.com>
1790 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1791 * doc/cppopts.texi (-MD): Likewise.
1793 2006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
1796 * c-common.c (handle_weak_attribute): Ignore and warn if
1797 not a FUNCTION_ or VAR_DECL.
1799 2006-07-15 Mike Stump <mrs@apple.com>
1802 * c-parser.c (c_parser_typeof_specifier): Don't use
1803 c_finish_expr_stmt, open code desired semantics instead.
1805 2006-08-15 Nick Clifton <nickc@redhat.com>
1807 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1808 fragment to tmake_file only if threads are enabled.
1809 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1810 * config/i386/t-gthr-win32: New file. ... here.
1812 2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1815 * c-parser.c (c_parser_compound_statement_nostart): Reset
1816 parser->error after each statement.
1818 2006-08-15 Jakub Jelinek <jakub@redhat.com>
1821 * omp-low.c (lower_omp_parallel): Convert t to
1822 receiver_decl's type.
1823 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1824 source before comparison.
1827 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1828 to itype in assignment to oldival2.
1830 2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
1834 * c-typeck.c (build_compound_expr): If the second expression
1835 is an error mark, then just return an error mark instead of
1836 creating a COMPOUND_EXPR.
1838 2006-07-14 Mike Stump <mrs@apple.com>
1840 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1842 2006-08-14 Kazu Hirata <kazu@codesourcery.com>
1844 * c-decl.c, var-tracking.c: Fix comment typos.
1846 2006-08-14 Richard Sandiford <richard@codesourcery.com>
1848 PR rtl-optimization/28634
1849 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1850 for floating-point modes unless flag_unsafe_math_optimizations.
1852 2006-08-13 Alexandre Oliva <aoliva@redhat.com>
1853 Andrew Pinski <pinskia@physics.uc.edu>
1856 * tree.c (build_array_type): Unify array types with
1857 unspecified index_type.
1858 * c-decl.c (grokdeclarator): Make sure we do not modify a
1859 unified incomplete array type.
1860 * c-typeck.c (store_init_value): Create distinct type before
1861 filling in the index type in an initializer from a compound
1864 * c-decl.c (grokdeclarator): Remove code where we copy the
1867 2006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
1869 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1870 into account for TODO_dump_cgraph.
1871 (TODO_update_ssa_no_phi): Likewise.
1872 (TODO_update_ssa_full_phi): Likewise.
1873 (TODO_update_ssa_only_virtuals): Likewise.
1874 (TODO_remove_unused_locals): Likewise.
1875 (TODO_set_props): Likewise.
1876 (TODO_update_stmt_usage): Likewise.
1878 2006-08-13 Dirk Mueller <dmueller@suse.de>
1880 * c-common.c (strict_aliasing_warning): Fix formatting.
1882 2006-08-13 Matthias Klose <doko@debian.org>
1884 * doc/invoke.texi: Fix spelling errors.
1886 2006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1888 PR rtl-optimization/23454
1889 * reorg.c (relax_delay_slots): Update comment.
1891 2006-08-11 Richard Guenther <rguenther@suse.de>
1894 * simplify-rtx.c (simplify_const_relational_operation):
1895 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1898 2006-08-10 Eric Botcazou <ebotcazou@adacore.com>
1900 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1901 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1903 2006-08-10 Paul Brook <paul@codesourcery.com>
1905 * final.c (final_scan_insn): Clear current_insn_predicate before
1906 outputting inline asm.
1908 2006-08-10 Dorit Nuzman <dorit@il.ibm.com>
1910 PR tree-optimization/26197
1911 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1912 get_ref_base_and_extent and overlap_subvar to add only relevant
1913 subvars as may-aliases.
1914 (add_may_alias_for_new_tag): New function, factored out of
1916 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1917 with additional argument.
1918 * tree-flow.h (new_type_alias): Takes additional argument.
1920 2006-08-09 Nathan Sidwell <nathan@codesourcery.com>
1922 * gcov.c (no_data_file): New flag.
1923 (read_count_file): Set it if data file not present. Assume counts
1925 (output_lines): Don't name the data file, if there wasn't one.
1927 2006-08-09 Eric Botcazou <ebotcazou@adacore.com>
1929 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
1930 (rs6000_generate_compare): Tweak comments.
1931 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
1933 2006-08-09 Alexandre Oliva <aoliva@redhat.com>
1935 * var-tracking.c (enum micro_operation_type): Add MO_COPY.
1936 (var_debug_decl): New function.
1937 (var_reg_set): Follow debug decl link. Add location even if
1938 reg is already known to hold some other variable.
1939 (var_mem_set): Follow debug decl link.
1940 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
1941 decl link. Delete other known locations of the variable part
1943 (var_reg_delete, var_mem_delete): Delete other known locations
1944 of the variable part if requested.
1945 (same_variable_part_p): New function.
1946 (add_stores): Select MO_COPY when appropriate.
1947 (vt_initialize): Handle it.
1948 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
1949 known locations for MO_SET and MO_CLOBBER.
1950 (find_variable_location_part): New function.
1951 (set_variable_part, delete_variable_part): Use it.
1952 (clobber_variable_part): New function.
1953 * dwarf2out.c (dwarf2out_var_location): Do not follow debug
1956 2006-08-07 Victor Kaplansky <victork@il.ibm.com>
1958 PR tree-optimization/26969
1959 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
1960 with an empty list of PHIs.
1962 2006-08-06 Paolo Bonzini <bonzini@gnu.org>
1966 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
1969 2006-08-06 Andreas Schwab <schwab@suse.de>
1971 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
1972 string. Whitespace and comment fixup.
1974 2006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1977 * c-decl.c (validate_proto_after_old_defn): Return false on invalid
1981 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
1984 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
1986 2006-08-04 Jan Hubicka <jh@suse.cz>
1990 * reload.c (push_reload): Patch out the mismatching instruction;
1992 (find_reload): Bail out if the instruction was patched out.
1994 2006-08-04 Jan Hubicka <jh@suse.cz>
1996 PR tree-optimization/24888
1997 * tree-inline.c (expand_call_inline): Do not re-record variables.
1998 (declare_inline_vars): Add variable to unexpanded_var_list.
2000 2006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2001 Roger Sayle <roger@eyesopen.com>
2003 PR rtl-optimization/26244
2004 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
2005 inner_const are negative or greater than or equal to the bitsize of
2006 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
2007 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
2008 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
2009 CONST0_RTX (mode) when the new shift count is greater than or equal to
2010 to the bitsize of the object being shifted and XEXP (y, 0) has no side
2013 2006-08-04 Kazu Hirata <kazu@codesourcery.com>
2015 * tree-cfg.c: Fix a comment typo.
2017 2006-08-03 Mark Mitchell <mark@codesourcery.com>
2020 * varasm.c (output_constant): Give the front end another chance to
2021 expand constants, after stripping NOPs.
2023 2006-08-03 Jan Hubicka <jh@suse.cz>
2025 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
2028 2006-08-03 Dorit Nuzman <dorit@il.ibm.com>
2030 PR tree-optimization/27770
2031 * tree-vectorizer.h (get_vectype_for_scalar_type): Function
2032 declaration removed (moved to tree-flow.h).
2033 (vect_can_force_dr_alignment_p): Likewise.
2034 * tree-flow.h (get_vectype_for_scalar_type): New function declaration
2035 (moved from tree-vectorizer.h).
2036 (vect_can_force_dr_alignment_p): Likewise.
2037 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
2038 from outside the vectorizer - in particular from cgraph stage.
2039 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
2040 the alignment of global arrays when -fsection-anchors is enabled.
2041 * cgraphunit.c (cgraph_increase_alignment): New function.
2042 (cgraph_optimize): Call cgraph_increase_alignment.
2044 2006-08-03 David Edelsohn <edelsohn@gnu.org>
2047 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
2048 not reload a SPE symbol_ref into a lo_sum address.
2050 2006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
2053 * dwarf2out.c (prune_unused_types_prune): Move call to
2054 prune_unused_types_update_strings to cover the parent DIE also.
2056 2006-08-02 Jan Hubicka <jh@suse.cz>
2058 PR gcov/profile/28480
2059 * tree-cfg.c (change_bb_for_stmt): New function.
2060 (tree_merge_blocks, tree_split_blocks): Use it.
2062 2006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2068 * toplev.c (compile_file): Return early on errorcount or sorrycount.
2069 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
2070 (cgraph_optimize): Likewise.
2072 2006-08-01 Stuart Hastings <stuart@apple.com>
2074 * rtl.h (UINTVAL) New.
2075 * config/rs6000/rs6000.c (SMALL_INT) Use it.
2076 * testsuite/gcc.dg/20060801-1.c: New.
2078 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
2081 * c-typeck.c (build_external_type): Mark used enum types.
2082 * dwarf2out.c (dwarf2out_abstract_function): Save and restore
2084 (gen_subprogram_die): Whitespace fix.
2086 2006-08-01 Jan Hubicka <jh@suse.cz>
2088 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
2089 bitmap when not needed.
2090 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
2093 2006-08-01 Dirk Mueller <dmueller@suse.de>
2095 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
2097 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2099 * Makefile.in: Revert part of previous patch:
2100 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
2103 2006-07-30 Eric Christopher <echristo@apple.com>
2106 * doc/extend.texi (i386 Variable Attributes): Add anchor.
2107 (PowerPC Variable Attributes): New section.
2109 2006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
2111 PR target/28126 (partial fix)
2112 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
2114 2006-07-28 Jan Hubicka <jh@suse.cz>
2116 PR rtl-optimization/28071
2117 * cfgrtl.c (rtl_delete_block): Free regsets.
2118 * flow.c (allocate_bb_life_data): Re-use regsets if available.
2120 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2122 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
2123 and variables used in dependencies.
2125 2006-07-27 Arjan van de Ven <arjan@linux.intel.com>
2127 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
2128 %fs for -mcmodel=kernel.
2129 (stack_tls_protect_test_di): Likewise.
2131 2006-07-27 Carlos O'Donell <carlos@codesourcery.com>
2133 * Makefile.in: Use mkinstalldirs.
2135 2006-07-27 H.J. Lu <hongjiu.lu@intel.com>
2138 * opts-common.c (prune_options): Skip joined switches.
2140 2006-07-27 Jan Hubicka <jh@suse.cz>
2142 PR rtl-optimization/28071
2143 * cselib.c (cselib_process_insn): Don't remove useless values too
2144 often for very large hashtables.
2146 2006-07-27 Jan Hubicka <jh@suse.cz>
2148 PR rtl-optimization/28071
2149 * global.c (greg_obstack): New obstack.
2150 (allocate_bb_info): Use it.
2151 (free_bb_info): Likewise.
2152 (modify_reg_pav): Likewise.
2154 2006-07-27 Roger Sayle <roger@eyesopen.com>
2156 * builtins.c (fold_fixed_mathfn): When long and long long are the
2157 same size, canonicalize llceil*, llfloor*, llround* and llrint*
2158 functions to their lceil*, lfloor*, lround* and lrint* forms.
2160 2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2163 * config/m32r/m32r.md (branch_insn): Reduce pc range for short
2165 (rev_branch_insn): Likewise.
2167 2006-07-27 Jan Hubicka <jh@suse.cz>
2169 PR rtl-optimization/28071
2170 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
2171 (reg_set_in_bb, max_reg_computed): New static variables.
2172 (regmove_optimize): Free the new array.
2173 (fixup_match_1): Update call of reg_is_remote_constant_p.
2175 2006-07-26 Jan Hubicka <jh@suse.cz>
2177 PR tree-optimization/27882
2178 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
2180 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
2182 (cgraph_analyze_compilation_unit): Likewise.
2183 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2184 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
2185 (cgraph_early_inlinine): Make order garbage collected.
2186 * Makefile.in (gt-ipa-inline): New garbagecollected file.
2188 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
2190 * dbxout.c (output_types_sort): Add a comment.
2191 (output_used_types): Free the VEC.
2193 2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
2195 * function.c (reorder_fix_fragments): Delete.
2196 (reorder_blocks): Don't call it.
2197 (reorder_blocks_1): Put all subblocks under the origin block.
2199 2006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
2201 PR rtl-optimization/27907
2202 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
2205 2006-07-25 Roger Sayle <roger@eyesopen.com>
2208 * convert.c (convert_to_integer): When transforming (T)foo(x) into
2209 bar(x) check that bar's result type can represent all the values of T.
2211 2006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
2213 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
2215 2006-07-25 Nick Clifton <nickc@redhat.com>
2217 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
2218 size_lookup[] array.
2219 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
2220 (ggc_pch_count_object): Likewise.
2221 (ggc_pch_alloc_object): Likewise.
2222 (ggc_pch_write_object): Likewise.
2223 (init_ggc): Do not attempt to initialize entries in the
2224 size_lookup[] array for objects whose size is greater than than
2225 the length of the array.
2227 2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
2229 * dbxout.c (output_used_types_helper): Push queued types
2231 (output_types_sort): New.
2232 (output_used_types): Collect used types on a VEC and sort them
2235 2006-07-24 Richard Guenther <rguenther@suse.de>
2238 * cgraph.c (cgraph_remove_node): Do not check if dumps
2240 * cgraphunit.c (cgraph_optimize): Likewise.
2242 2006-07-24 Jan Hubicka <jh@suse.cz>
2244 PR rtl-optimization/28071
2245 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
2246 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
2247 splitting before first stmt.
2249 2006-07-24 Jan Hubicka <jh@suse.cz>
2251 PR rtl-optimization/28071
2252 * ipa-inline.c (update_caller_keys): Remove edges that
2253 are no longer inline candidates.
2255 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
2258 * dbxout.c (output_used_types_helper, output_used_types): New.
2259 (dbxout_symbol): Call output_used_types.
2261 2006-07-23 Jan Hubicka <jh@suse.cz>
2265 * cgraph.c (cgraph_varpool_nodes): Export.
2266 (decide_is_variable_needed): Ignored "used" attribute in
2267 unit-at-a-time mode.
2268 * cgraph.h (cgraph_varpool_nodes): Declare.
2269 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
2270 unit-at-a-time mode.
2272 2006-07-23 Roger Sayle <roger@eyesopen.com>
2275 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
2276 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
2277 the __gthrw form of thr_keycreate.
2278 (__gthread_key_delete): Silence the unused argument warning.
2280 2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
2283 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
2284 Cache the last found '\0' marker to avoid quadratic behavior.
2286 2006-07-23 Jan Hubicka <jh@suse.cz>
2288 * i386.md (subsi_3_zext): Fix output template.
2290 2006-07-21 Mike Stump <mrs@apple.com>
2292 * doc/invoke.texi (C++ Dialect Options): Note that
2293 -fvisibility-inlines-hidden doesn't affect explicitly
2294 instantiationed inline methods.
2296 2006-07-20 Roger Sayle <roger@eyesopen.com>
2298 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
2299 if the target assembler is GNU binutils' gas.
2300 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
2301 whether to pass GNU gas or native as command line options.
2303 2006-07-20 Jason Merrill <jason@redhat.com>
2305 * tree.c (remove_attribute): New fn.
2306 * tree.h: Declare it.
2308 2006-07-20 Paul Brook <paul@codesourcery.com>
2311 * cse.c (cse_insn): Add destination addresses to hash table. Check if
2312 they are invalidated by this instruction.
2314 2006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
2317 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
2319 2006-07-20 Eric Christopher <echristo@apple.com>
2322 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
2324 2006-07-19 Eric Christopher <echristo@apple.com>
2326 * config/t-slibgcc-darwin (stmp-lipo): Remove.
2327 Rewrite dependencies for libgcc_s.1.dylib.
2329 2006-07-19 Jakub Jelinek <jakub@redhat.com>
2331 * except.c (duplicate_eh_regions_1): Clear next_peer.
2333 2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
2335 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
2336 -mlongcall does not guarantee all calls will be long.
2337 * doc/extend.texi (long_call/short_call): Document that longcall
2338 does not guarantee a long call will be used.
2339 (longcall/shortcall): Likewise.
2341 2006-07-18 Roger Sayle <roger@eyesopen.com>
2344 * expmed.c (expand_shift): Additionally check that the shift_cost
2345 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
2346 before implementing a LSHIFT_EXPR as a sequence of additions.
2347 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
2348 middle-end that DImode shifts need to be synthesized by expand.
2350 2006-07-18 Diego Novillo <dnovillo@redhat.com>
2353 * tree-ssa-operands.c (access_can_touch_variable): Update
2355 Return true if ALIAS is .GLOBAL_VAR.
2357 2006-07-18 David Daney <ddaney@avtrex.com>
2359 * gcc.c (display_help): Fix typo in help text.
2361 2006-07-18 Olivier Hainque <hainque@adacore.com>
2363 * tree.h (categorize_ctor_elements): Adjust prototype and add
2364 descriptive comment, both in accordance with the interface change
2366 * varasm.c (constructor_static_from_elts_p): New function.
2367 Whether a constructor node is a valid static constant initializer
2368 if all its elements are.
2369 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
2370 * output.h: Declare it.
2371 * expr.c (categorize_ctor_elements_1): Return whether the constructor
2372 is a valid constant initializer instead of computing the number of
2373 non-constant elements. Use constructor_static_from_elts_p for this
2374 purpose. Replace the head comment with an indication that this is a
2375 helper for categorize_ctor_elements.
2376 (categorize_ctor_elements): Same interface change as for the _1
2377 helper. Former head comment from this helper moved here, adjusted to
2378 account for the interface changes.
2379 (mostly_zeros_p): Adjust call to categorize_ctor_elements.
2380 (all_zeros_p): Likewise.
2381 * gimplify.c (gimplify_init_constructor): Decide whether we can make
2382 static versions of the constructor from the categorize_ctor_elements
2383 return value instead of the formerly computed number of non-constant
2386 2006-07-18 Paolo Bonzini <bonzini@gnu.org>
2388 * configure: Regenerate.
2389 * Makefile.in (build_libsubdir): New configure substitution
2390 (build_libobjdir): New variable.
2391 (BUILD_LIBIBERTY): Use it.
2393 2006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2396 * c-pragma.c (handle_pragma_pack): Handle invalid constants.
2398 2006-07-18 Alexandre Oliva <aoliva@redhat.com>
2401 * c-common.c (handle_weakref_attribute): Ignore attribute in
2402 the same conditions the alias attribute is ignored.
2404 2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
2406 * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
2407 (dbxout_begin_prologue): Increment scope_labelno.
2409 2006-07-17 Richard Henderson <rth@redhat.com>
2412 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
2415 2006-07-17 Roger Sayle <roger@eyesopen.com>
2416 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2418 * config/i386/gmon-sol2.c: Silence compilation warnings by partially
2419 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
2420 blocks. #include "tconfig.h" and "tsystem.h" to prototype system
2421 functions such as sbrk, write, etc.. Add function prototypes.
2422 Convert function declarations from K&R to ISO C. Cast pointers
2423 to "long" and "unsigned long" instead of "int" and "unsigned int".
2424 Convert tokens following #endif into comments.
2426 2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
2428 * invoke.texi: Remove mention of f77; Reformat table for
2429 inline parameter options correctly; mention that -malign-double
2430 is default on x86-64 targets.
2432 2006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
2434 * tree-chrec.c (avoid_arithmetics_in_type_p): New.
2435 (convert_affine_scev, chrec_convert_aggressive): Use
2436 avoid_arithmetics_in_type_p. Do not check for the subtypes
2439 2006-07-17 Richard Sandiford <richard@codesourcery.com>
2442 * optabs.c (expand_doubleword_shift): Wrap the call to
2443 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
2445 2006-07-17 Richard Sandiford <richard@codesourcery.com>
2448 * optabs.c (expand_binop): Pass next_methods rather than methods
2449 to expand_doubleword_shift.
2451 2006-07-17 J"orn Rennecke <joern.rennecke@st.com>
2454 * tree.h (dump_addr): Declare.
2455 * print-tree.c (dump_addr): New function.
2456 (print_node_brief, print_node): Use it.
2457 * print-rtl.c (print_rtx): Likewise.
2458 * common.opt (-fdump-noaddr): New option.
2459 * doc/invoke.texi (-fdump-noaddr): Document.
2460 * loop-unroll.c (si_info_hash): Make hash independent of addresses.
2461 (ve_info_hash): Likewise.
2463 2006-07-13 Andrew Haley <aph@redhat.com>
2465 PR tree-optimization/19505
2466 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
2467 edge leaving this block, make sure that the destination of this
2468 block has only one predecessor.
2470 2006-07-17 Richard Guenther <rguenther@suse.de>
2472 PR tree-optimization/28238
2473 * tree-inline.c (copy_bb): Check if we produced valid
2474 gimple copying and substituting a stmt. If not, gimplify
2477 2006-07-16 Eric Botcazou <ebotcazou@adacore.com>
2479 * optabs.c (maybe_encapsulate_block): New function extracted from...
2480 (emit_libcall_block): ...here. Invoke it on the block of insns to
2481 maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
2482 (emit_no_conflict_block): Likewise.
2484 2006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
2486 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
2488 2006-07-15 Roger Sayle <roger@eyesopen.com>
2490 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
2491 a new NOP_EXPR case of the switch statement.
2493 2006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
2496 * stor-layout.c (place_field): Take the bit field with
2497 an excessive size into account in the ms-bitfiled case.
2500 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
2501 the previous bit field.
2503 2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
2506 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2508 2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
2510 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
2511 signal frames correctly even when the signal was installed with
2514 2006-07-14 Carlos O'Donell <carlos@codesourcery.com>
2516 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
2517 (dbxout_function_end): Use local label LFBB. Remove hook
2519 (dbxout_source_line): Use local label LFBB.
2520 (dbxout_block): Likewise.
2521 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
2522 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
2523 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
2524 and DBX_OUTPUT_NFUN.
2526 2006-07-13 Janis Johnson <janis187@us.ibm.com>
2528 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
2530 2006-07-13 Jan Hubicka <jh@suse.cz>
2532 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
2534 * output.h (align_variable): Declare.
2535 * varasm.c (align_variable): Export.
2536 * value-prof.c (tree_value_profile_transformations): Recompute iterator
2537 when basic block changed.
2539 2006-07-13 Nick Clifton <nickc@redhat.com>
2541 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
2542 walking the LOG_LINKS chain.
2544 2006-07-12 Geoffrey Keating <geoffk@apple.com>
2546 * doc/invoke.texi (C++ Dialect Options): Explain difference
2547 between -fvisibility-inlines-hidden and setting hidden
2548 visibility explicitly.
2550 2006-07-12 Eric Christopher <echristo@apple.com>
2552 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
2553 (stmp-lipo): Depend on libgcc.a.
2555 2006-07-12 Kazu Hirata <kazu@codesourcery.com>
2557 * tree.c: Fix a comment typo.
2559 2006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
2561 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
2563 (umulhisi3_r): Likewise.
2565 2006-07-12 Paolo Carlini <pcarlini@suse.de>
2568 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
2569 x < 19, vs wchar_t support.
2571 2006-07-12 Nick Clifton <nickc@redhat.com>
2573 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
2574 instead of -isa=sh4.
2576 2006-07-12 Mike Stump <mrs@apple.com>
2578 * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
2580 2006-07-10 Eric Christopher <echristo@apple.com>
2582 * config/t-slibgcc-darwin: Rewrite.
2584 2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2587 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
2590 2006-07-08 Matthias Klose <doko@debian.org>
2592 * doc/sourcebuild.texi: Fix typo.
2594 2006-07-07 Mike Stump <mrs@apple.com>
2596 * toplev.c (process_options): Don't give -ffunction-sections may
2597 affect debugging warning for Mach-O.
2599 2006-07-07 James E Wilson <wilson@specifix.com>
2601 * config/mips/mips.md (cpu): Add sb1a.
2602 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
2603 addition to sb1. Adjust comments to clarify SB-1A differences from
2605 (ir_sb1a_load): New. Modify bypasses to use it.
2606 (ir_sb1a_simple_alu): Likewise.
2607 * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
2608 (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
2609 (mips_issue_rate): Add PROCESSOR_SB1A.
2610 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
2611 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
2612 (TARGET_SB1): Add PROCESSOR_SB1A check.
2613 (TUNE_SB1): Likewise.
2615 * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
2616 * config/mips/mips.c (mips_store_data_bypass_p): New.
2617 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
2618 store_data_bypass_p.
2620 2006-07-08 Paul Brook <paul@codesourcery.com>
2623 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
2625 2006-07-07 Richard Guenther <rguenther@suse.de>
2628 * tree.h (build_one_cst): Declare.
2629 * tree.c (build_one_cst): New function.
2630 * tree-ssa-math-opts.c (get_constant_one): Remove.
2631 (insert_reciprocals): Use build_one_cst.
2632 * fold-const.c (fold_plusminus_mult): Likewise.
2634 2006-07-07 Roger Sayle <roger@eyesopen.com>
2636 * pointer-set.c (pointer_set_destroy): Correct whitespace.
2637 * cfgloopanal.c (dump_graph): Likewise.
2638 * dojump.c (discard_pending_stack_adjust): Likewise.
2639 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
2641 * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
2642 * function.c (finalize_block_changes): Likewise.
2643 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
2644 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
2645 * rtl.c (dump_rtx_statistics): Likewise.
2646 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
2648 * varray.c (dump_varray_statistics): Likewise.
2649 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2650 decode_decimal64, encode_decimal128, decode_decimal128,
2651 decimal_real_to_decimal): Likewise.
2653 2006-07-07 Richard Guenther <rguenther@suse.de>
2655 PR tree-optimization/28187
2656 * tree-vrp.c (vrp_operand_equal_p): New function.
2657 (vrp_bitmap_equal_p): Likewise.
2658 (update_value_range): Use them to compare old and new
2661 2006-07-06 Roger Sayle <roger@eyesopen.com>
2663 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
2664 a default case to switch statement to silence compiler warnings.
2666 2006-07-06 Roger Sayle <roger@eyesopen.com>
2669 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
2670 the configured assembler supports the x87's ffreep mnemonic.
2671 * configure: Regenerate.
2672 * config.in: Regenerate.
2674 * config/i386/i386.c (output_387_ffreep): New function.
2675 (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
2676 (output_387_reg_move): Likewise.
2678 2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
2680 Port to hosts whose 'sort' and 'tail' implementations
2681 treat operands with leading '+' as file names, as POSIX
2682 has required since 2001. However, make sure the code still
2683 works on pre-POSIX hosts.
2684 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
2685 which says you should use "tail -c +N" rather than "tail +Nc".
2686 Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
2688 2006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
2690 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
2693 2006-07-06 David Edelsohn <edelsohn@gnu.org>
2696 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
2697 PRE_{INC,DEC} of TFmode.
2699 2006-07-06 David Edelsohn <edelsohn@gnu.org>
2700 Alan Modra <amodra@bigpond.net.au>
2703 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
2706 2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2709 * config/alpha/predicates.md (alpha_swapped_comparison_operator):
2710 Remove duplicate gtu.
2712 2006-07-05 Jason Merrill <jason@redhat.com>
2716 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
2717 * c-common.c (handle_packed_attribute): So don't copy it here.
2718 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2720 2006-07-05 Mike Stump <mrs@apple.com>
2722 * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2724 2006-07-05 H.J. Lu <hongjiu.lu@intel.com>
2727 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2729 2006-07-05 Richard Guenther <rguenther@suse.de>
2732 * config/i386/i386.md (*negdf2_1): Restrict pattern to
2733 TARGET_SSE2 targets if using SSE math.
2734 (*absdf2_1): Likewise.
2736 2006-07-05 Richard Guenther <rguenther@suse.de>
2738 PR tree-optimization/28162
2739 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2740 make sure to convert the operands to the correct type.
2742 2006-07-04 Paolo Bonzini <bonzini@gnu.org>
2744 PR tree-optimization/28218
2746 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2747 to calculate and free the dominator information.
2749 2006-07-04 Peter O'Gorman <peter@pogma.com>
2751 * mklibgcc.in: chmod 644 before ranlib during install.
2753 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
2754 J"orn Rennecke <joern.rennecke@st.com>
2756 * configure.ac (.eh_frame data check): Use diff -b.
2758 2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2761 * Makefile.in (BUILD_RTL): Add build/vec.o.
2762 (build/gencondmd.o): Filter out -fkeep-inline-functions.
2763 (build/genextract): Delete.
2764 (build/genautomata): Likewise.
2766 2006-07-04 Alan Modra <amodra@bigpond.net.au>
2769 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2770 128-bit IBM long doubles for ABI_V4.
2772 2006-07-03 Eric Botcazou <ebotcazou@adacore.com>
2774 * tree.c (range_in_array_bounds_p): New predicate.
2775 * tree.h (range_in_array_bounds_p): Declare it.
2776 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2777 return a less conservative answer.
2778 * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2779 and flag 'is_group'.
2780 (IS_ELEMENT_FOR_GROUP): New macro.
2781 (FOR_EACH_ACTUAL_CHILD): Likewise.
2782 (next_child_for_group): New helper function.
2783 (can_completely_scalarize_p): Take into account groups.
2784 (sra_hash_tree): Handle RANGE_EXPR.
2785 (sra_elt_eq): Likewise.
2786 (lookup_element): Be prepared for handling groups.
2787 (is_valid_const_index): Delete.
2788 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2789 instead of is_valid_const_index.
2790 <ARRAY_RANGE_REF>: New case.
2791 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2792 is_valid_const_index.
2793 <ARRAY_RANGE_REF>: Do not unconditionally punt.
2794 (scan_dump): Dump info for groups too.
2795 (decide_instantiation_1): Likewise.
2796 (decide_block_copy): Assert that the element is not a group.
2797 Propagate decision to groups.
2798 (generate_one_element_ref): Handle RANGE_EXPR.
2799 (mark_no_warning): Iterate over actual childs.
2800 (generate_copy_inout): Likewise.
2801 (generate_element_copy): Likewise.
2802 (generate_element_zero): Likewise.
2803 (generate_element_init_1): Likewise.
2804 (dump_sra_elt_name): Handle RANGE_EXPR.
2806 2006-07-03 Roger Sayle <roger@eyesopen.com>
2808 PR tree-optimization/26251
2809 * tree-ssa-threadupdate.c (redirection_block_p): New function.
2810 (thread_block): When optimizing for size refuse to thread jumps
2811 that would require duplication of blocks other than redirection
2814 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
2816 * configure.ac: Fix thinko in previous check-in.
2817 * configure: Regenerate.
2819 2006-07-03 Paolo Bonzini <bonzini@gnu.org>
2822 * configure.ac (for lang...): Simplify nesting of conditionals.
2823 Test subdir_requires for non-enabled languages. Move processing
2824 of lang_opt_files and lang_tree_fiels below that test.
2825 * configure: Regenerate.
2826 * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2828 2006-07-01 Martin Michlmayr <tbm@cyrius.com>
2830 * doc/gcov.texi (Invoking Gcov): Add a missing word.
2832 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
2834 * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2837 2006-06-29 Jason Merrill <jason@redhat.com>
2844 * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2845 * c-common.c (c_determine_visibility): Handle it here.
2846 * c-decl.c (finish_decl): Call c_determine_visibility for
2848 * flags.h (enum symbol_visibility): Sort from most to least visibility.
2850 * varasm.c (default_assemble_visibility): Likewise.
2851 * c-common.c (handle_visibility_attribute): Complain about trying
2852 to give visibility to an already defined class, or trying to change
2853 declared visibility. Always attach the attribute.
2858 * attribs.c (decl_attributes): Ignore type-in-place attributes
2859 once the type has been defined.
2861 2006-06-29 Roger Sayle <roger@eyesopen.com>
2864 * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2865 to indicate the cpplib has issued an error message for us.
2867 2006-06-29 Asher Langton <langton2@llnl.gov>
2870 * config/i386/i386.c (ix86_output_function_epilogue): Don't
2871 insert a label at the end of an function under Mach-O.
2873 2006-06-29 Eric Christopher <echristo@apple.com>
2874 Evan Cheng <evan.cheng@apple.com>
2876 * predicates.md (vector_all_ones_operand): New.
2877 (nonimmediate_or_sse_const_operand): Ditto.
2878 * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2879 * config/i386/i386.c (standard_sse_constant_opcode): Define.
2880 (standard_sse_mode_p): Ditto.
2881 (standard_sse_constant_p): Add case for -1 vector.
2882 (ix86_expand_vector_move): Try to use.
2883 * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2884 Call standard_sse_constant_opcode.
2885 (*movv4sf_internal): Ditto.
2886 (*movv2df_internal): Ditto.
2888 2006-06-29 Roger Sayle <roger@eyesopen.com>
2890 * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2891 of XEXP to extract the operands of a MATCH_CODE rtx.
2893 2006-06-28 Andrew Pinski <pinskia@gmail.com>
2895 * tree.c (tree_size): Do not waste tail padding in
2896 struct tree_string and make the size be the same as
2897 build_string will generate.
2899 2006-06-28 Jason Merrill <jason@redhat.com>
2902 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2903 may_aliases already in the tag's annotations to the bitmap.
2905 2006-06-28 Roger Sayle <roger@eyesopen.com>
2907 * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2909 2006-06-28 Roger Sayle <roger@eyesopen.com>
2911 * genpreds.c (generate_switch_p): New function.
2912 (add_mode_tests): Push the new mode test down inside an AND expr
2913 if this allows the switch-suitable MATCH_CODE to be near the root.
2914 (write_match_code_switch): New function to write a MATCH_CODE as
2916 (write_predicate_stmts): New function to write a predicate RTX
2917 expression as a sequence of statements.
2918 (write_one_predicate_function): Use write_predicate_stmts.
2919 (write_tm_constrs_h): Likewise.
2921 2006-06-26 Fred Fish <fnf@specifix.com>
2923 * config/mips/t-sb1: New file.
2924 * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
2927 2006-06-26 DJ Delorie <dj@redhat.com>
2929 * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2931 2006-06-26 Naveen H.S <naveenh@kpitcummins.com>
2932 Jayant Sonar <jayants@kpitcummins.com>
2933 Jaydeep Vipradas <jaydeepv@kpitcummins.com>
2935 * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
2936 (subsi3, subsi3_1, subsi3_2): New.
2937 * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
2938 * config/m32c/mov.md (SI mov peephole): New.
2939 * config/m32c/m32.c (m32c_immd_dbl_mov): New.
2940 * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
2942 2006-06-26 Olivier Hainque <hainque@adacore.com>
2944 * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
2945 a CALL_EXPR target function declaration.
2947 2006-06-26 Richard Guenther <rguenther@suse.de>
2949 * tree.c (build_string): Do not waste tail padding in
2952 2006-06-26 Richard Guenther <rguenther@suse.de>
2954 * ggc-page.c (init_ggc): Add missing element to size_lookup
2958 2006-06-23 Richard Guenther <rguenther@suse.de>
2960 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2961 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2962 alignment requests instead. Add verification code.
2963 Add struct tree_function_decl and struct tree_binfo size to
2964 extra_order_size_table. Add missing element to size_lookup
2967 2006-06-25 Eric Botcazou <ebotcazou@adacore.com>
2970 * fold-const.c (const_binop): Be prepared for self returning zero.
2971 Simplify code handling complex values.
2973 2006-06-24 Olivier Hainque <hainque@adacore.com>
2975 * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
2976 (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
2979 2006-06-24 Olivier Hainque <hainque@adacore.com>
2981 * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
2982 ARRAY_REF, so have the callback called for the low bound expression.
2984 2006-06-23 Janis Johnson <janis187@us.ibm.com>
2986 * tree.h (DECIMAL_FLOAT_TYPE_P): New.
2987 * c-typeck.c (c_common_type): Disallow operations on decimal float
2988 types and other float types.
2989 * convert.c (convert_to_real): Don't ignore conversions involving
2990 decimal float types.
2992 2006-06-23 Olivier Hainque <hainque@adacore.com>
2994 * tree.c (max_int_size_in_bytes): New function, inspired from
2995 code in function.c:assign_temp.
2996 * tree.h (max_int_size_in_bytes): Declare.
2997 * function.c (assign_temp): Use it.
2998 * gimplify.c (create_tmp_var): Relax the assertions on the type
2999 properties, not mandating constant size any more.
3000 (force_constant_size): New static function.
3001 (gimple_add_tmp_var): Use it, forcing variable size to a
3002 constant upper bound if it is not constant on entry.
3004 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
3007 * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
3008 for initialization and setting of one_only flag to ...
3009 (i386_pe_encode_section_info): ...here.
3010 (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
3011 Recheck that the symbol has not been defined.
3013 2006-06-23 Richard Guenther <rguenther@suse.de>
3015 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
3016 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
3017 alignment requests instead. Add verification code.
3018 Add struct tree_function_decl and struct tree_binfo size to
3019 extra_order_size_table. Add missing element to size_lookup
3022 2006-06-22 Roger Sayle <roger@eyesopen.com>
3023 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3026 * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
3027 call to lang_hooks.types.type_for_mode returned NULL_TREE.
3029 2006-06-23 Ben Elliston <bje@au.ibm.com>
3031 * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
3032 negate dn -- manipulate it directly.
3034 2006-06-22 Roger Sayle <roger@eyesopen.com>
3035 Steven Bosscher <stevenb.gcc@gmail.com>
3038 * reload1.c (gen_reload): Call mark_jump_label on the new insns
3039 generated by gen_move_insn to add REG_LABEL notes if necessary.
3041 2006-06-22 Bob Wilson <bob.wilson@acm.org>
3043 * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
3044 (leaf_entry): Remove use of MIN_ESA.
3046 2006-06-22 Zdenek Dvorak <dvorakz@suse.cz>
3048 PR rtl-optimization/28121
3049 * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
3052 2006-06-21 DJ Delorie <dj@redhat.com>
3054 * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
3056 (mulhisi3_r): Likewise.
3058 2006-06-21 Richard Sandiford <richard@codesourcery.com>
3061 * coverage.c (coverage_counter_alloc): Leave the index type
3063 (coverage_counter_alloc): Use null arguments for operands 2 and 3
3066 2006-06-21 Andrew Pinski <pinskia@physics.uc.edu>
3068 * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
3069 section from the "Options for Code Generation Conventions".
3071 2006-06-21 Richard Henderson <rth@redhat.com>
3075 * config/alpha/predicates.md (small_symbolic_operand): Deny weak
3077 (global_symbolic_operand): Allow weak symbols, even if local_p.
3079 2006-06-21 Eric Botcazou <ebotcazou@adacore.com>
3081 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
3082 (find_interesting_uses_address): Punt if above function returns true.
3084 2006-06-21 Richard Guenther <rguenther@suse.de>
3086 * configure: Regenerated.
3088 2006-06-21 Joseph Myers <joseph@codesourcery.com>
3090 * config/mips/mips.c (function_arg): Where one part of a
3091 complex argument is in registers and the other part in the stack,
3092 return a REG not a PARALLEL.
3094 2006-06-21 Mark Mitchell <mark@codesourcery.com>
3096 * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
3097 when cross-compiling. Do not substitute libstdcxx_incdir.
3098 * configure: Regenerated.
3100 2006-06-21 Jakub Jelinek <jakub@redhat.com>
3102 * varasm.c (mergeable_string_section): Check for embedded NULs and
3103 NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
3104 rather than TREE_STRING_LENGTH bytes.
3106 2006-06-21 Richard Guenther <rguenther@suse.de>
3108 * ggc-page.c (extra_order_size_table): Add var_ann_d,
3109 tree_ssa_name, bitmap_element and phi_node with 4 arguments
3112 2006-06-21 Richrad Guenther <rguenther@suse.de>
3114 * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3115 Limit iteration over the dominators.
3117 2006-06-20 Roger Sayle <roger@eyesopen.com>
3119 * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
3120 (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
3122 2006-06-20 Richard Guenther <rguenther@suse.de>
3123 Michael Matz <matz@suse.de>
3125 * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
3127 * alloc-pool.c (free_alloc_pool_if_empty): New function.
3128 * et-forest.h (et_free_pools): Prototype new function.
3129 * et-forest.c (et_free_tree_force): Free parent occurrence.
3130 (et_free_pools): New function.
3131 * dominance.c (free_dominance_info): Free et-forest alloc
3134 2006-06-20 Roger Sayle <roger@eyesopen.com>
3136 * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
3137 integer modes, attempt to directly construct an integer constant.
3139 * fold-const.c (native_encode_vector): Determine the size of each
3140 element from the vector type instead of the first vector element.
3142 * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
3143 if all of its elements/components are constant.
3144 (build_constructor_from_list): Likewise.
3146 2006-06-20 Zdenek Dvorak <dvorakz@suse.cz>
3148 PR tree-optimization/27331
3149 * tree-data-ref.c (free_data_ref): New function.
3150 (create_data_ref): Fail if the data reference has unknown access
3152 (free_data_refs): Use free_data_ref.
3154 2006-06-19 Andrew Pinski <pinskia@gmail.com>
3157 * tree-inline.c (setup_one_parameter): Strip useless
3158 type conversion before adding it to the IR.
3159 (declare_return_variable): Likewise.
3161 2006-06-19 Martin Michlmayr <tbm@cyrius.com>
3164 * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
3166 2006-06-19 Mike Stump <mrs@apple.com>
3168 * tree.c (variably_modified_type_p): VM arguments don't make the
3171 2006-06-19 Richard Guenther <rguenther@suse.de>
3173 * tree-ssa-pre.c (try_combine_conversion): Strip useless
3174 type conversions after folding.
3176 2006-06-19 Richard Guenther <rguenther@suse.de>
3178 * ggc-page.c (extra_order_size_tab): Add entries with
3179 size of struct function and basic_block.
3180 (size_lookup): Extend to cover sizes up to 511.
3181 (ggc_alloc_stat): Adjust user.
3182 (ggc_pch_count_object): Likewise.
3183 (ggc_pch_alloc_object): Likewise.
3184 (ggc_pch_write_object): Likewise.
3186 2006-06-19 Zdenek Dvorak <dvorakz@suse.cz>
3188 * tree-ssa-loop-niter.c (implies_ge_p): New function.
3189 (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
3192 2006-06-19 Denis Chertykov <denisc@overta.ru>
3194 * config/avr/libgcc.S : Correct my wrong previous commit.
3196 2006-06-19 Roger Sayle <roger@eyesopen.com>
3199 * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
3200 have stripped a SUBREG from the shift count, so we may need to
3201 convert_to_mode back to the type's mode before calling make_tree.
3202 Use new_amount instead of amount to avoid expanding a tree twice.
3204 2006-06-19 Richard Guenther <rguenther@suse.de>
3207 * fold-const.c (operand_equal_p): Check if the argument types
3208 have the same precision before stripping NOPs.
3210 2006-06-19 Daniel Berlin <dberlin@dberlin.org>
3212 Fix PR tree-optimization/27341
3213 * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
3215 * tree-complex.c (pass_lower_complex): Update SMT usage.
3217 2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
3219 * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
3220 Add a new alternative to the constraint strings. Add move of
3221 operand 1 to 3 to the splitter definition.
3222 ("doloop_si_long"): Second contraint alternative removed.
3224 2006-06-08 Anatoly Sokolov <aesok@post.ru>
3226 * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
3227 (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
3229 (AVR_HAVE_MOVW) Define.
3230 (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
3231 (ASM_SPEC): Add avr25.
3232 (LINK_SPEC): Add avr25.
3233 * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
3234 (base_arch_s): Add new member 'have_movw_lpmx'.
3235 (avr_arch_types): Init 'have_movw_lpmx'.
3236 (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
3237 attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
3238 attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
3239 (avr_override_options): Init 'avr_have_movw_lpmx_p'.
3240 (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
3242 (avr_file_start): Do not output '.arh' derective.
3243 * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
3244 (__do_copy_data): Use __AVR_HAVE_LPMX__.
3245 * config/avr/avr.md (mcu_enhanced): Delete.
3246 (mcu_have_movw): Define.
3247 (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
3248 (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
3249 * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
3250 (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
3251 attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
3252 attiny861 and at86rf401 devices.
3254 2006-06-18 Jie Zhang <jie.zhang@analog.com>
3256 * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
3259 2006-06-17 Karl Berry <karl@gnu.org>
3261 * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
3262 doc/gccint.texi, doc/install.texi (@dircategory): Use
3263 "Software development" instead of "Programming", following
3264 the Free Software Directory.
3266 2006-06-17 Alexandre Oliva <aoliva@redhat.com>
3268 * config/i386/i386.c (legitimate_tls_address)
3269 <TARGET_GNU2_TLS>: Add tp after DTPOFF.
3270 * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
3271 (*tls_dynamic_gnu2_combine_64): Likewise.
3273 2006-06-16 Richard Guenther <rguenther@suse.de>
3276 * fold-const.c (negate_expr_p): Do not introduce undefined
3277 overflow in negating INTEGER_CSTs.
3278 (fold_negate_expr): Rename from negate_expr. Revert last
3279 change for folding BIT_NOT_EXPR. Change semantics to
3280 return NULL_TREE for non-simplified negations. Do not
3281 strip type conversions and unify type handling.
3282 (negate_expr): New function, wrap around fold_negate_expr
3283 but ensure building a tree always. Strip type conversions
3284 here, fold to result type.
3285 (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
3287 2006-06-16 Roger Sayle <roger@eyesopen.com>
3290 * reg-stack.c (subst_stack_regs): Handle noreturn function calls
3291 that (would) return their results in stack registers.
3293 2006-06-16 Michael Matz <matz@suse.de>
3294 Richard Guenther <rguenther@suse.de>
3296 * fold-const.c (fold_truthop): Only return new tree node if
3297 we canonicalized something.
3299 2006-06-16 Richard Guenther <rguenther@suse.de>
3301 * function.h (enum function_frequency): Move declaration
3302 out of struct function.
3303 (struct function): Move bool fields and the enum to the bitfield
3304 section. Reorder elements to avoid padding. Remove unused
3305 fields left over from the RTL inliner removal.
3306 * function.c (free_after_compilation): Do not zero removed fields.
3307 * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
3308 (ipa-type-escape.o): Likewise.
3310 2006-06-16 Richard Guenther <rguenther@suse.de>
3312 * cgraph.h (struct cgraph_local_info): Turn bool elements
3314 (struct cgraph_node): Likewise.
3315 (struct cgraph_varpool_node): Likewise.
3317 2006-06-15 Richard Guenther <rguenther@suse.de>
3319 * fold-const.c (fold_truth_not_expr): Rename from
3320 invert_truthvalue. Give it fold_* semantics to avoid
3322 (invert_truthvalue): New function. Wrapper around
3323 fold_truth_not_expr.
3324 (optimize_minmax_comparison): Avoid creating garbage.
3325 (fold_unary): Use fold_truth_not_expr for folding
3327 (fold_ternary): Replace uses of invert_truthvalue with
3328 fold_truth_not_expr where applicable.
3329 * tree.h (fold_truth_not_expr): Prototype.
3331 2006-06-16 Richard Guenther <rguenther@suse.de>
3333 PR tree-optimization/27781
3334 * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
3335 * ipa-pure-const.c (target.h): Include.
3336 (analyze_function): Do not analyze functions that do not
3339 2006-06-15 Andrew MacLeod <amacleod@redhat.com>
3342 * tree-dfa.c (referenced_vars_dup_list): Remove.
3343 (find_referenced_vars): Remove assert.
3344 (referenced_var_check_and_insert): Replace dup list with assert.
3345 * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
3346 * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
3348 2006-06-15 Richard Guenther <rguenther@suse.de>
3350 * tree-ssa-structalias.c (alias_get_name): Avoid creating
3351 extra unused identifiers if not dumping.
3352 (create_variable_info_for): Likewise.
3354 2006-06-15 Zdenek Dvorak <dvorakz@suse.cz>
3356 * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
3357 (derive_constant_upper_bound): Derive more precise upper bound in
3358 common cases. Return type changed to double_int.
3359 (record_estimate): Reflect the changed return type of
3360 derive_constant_upper_bound.
3361 * double-int.c (double_int_zext, double_int_sext): Fix.
3363 2006-06-15 Paolo Bonzini <bonzini@gnu.org>
3365 * configure.ac (CFLAGS): Get them from the toplevel or from the
3366 configure invocation.
3367 * configure: Regenerate.
3368 * Makefile.in (CFLAGS): Substitute value provided by configure.
3370 2006-06-14 Mark Mitchell <mark@codesourcery.com>
3373 * c-common.h (c_finish_omp_atomic): Adjust declaration.
3374 * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
3375 rather than calling add_stmt on it.
3376 * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
3378 2006-06-14 Andreas Krebbel <krebbel1@de.ibm.com>
3381 * reload1.c (reload): Remove registers returned by update_eliminables
3382 from used_spill_regs.
3384 2006-06-13 DJ Delorie <dj@redhat.com>
3386 * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
3388 2006-06-13 Carlos O'Donell <carlos@codesourcery.com>
3390 * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
3391 html__strip_dir, html__mkdir_p. Enhance install-html target.
3392 * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
3393 * configure: Regenerate.
3395 2006-06-13 Fariborz Jahanian <fjahanian@apple.com>
3397 * fold-const.c (fold_cond_expr_with_comparison): Check for
3398 Objective-C++ as language in deciding COND_EXPR transformation.
3400 2006-06-06 J"orn Rennecke <joern.rennecke@st.com>
3403 * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
3404 * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
3405 * config/sh/lib1funcs.h (SL, SL1): Define.
3406 * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
3407 * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
3408 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
3409 (OBJS_Os_4_200): New variable.
3410 ($(T)libgcc-Os-4-200.a): Use it.
3411 * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
3412 when dividing 1 and/or by 0.
3414 2006-06-13 Roger Sayle <roger@eyesopen.com>
3416 * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
3417 before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
3418 * configure: Regenerate.
3420 2006-06-13 Jie Zhang <jie.zhang@analog.com>
3422 * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
3423 for real instruction.
3425 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3428 * haifa-sched.c (check_cfg): Handle special case.
3430 2006-06-13 Eric Botcazou <ebotcazou@adacore.com>
3433 * gimplify.c (declare_tmp_vars): Rename into declare_vars.
3434 Add debug_info parameter. Chain the vars to the BLOCK instead
3435 of the BIND_EXPR if debug info are requested for them.
3436 (pop_gimplify_context): Adjust for above change.
3437 (gimple_add_tmp_var): Likewise.
3438 * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
3440 * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
3441 (convert_local_reference): Likewise.
3442 (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
3443 (finalize_nesting_tree_1): Request that debug info be emitted
3444 for debug_var_chain.
3446 2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3448 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
3449 for PR target/27863.
3451 2006-06-13 Richard Guenther <rguenther@suse.de>
3454 * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
3456 2006-06-13 Richard Guenther <rguenther@suse.de>
3458 PR tree-optimization/27830
3459 * tree-inline.c (copy_body_r): For copying the operand
3460 of an ADDR_EXPR make sure to fold &* afterwards.
3462 2006-06-12 Eric Botcazou <ebotcazou@adacore.com>
3464 * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
3465 lvalues in the fb_none case with side-effects.
3467 2006-06-12 Kazu Hirata <kazu@codesourcery.com>
3469 * tree-flow.h: Remove the prototype for
3470 compute_phi_arg_on_exit.
3471 * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
3472 protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
3475 2006-06-12 Mark Shinwell <shinwell@codesourcery.com>
3477 * builtins.c (expand_builtin_return_addr): Only use
3478 frame_pointer_rtx when count == 0 and we are expanding
3479 __builtin_return_address.
3481 2006-06-12 Fred Fish <fnf@specifix.com>
3483 * config/mips/mips.c (mips_file_start): Create special section
3484 ".gcc_compiled_longXX" for o64 ABI as well as EABI.
3486 2006-06-11 Eric Christopher <echristo@apple.com>
3489 * stor-layout.c (place_field): Remove check for
3490 remaining_in_alignment when aligning at the end of a run.
3492 2006-06-11 Eric Christopher <echristo@apple.com>
3495 * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
3498 2006-06-11 Roger Sayle <roger@eyesopen.com>
3501 Revert incorrect fix for PR target/27158
3502 2006-05-08 Roger Sayle <roger@eyesopen.com>
3503 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
3504 of a reg_equiv_constant if the result is a legitimate constant.
3506 2006-06-11 Roger Sayle <roger@eyesopen.com>
3509 * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
3510 extract a CONST_VECTOR element and interpret it as an integer.
3511 (vspltis_constant): Use const_vector_elt_as_int instead of the
3512 macro CONST_VECTOR_ELT in order to handle FP vector modes.
3513 * config/rs6000/predicates.md (easy_vector_const): Consider
3514 floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
3516 2006-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
3519 * stor-layout.c (update_alignment_for_field): Don't add extra
3520 alignment for packed non-bitfield fields in ms_bitfield_layout_p
3523 2006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org>
3525 * config/mips/t-rtems: Add EL/EB multilib variants.
3527 2006-06-09 Mike Stump <mrs@apple.com>