Kenneth Zadeck [Thu, 21 Jun 2007 16:24:59 +0000 (16:24 +0000)]
df-problems.c (df_note_bb_compute): Made computation of live info consistent with df_lr.
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-problems.c (df_note_bb_compute): Made computation of live
info consistent with df_lr.
From-SVN: r125924
Richard Guenther [Thu, 21 Jun 2007 14:54:47 +0000 (14:54 +0000)]
re PR tree-optimization/32453 (ICE in build2_stat, at tree.c:3074 (extract_range_from_assert))
2007-06-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/32453
* tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
for pointer anti-range.
* gcc.c-torture/compile/pr32453.c: New testcase.
From-SVN: r125922
H.J. Lu [Thu, 21 Jun 2007 12:31:09 +0000 (12:31 +0000)]
i386.c (processor_target_table): Increase maximum skip from 7 byte to 10 byte for Pentium Pro...
2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (processor_target_table): Increase maximum
skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
default 64bit.
* config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
byte alignment if > 8 byte alignment is preferred.
* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
From-SVN: r125920
Jakub Jelinek [Thu, 21 Jun 2007 12:20:42 +0000 (14:20 +0200)]
re PR tree-optimization/31866 (ICE with tree check error: expected ssa_name, have var_decl in create_outofssa_var_map)
PR tree-optimization/31866
* tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
if ASM_EXPR's input is not a SSA_NAME.
* gcc.dg/pr31866.c: New test.
From-SVN: r125919
Jakub Jelinek [Thu, 21 Jun 2007 12:11:00 +0000 (14:11 +0200)]
re PR middle-end/32362 (ICE: in lookup_decl_in_outer_ctx, at omp-low.c:1508)
PR middle-end/32362
* omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
but decl is a global var, instead return decl.
* gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
even for is_global_var decls, if they are private in some outer
context.
* testsuite/libgomp.c/pr32362-1.c: New test.
* testsuite/libgomp.c/pr32362-2.c: New test.
* testsuite/libgomp.c/pr32362-3.c: New test.
From-SVN: r125917
Richard Guenther [Thu, 21 Jun 2007 12:00:47 +0000 (12:00 +0000)]
re PR tree-optimization/32451 (ICE in verify_flow_info after DOM2)
2007-06-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/32451
* tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
* g++.dg/torture/
20070621-1.C: New testcase.
From-SVN: r125916
Eric Botcazou [Thu, 21 Jun 2007 10:11:19 +0000 (10:11 +0000)]
re PR tree-optimization/25737 (ACATS
c974001 c974013 hang with struct aliasing)
PR tree-optimization/25737
* misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
From-SVN: r125915
Christian Bruel [Thu, 21 Jun 2007 08:58:53 +0000 (10:58 +0200)]
svn ci -m "introduce bank[0,1] registers and fix rte delay slot scheduling"
2007-06-21 Christian Bruel <christian.bruel@st.com>
* config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
* config/sh/sh.c (sh_loads_bankedreg_p): New function.
(push_regs): Changed saving order or banked registers.
(sh_expand_epilogue): Likewise.
* config/sh/sh.h (BANKED_REGISTER_P): New macro.
(FIRST_BANKED_REG): Likewise.
(LAST_BANKED_REG): Likewise.
* config/sh/sh.md (banked) New attribute.
(in_delay_slot): Check banked attribute.
2007-06-21 Christian Bruel <christian.bruel@st.com>
* gcc.dg/attr-isr.c: Test delay slot content.
From-SVN: r125914
Keith Seitz [Thu, 21 Jun 2007 06:49:02 +0000 (06:49 +0000)]
* gnu/classpath/jdwp/VMVirtualMachine.h: Regenerate.
From-SVN: r125910
Jerry DeLisle [Thu, 21 Jun 2007 02:25:58 +0000 (02:25 +0000)]
re PR fortran/32361 (TYPE DECLARATION TO INITIALIZE DATA IN NAMED COMMON)
2007-06-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/32361
gfortran.dg/pointer_assign_2.f90: New test.
From-SVN: r125909
Jerry DeLisle [Thu, 21 Jun 2007 02:23:45 +0000 (02:23 +0000)]
re PR fortran/32361 (TYPE DECLARATION TO INITIALIZE DATA IN NAMED COMMON)
2007-06-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/32361
* match.c (gfc_match_common): If the symbol value expression type is
NULL_EXPR, don't error if previously initialized.
From-SVN: r125908
Jerry DeLisle [Thu, 21 Jun 2007 01:48:21 +0000 (01:48 +0000)]
re PR fortran/25061 (procedure name conflict)
2007-06-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/25061
gfortran.dg/invalid_procedure_name.f90: New test.
From-SVN: r125907
Jerry DeLisle [Thu, 21 Jun 2007 01:18:02 +0000 (01:18 +0000)]
re PR fortran/25061 (procedure name conflict)
2007-06-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/25061
* decl.c (get_proc_name) Check symbol for generic interface
and issue an error.
From-SVN: r125906
GCC Administrator [Thu, 21 Jun 2007 00:16:52 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125904
Sebastian Pop [Wed, 20 Jun 2007 23:44:56 +0000 (23:44 +0000)]
re PR tree-optimization/32075 (can't determine dependence between p->a[x+i] and p->a[x+i+1] where x is invariant but defined in the function)
PR tree-optimization/32075
* tree-data-ref.c (subscript_dependence_tester_1,
analyze_miv_subscript, analyze_overlapping_iterations,
add_distance_for_zero_overlaps, build_classic_dist_vector,
subscript_dependence_tester_1, analyze_overlapping_iterations,
subscript_dependence_tester, access_functions_are_affine_or_constant_p,
compute_affine_dependence, compute_all_dependences): Pass loop_nest
to evolution_function_is_affine_multivariate_p.
From-SVN: r125901
Sebastian Pop [Wed, 20 Jun 2007 23:42:28 +0000 (23:42 +0000)]
re PR tree-optimization/32075 (can't determine dependence between p->a[x+i] and p->a[x+i+1] where x is invariant but defined in the function)
PR tree-optimization/32075
* tree-data-ref.c (subscript_dependence_tester_1,
analyze_miv_subscript, analyze_overlapping_iterations,
add_distance_for_zero_overlaps, build_classic_dist_vector,
subscript_dependence_tester_1, analyze_overlapping_iterations,
subscript_dependence_tester, access_functions_are_affine_or_constant_p,
compute_affine_dependence, compute_all_dependences): Pass loop_nest
to evolution_function_is_affine_multivariate_p.
From-SVN: r125900
Keith Seitz [Wed, 20 Jun 2007 20:35:22 +0000 (20:35 +0000)]
Update from classpath trunk:
* classpath/lib/gnu/classpath/jdwp/value/StringValue.class:
Regenerate.
* gnu/classpath/jdwp/value/StringValue.java
(StringValue): Tag of StringValue is STRING not OBJECT.
(write): String values are written to the wire as tag byte
and object ID, not JdwpString.
From-SVN: r125897
Keith Seitz [Wed, 20 Jun 2007 20:32:20 +0000 (20:32 +0000)]
VMVirtualMachine.java (executeMethod): Update from reference implementation.
* gnu/classpath/jdwp/VMVirtualMachine.java (executeMethod):
Update from reference implementation.
* gnu/classpath/jdwp/natVMVirtualMachine.cc (executeMethod):
Update parameter list to match new VMVirtualMachine interface.
* classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class:
Regenerate.
* classpath/lib/gnu/classpath/jdwp/processor/
ObjectReferenceCommandSet.class: Regenerate.
* classpath/lib/gnu/classpath/jdwp/value/ObjectValue.class: Regenerate.
* classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: Regenerate.
* classpath/lib/gnu/classpath/jdwp/util/MethodResult.class: Regenerate.
From-SVN: r125896
Keith Seitz [Wed, 20 Jun 2007 20:30:34 +0000 (20:30 +0000)]
Update from classpath trunk:
* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
(executeInvokeMethod): No need to use ValueFactory any more;
MethodResult.getReturnedValue now returns a Value.
(executeNewInstance): Double-check that return result is
an ObjectValue; throw JdwpInternalErrorException if it is not.
(invokeMethod): Method IDs come from VMMethod, not VMIdManager.
Arguments are Values not Objects.
Use ValueFactory to create arguments.
Pass invocation options to VMVirtualMachine.executeMethod.
Don't do any thread suspend/resume work: VMVM.executeMethod
will take care of it.
* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
(executeInvokeMethod): Method IDs come from VMMethod, not
VMIdManager.
Arguments should be Values instead of Objects.
Use ValueFactory to create Values.
Remove specific option handling and pass options to
VMVirtualMachine.executeMethod.
Remove thread suspension.
Use MethodResult.getReturnedValue to get method's result.
* gnu/classpath/jdwp/util/MethodResult.java
(returnedValue): Change type to Value.
(thrownException): Change type to Throwable.
(resType): Remove.
(MethodResult): New constructor.
(setReturnedValue): Remove.
(SetThrownException): Remove.
(getResultType): Remove.
(setResultType): Remove.
* gnu/classpath/jdwp/value/ObjectValue.java (getValue):
New method.
* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
(executeMethod): Replace "nonVirtual" parameter with more
generic "options" parameter.
Replace java.lang.reflect.Method parameter with VMMethod.
Replace Object[] parameter with Value[] parameter.
From-SVN: r125895
Eric Botcazou [Wed, 20 Jun 2007 20:26:07 +0000 (22:26 +0200)]
df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
* df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
From-SVN: r125894
Rask Ingemann Lambertsen [Wed, 20 Jun 2007 19:58:57 +0000 (19:58 +0000)]
re PR target/32335 (libgcc build failure, ICE in cselib_record_set, at cselib.c:1508)
2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32335
* config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
for TARGET_A16.
* config/m32c/prologue.md (epilogue_exitd_16): New.
(epilogue_reit_16): New.
(epilogue_exitd): Rename to epilogue_exitd_24.
(epilogue_reit): Rename to epilogue_reit_24.
From-SVN: r125893
Rask Ingemann Lambertsen [Wed, 20 Jun 2007 19:57:32 +0000 (19:57 +0000)]
re PR target/32335 (libgcc build failure, ICE in cselib_record_set, at cselib.c:1508)
2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32335
* config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
for TARGET_A16.
* config/m32c/prologue.md (epilogue_exitd_16): New.
(epilogue_reit_16): New.
(epilogue_exitd): Rename to epilogue_exitd_24.
(epilogue_reit): Rename to epilogue_reit_24.
From-SVN: r125892
Seongbae Park [Wed, 20 Jun 2007 18:22:28 +0000 (18:22 +0000)]
dbgcnt.def (global_alloc_at_func, [...]): New counters.
2007-06-20 Seongbae Park <seongbae.park@gmail.com>
Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
* dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
New counters.
* haifa-sched.c (queue_to_ready): Don't requeue next insn
if dbg_cnt (sched_insn) reaches the limit.
(choose_ready): New parameter INSN_PTR and new return value.
(schedule_block): Handle dbg_cnt (sched_insn). Handle
the new return value from choose_ready.
* global.c (global_aloc): New dbgcnt global_alloc_at_reg.
(rest_of_handle_global_alloc): New global_alloc_at_func.
Co-Authored-By: Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
From-SVN: r125891
Adam Nemet [Wed, 20 Jun 2007 18:19:10 +0000 (18:19 +0000)]
re PR tree-optimization/25737 (ACATS
c974001 c974013 hang with struct aliasing)
PR tree-optimization/25737
* tree.h (struct tree_struct_field_tag): Add new field alias_set.
(SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
* tree-flow.h (struct fieldoff): Add new field alias_set.
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
argument addressable_type. Set alias_set of fieldoff.
* tree-ssa-alias.c (create_sft): Add new argument alias_set.
(create_overlap_variables_for): Pass alias_set from fieldoff to
create_sft.
* alias.c (get_alias_set): Use alias_set from SFT if set.
From-SVN: r125890
Adam Nemet [Wed, 20 Jun 2007 18:17:20 +0000 (18:17 +0000)]
re PR tree-optimization/25737 (ACATS
c974001 c974013 hang with struct aliasing)
PR tree-optimization/25737
* testsuite/gcc.dg/tree-ssa/alias-14.c: New test.
From-SVN: r125889
Hui-May Chang [Wed, 20 Jun 2007 16:43:24 +0000 (16:43 +0000)]
darwin.h (ASM_OUTPUT_COMMON): Print the size of a variable as an unsigned HOST_WIDE_INT integer.
* gcc/config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
of a variable as an unsigned HOST_WIDE_INT integer.
* gcc.target/i386/large-size-array-3.c: New.
From-SVN: r125888
Andrew Pinski [Wed, 20 Jun 2007 14:57:10 +0000 (14:57 +0000)]
re PR fortran/32140 (Miscompilation with -O1)
2007-06-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
Richard Guenther <rguenther@suse.de>
PR fortran/32140
* trans.c (gfc_build_addr_expr): Use the correct types.
* gfortran.fortran-torture/execute/pr32140.f90: New testcase.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r125886
Nick Clifton [Wed, 20 Jun 2007 08:47:02 +0000 (08:47 +0000)]
Add (accidentally omited) ChangeLog entry for delta to config/m32r/linux.h
From-SVN: r125883
Uros Bizjak [Wed, 20 Jun 2007 07:43:43 +0000 (09:43 +0200)]
ChangeLog: Strip testsuite/ from file names.
* ChangeLog: Strip testsuite/ from file names. Fix whitespace.
Fix line wrapping.
From-SVN: r125882
Zdenek Dvorak [Wed, 20 Jun 2007 06:56:26 +0000 (08:56 +0200)]
re PR rtl-optimization/32405 (assertion failure in loop-iv.c; probable dataflow regression)
PR rtl-optimization/32405
* loop-iv.c (iv_get_reaching_def): Fail for partial defs.
From-SVN: r125881
Jakub Jelinek [Wed, 20 Jun 2007 06:42:00 +0000 (08:42 +0200)]
* Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
From-SVN: r125876
Jakub Jelinek [Wed, 20 Jun 2007 06:39:53 +0000 (08:39 +0200)]
re PR middle-end/31959 (ICE in expand_builtin_expect, at builtins.c:5112)
PR middle-end/31959
* builtins.c: Include diagnostic.h.
(expand_builtin_expect): Make gcc_assert more permissive.
* Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
* gcc.dg/pr31959.c: New test.
From-SVN: r125875
Jakub Jelinek [Wed, 20 Jun 2007 06:37:17 +0000 (08:37 +0200)]
re PR inline-asm/32109 (ICE with inline-asm and class with destructor)
PR inline-asm/32109
* gimplify.c (gimplify_asm_expr): Issue error if type is addressable
and !allows_mem.
* g++.dg/ext/asm10.C: New test.
From-SVN: r125874
Jakub Jelinek [Wed, 20 Jun 2007 06:35:55 +0000 (08:35 +0200)]
re PR middle-end/32285 (Miscompilation with pure _Complex returning call inside another fn's argument list)
PR middle-end/32285
* calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
if ACCUMULATE_OUTGOING_ARGS.
* gcc.c-torture/execute/
20070614-1.c: New test.
From-SVN: r125873
GCC Administrator [Wed, 20 Jun 2007 00:16:56 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125867
Chris Matthews [Wed, 20 Jun 2007 00:10:46 +0000 (00:10 +0000)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r125864
Rask Ingemann Lambertsen [Tue, 19 Jun 2007 21:41:43 +0000 (23:41 +0200)]
m68hc11.c: Include dataflow header file.
2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
* config/m68hc11/m68hc11.c: Include dataflow header file.
(m68hc11_reorg): Port to dataflow.
From-SVN: r125861
Kenneth Zadeck [Tue, 19 Jun 2007 21:07:29 +0000 (21:07 +0000)]
forgot to save back Changelog
From-SVN: r125860
Uros Bizjak [Tue, 19 Jun 2007 19:58:26 +0000 (21:58 +0200)]
i386.c (ix86_emit_swsqrtsf): Filter out infinity result of rsqrt insn for zero input argument to avoid NaN.
* config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
result of rsqrt insn for zero input argument to avoid NaN.
From-SVN: r125858
Kenneth Zadeck [Tue, 19 Jun 2007 19:04:52 +0000 (19:04 +0000)]
df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
2007-06-15 Kenneth Zadeck <zadeck@naturalbridge.com>
* df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
(struct df_problem.free_blocks_on_set_blocks): New field.
(struct dataflow.optional_p): New field.
(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
(df_live_set_all_dirty): New function.
* df-scan.c (df_scan_alloc): Initialize optional_p.
(problem_SCAN): Initialize free_blocks_on_set_blocks.
* df-core.c (df_set_blocks): Removed use of
DF_FIRST_OPTIONAL_PROBLEM. Now uses
df_problem.free_blocks_on_set_blocks to determine which blocks are
recycled.
(df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
(df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
uses dataflow.optional_p to determine if problem should be
deleted.
(rest_of_handle_df_initialize): Only start live problem if
-02 or above.
(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
* df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
(problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
problem_NOTE): Initialize free_blocks_on_set_blocks.
(df_lr_bb_local_compute): Recompute luids if df_live problem is
not active.
(df_live_set_all_dirty, df_note_alloc): New function.
* regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
df_get_live_*.
* sched_ebb.c (compute_jump_reg_dependencies): Ditto.
* postreload.c (reload_combine): Ditto.
* cse.c (cse_extended_basic_block): Ditto.
* regmove.c (mark_flags_life_zones): Ditto.
* rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
erase_matching_seqs): Ditto.
* bt-load.c (compute_defs_uses_and_gen): Ditto.
* integrate (allocate_initial_values): Ditto.
* combine.c (reg_dead_at_p): Ditto.
* resource.c (mark_target_live_regs): Ditto.
* sched-rgn.c (check_live_1, update_live_1): Ditto.
* config/sh/sh.c (find_r0_life_regions): Ditto.
* global.c (rest_of_handle_global_alloc): Only add back df_live
for -O > 1.
* local-alloc.c (rest_of_handle_local_alloc): Only remove
df_live for -O > 1.
* ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
df_get_live_*.
(if_convert): Make sure df_live is there at -O == 1.
(pass_if_after_combine): Cleanup flags.
* init-regs.c (initialize_uninitialized_regs): Make sure df_live
is there at -O == 1.
From-SVN: r125857
Seongbae Park [Tue, 19 Jun 2007 18:47:09 +0000 (18:47 +0000)]
arm.c (arm_get_frame_offsets): Set offsets->locals_base to avoid negative stack size.
gcc/ChangeLog:
2007-06-19 Seongbae Park <seongbae.park@gmail.com>
* config/arm/arm.c (arm_get_frame_offsets): Set
offsets->locals_base to avoid negative stack size.
(thumb1_expand_prologue): Assert on negative stack size.
gcc/testsuite/ChangeLog:
2007-06-19 Seongbae Park <seongbae.park@gmail.com>
* gcc.target/arm/stack-corruption.c: New test.
From-SVN: r125856
Sebastian Pop [Tue, 19 Jun 2007 18:35:39 +0000 (18:35 +0000)]
re PR tree-optimization/32367 (internal compiler error: in build_polynomial_chrec, at tree-chrec.h:113)
PR tree-optimization/32367
* tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
of the chrec has no evolution in that loop.
* testsuite/gcc.dg/tree-ssa/pr32367.c: New.
From-SVN: r125855
Bob Wilson [Tue, 19 Jun 2007 17:58:13 +0000 (17:58 +0000)]
xtensa.c: Include "df.h".
* config/xtensa/xtensa.c: Include "df.h".
(xtensa_builtin_saveregs): Use adjust_address instead of change_address.
(xtensa_va_start): Invoke make_tree with sizetype for
expand_builtin_saveregs and then convert the result to a pointer.
Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
(xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
Subtract argument size from index value as integers and then use
POINTER_PLUS_EXPR to add the result to the array address.
From-SVN: r125854
Rask Ingemann Lambertsen [Tue, 19 Jun 2007 17:35:16 +0000 (19:35 +0200)]
re PR target/32335 (libgcc build failure, ICE in cselib_record_set, at cselib.c:1508)
2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32335
* config/m32c/m32c.c: Include dataflow header file.
(m32c_emit_prologue): Adjust for prologue insn change.
* config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
once inside a PARALLEL. Assume frame size passed in operand 0
includes space to save the fb register.
(prologue_enter_24): Likewise.
(epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
From-SVN: r125853
David Daney [Tue, 19 Jun 2007 16:36:42 +0000 (16:36 +0000)]
re PR target/32313 (Bootstrap failure running gengtype in stage 2.)
PR target/32313
* config/mips/mips.md (cprestore): Mark $gp as used.
From-SVN: r125852
Rask Ingemann Lambertsen [Tue, 19 Jun 2007 16:30:03 +0000 (18:30 +0200)]
re PR target/32369 ([frv] macro "DF_LIVE_IN" passed 2 arguments, but takes just 1)
2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
PR target/32369
* config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
(frv_ifcvt_modify_insn): Likewise.
From-SVN: r125851
Rask Ingemann Lambertsen [Tue, 19 Jun 2007 16:08:04 +0000 (18:08 +0200)]
MAINTAINERS (Write After Approval): Add myself.
2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r125850
Richard Biener [Tue, 19 Jun 2007 12:57:58 +0000 (12:57 +0000)]
tree-ssa-structalias.c (handle_ptr_arith): Make sure to only handle positive offsets that fit in a HOST_WIDE_INT.
2007-06-19 Richard Guenther <rguenther@suse.de>
* tree-ssa-structalias.c (handle_ptr_arith): Make sure to
only handle positive offsets that fit in a HOST_WIDE_INT.
* g++.dg/torture/pr30252.C: New testcase.
From-SVN: r125849
Uros Bizjak [Tue, 19 Jun 2007 11:22:24 +0000 (13:22 +0200)]
i386.c (ix86_emit_swsqrtsf): Limit the result of rsqrt insn to FLT_MAX to avoid NaN for zero input argument.
* config/i386/i386.c (ix86_emit_swsqrtsf): Limit the result of
rsqrt insn to FLT_MAX to avoid NaN for zero input argument.
From-SVN: r125847
Richard Guenther [Tue, 19 Jun 2007 11:16:43 +0000 (11:16 +0000)]
re PR middle-end/31950 (ICE in tree-ssa-alias-warnings.c)
2007-06-19 Richard Guenther <rguenther@suse.de>
PR middle-end/31950
* tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
From-SVN: r125846
Nick Clifton [Tue, 19 Jun 2007 10:36:11 +0000 (10:36 +0000)]
* config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
From-SVN: r125845
Jakub Jelinek [Tue, 19 Jun 2007 09:08:39 +0000 (11:08 +0200)]
re PR tree-optimization/32353 (Miscompilation with RESULT_DECL)
PR tree-optimization/32353
* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
* g++.dg/opt/nrv13.C: New test.
From-SVN: r125841
GCC Administrator [Tue, 19 Jun 2007 00:17:15 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r125837
Keith Seitz [Tue, 19 Jun 2007 00:10:10 +0000 (00:10 +0000)]
Breakpoint.java: Make abstract.
* gnu/gcj/jvmti/Breakpoint.java: Make abstract.
(method): Change from private to protected.
(location): Likewise.
(Breakpoint): Change argument list to take only integer type.
Add default constructor.
(initialize_native): Renamed to ...
(_save_insn): ... this to make function more explicit.
(execute): New method.
* gnu/gcj/jvmti/Breakpoint.h: Regenerate.
* gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): Rename to...
(_save_insn): ... this.
(install): Save the original instruction.
* gnu/gcj/jvmti/NormalBreakpoint.java: New file.
* gnu/gcj/jvmti/NormalBreakpoint.h: New file.
* gnu/gcj/jvmti/natNormalBreakpoint.cc: New file.
* gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint):
Instantiate a NormalBreakpoint instead of Breakpoint.
* interpret-run.cc (insn_breakpoint): Remove breakpoint actions
and call Breakpoint.execute to do them.
* classpath/lib/gnu/gcj/jvmti/Breakpoint.class: Regenerate.
* classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: Likewise.
* classpath/lib/gnu/gcj/jvmti/NormalBreakpoint.class: New file.
* sources.am: Regenerate.
* Makefile.am (nat_source_files): Add natNormalBreakpoint.cc.
* Makefile.in: Regenerated.
From-SVN: r125834
Paul Thomas [Mon, 18 Jun 2007 23:07:32 +0000 (23:07 +0000)]
re PR fortran/20882 ([4.2 only] PURE procedure containing pointer assignment to dummy with pointer component)
2007-06-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20882
Correct the PR number from 20082 to 20882.
From-SVN: r125832
Paul Thomas [Mon, 18 Jun 2007 23:04:28 +0000 (23:04 +0000)]
re PR fortran/20863 ([4.2 only] Pointer problems in PURE procedures)
2007-06-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20863
PR fortran/20082
* resolve.c (resolve_code): Use gfc_impure_variable as a
condition for rejecting derived types with pointers, in pure
procedures.
(gfc_impure_variable): Add test for dummy arguments of pure
procedures; any for functions and INTENT_IN for subroutines.
PR fortran/32236
* data.c (gfc_assign_data_value): Change the ICE on an array
reference initializer not being an array into an error and
clear init to prevent a repetition of the error.
2007-06-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20863
PR fortran/20082
* gfortran.dg/impure_assignment_2.f90 : New test.
PR fortran/32236
* gfortran.dg/data_initialized_2.f90 : New test.
* gfortran.dg/equiv_7.f90 : Test for endianess and call the
appropriate version of 'dmach'.
From-SVN: r125831
Uros Bizjak [Mon, 18 Jun 2007 22:32:56 +0000 (00:32 +0200)]
re PR target/32389 (ICE in extract_constrain_insn_cached when using -msse)
PR target/32389
* config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
* config/i386/i386.c (assign_386_stack_local): Assert that
SLOT_VIRTUAL is valid only before virtual regs are instantiated.
(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
* config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
testsuite/ChangeLog:
PR target/32389
* gcc.target/i386/pr32389.c New test.
From-SVN: r125830
Simon Baldwin [Mon, 18 Jun 2007 22:09:14 +0000 (22:09 +0000)]
re PR c++/31923 (g++ accepts a storage-class-specifier on a template explicit specialization)
gcc/cp/ChangeLog
2007-06-15 Simon Baldwin <simonb@google.com>
PR c++/31923
* parser.c (cp_parser_single_declaration): Added check for storage
class other than sc_none in parsed declaration, and a flag to indicate
if the call is part of an explicit template specialization parse.
* (cp_parser_explicit_specialization): Specialization check flag added
to call to cp_parser_single_declaration(), set true.
* (cp_parser_template_declaration_after_export): Specialization check
flag added to call to cp_parser_single_declaration(), set false.
* pt.c (check_explicit_specialization): Added code to copy visiblity
and linkage from the templated function to the explicit specialization.
gcc/testsuite/ChangeLog
2007-06-15 Simon Baldwin <simonb@google.com>
PR c++/31923
* g++.dg/template/error25.C: New.
* g++.dg/template/spec35.C: New.
From-SVN: r125829
Steve Ellcey [Mon, 18 Jun 2007 20:57:09 +0000 (20:57 +0000)]
* config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
From-SVN: r125828
Seongbae Park [Mon, 18 Jun 2007 20:49:23 +0000 (20:49 +0000)]
re PR middle-end/32321 (ICE in df_refs_verify with -fgcse-sm)
2007-06-18 Seongbae Park <seongbae.park@gmail.com>
PR rtl-optimization/32321
* gcse.c (replace_store_insn): Update the note before
calling emit_insn_after.
From-SVN: r125827
Seongbae Park [Mon, 18 Jun 2007 20:35:22 +0000 (20:35 +0000)]
Revert 125825 due to mismatching patch/changelog.
From-SVN: r125826
Seongbae Park [Mon, 18 Jun 2007 20:02:33 +0000 (20:02 +0000)]
re PR rtl-optimization/32339 (ICE in insert_save, at caller-save.c:726)
gcc/ChangeLog:
2007-06-18 Seongbae Park <seongbae.park@gmail.com>
PR rtl-optimization/32339
* df-scan.c (df_uses_record): Don't modify flags but just add to
it for df_ref_record.
gcc/testsuite/ChangeLog:
2007-06-18 Martin Michlmayr <tbm@cyrius.com>
PR rtl-optimization/32339
* gcc.c-torture/compile/pr32339.c: New test.
From-SVN: r125825
David Daney [Mon, 18 Jun 2007 19:35:05 +0000 (19:35 +0000)]
revert: re PR target/32313 (Bootstrap failure running gengtype in stage 2.)
Revert:
2007-06-18 David Daney <ddaney@avtrex.com
PR target/32313
* config/mips/mips.c (mips_expand_call): Mark $gp as used by
local function call.
From-SVN: r125824
David Daney [Mon, 18 Jun 2007 17:36:42 +0000 (17:36 +0000)]
re PR target/32313 (Bootstrap failure running gengtype in stage 2.)
PR target/32313
* config/mips/mips.c (mips_expand_call): Mark $gp as used by
local function call.
From-SVN: r125818
Paolo Carlini [Mon, 18 Jun 2007 17:22:53 +0000 (17:22 +0000)]
stl_list.h: Rename guard macro consistently with file name.
2007-06-18 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_list.h: Rename guard macro consistently with
file name.
* include/bits/stl_algobase.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/stl_iterator_base_types.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_pair.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_iterator_base_funcs.h: Likewise.
* include/bits/stl_algo.h: Likewise.
* include/bits/stl_iterator.h: Likewise.
* include/bits/stl_tempbuf.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_function.h: Likewise.
* include/bits/stl_tree.h: Likewise.
From-SVN: r125815
Kenneth Zadeck [Mon, 18 Jun 2007 16:47:05 +0000 (16:47 +0000)]
re PR rtl-optimization/32355 (ICE in df_lr_verify_transfer_functions, at df-problems.c:1924)
2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/32355
* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
cse_main.
* df-problems.c (df_note_bb_compute): Fix dumping info.
2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.c-torture/compile/pr32355.c: New testcase.
From-SVN: r125812
Daniel Jacobowitz [Mon, 18 Jun 2007 15:58:17 +0000 (15:58 +0000)]
Makefile.def: Add dependency from configure-gdb to all-bfd.
* Makefile.def: Add dependency from configure-gdb to all-bfd.
* Makefile.in: Regenerated.
From-SVN: r125811
Martin Michlmayr [Mon, 18 Jun 2007 14:32:14 +0000 (14:32 +0000)]
configure.ac: Add AC_CANONICAL_TARGET.
2007-06-18 Martin Michlmayr <tbm@cyrius.com>
H.J. Lu <hongjiu.lu@intel.com>
* configure.ac: Add AC_CANONICAL_TARGET.
* configure: Regenerated.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r125807
Kazu Hirata [Mon, 18 Jun 2007 13:58:33 +0000 (13:58 +0000)]
m68k.c (m68k_expand_epilogue): Emit a return insn with emit_jump_insn.
* config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
insn with emit_jump_insn.
From-SVN: r125801
Uros Bizjak [Mon, 18 Jun 2007 08:30:47 +0000 (10:30 +0200)]
re PR tree-optimization/32383 (ICE with reciprocals and -ffast-math)
PR tree-optimization/32383
* targhooks.c (default_builtin_reciprocal): Add new bool argument.
* targhooks.h (default_builtin_reciprocal): Update prototype.
* target.h (struct gcc_target): Update builtin_reciprocal.
* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
* tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
when fndecl is in BUILT_IN_MD class.
(execute_convert_to_rsqrt): Ditto.
* config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
Convert BUILT_IN_SQRTF code only when md_fn is false.
testsuite/ChangeLog:
PR tree-optimization/32383
* testsuite/g++.dg/opt/pr32383.C: New test.
From-SVN: r125790
Kaz Kojima [Mon, 18 Jun 2007 05:10:38 +0000 (05:10 +0000)]
bt-load.c (move_btr_def): Fix the order of arguments to validate_replace_rtx.
* bt-load.c (move_btr_def): Fix the order of arguments
to validate_replace_rtx.
From-SVN: r125789
Nathan Sidwell [Mon, 18 Jun 2007 00:57:03 +0000 (00:57 +0000)]
* config/m68k/m68k-devices.def: Add 54450..54455.
From-SVN: r125788
GCC Administrator [Mon, 18 Jun 2007 00:16:59 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125786
Danny Smith [Sun, 17 Jun 2007 23:19:09 +0000 (23:19 +0000)]
Correct filename of files.c in recent Changelog entries.
From-SVN: r125779
Danny Smith [Sun, 17 Jun 2007 23:15:58 +0000 (23:15 +0000)]
cppfiles.c (open_file): Correct typo.
* cppfiles.c (open_file): Correct typo.
From-SVN: r125778
Uros Bizjak [Sun, 17 Jun 2007 19:23:30 +0000 (21:23 +0200)]
re PR rtl-optimization/32366 (Segfault in significand_size with -ftree-vectorize)
PR rtl-optimization/32366
* simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
FLOAT_EXTEND]: Prevent non-scalar modes from entering
significand_size.
testsuite/ChangeLog:
PR rtl-optimization/32366
* testsuite/gcc.dg/vect/pr32366.c: New test.
From-SVN: r125777
Kenneth Zadeck [Sun, 17 Jun 2007 17:51:25 +0000 (17:51 +0000)]
re PR middle-end/32349 (ICE in df_refs_verify with -O2 -fmodulo-sched for spec tests)
2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
PR middle-end/32349
* modulo-sched (generate_reg_moves): Added rescan parameter and if
this is true, rescan insn being modified.
(sms_schedule): Added rescan parameter.
(rest_of_handle_sms): Moved freeing of dominance info to before
getting out of cfg_layout.
2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.c-torture/compile/pr32349.c: New testcase.
From-SVN: r125776
Nathan Sidwell [Sun, 17 Jun 2007 13:09:58 +0000 (13:09 +0000)]
atomicity.h: Use __mcfisaa__...
* config/cpu/m68k/atomicity.h: Use __mcfisaa__, __mcfisaaplus__,
__mcfisab__ & __mcfisac__ instead of obsolete cpu #defines.
From-SVN: r125775
Nathan Sidwell [Sun, 17 Jun 2007 13:08:43 +0000 (13:08 +0000)]
predicates.md (const_call_operand): Adjust comment.
* config/m68k/predicates.md (const_call_operand): Adjust comment.
(const_sibcall_operand): New.
(sibcall_operand): Use it.
* config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
(m68k_isas): ISAC does not imply FPU or EMAC.
(override_options): Add ISA_C logic for symbolic jump & call.
From-SVN: r125774
Nathan Sidwell [Sun, 17 Jun 2007 13:07:03 +0000 (13:07 +0000)]
m68k.c (all_isas): Remove FL_CF_FPU and FL_CF_EMAC from the entry for isac.
* config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
FL_CF_EMAC from the entry for isac.
From-SVN: r125773
Nathan Sidwell [Sun, 17 Jun 2007 13:06:02 +0000 (13:06 +0000)]
m68k.h (ISA_HAS_FF1, [...]): New.
* config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
* config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
appropriate.
From-SVN: r125772
Eric Botcazou [Sun, 17 Jun 2007 11:17:10 +0000 (13:17 +0200)]
sparc.c (sparc_vis_init_builtins): Retrieve the return mode from the builtin itself.
* config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
return mode from the builtin itself.
(sparc_fold_builtin): Fix cast of zero constant.
From-SVN: r125768
Uros Bizjak [Sun, 17 Jun 2007 07:20:21 +0000 (09:20 +0200)]
sse-recip-vec.c: Add file, missing from my previous commit.
* gcc.target/i386/sse-recip-vec.c: Add file, missing from my
previous commit.
From-SVN: r125767
Janne Blomqvist [Sun, 17 Jun 2007 06:18:38 +0000 (09:18 +0300)]
gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n environment variables.
2007-06-17 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n
environment variables. Fix documentation for
GFORTRAN_UNBUFFERED_ALL environment variable.
From-SVN: r125766
GCC Administrator [Sun, 17 Jun 2007 00:16:58 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125764
Uros Bizjak [Sat, 16 Jun 2007 19:36:50 +0000 (21:36 +0200)]
* Fix mis-merge from PTR-PLUS branch.
From-SVN: r125759
Uros Bizjak [Sat, 16 Jun 2007 18:52:11 +0000 (20:52 +0200)]
targhooks.c (default_builtin_reciprocal): New default target hook.
* targhooks.c (default_builtin_reciprocal): New default target hook.
* targhooks.h (default_builtin_reciprocal): Add prototype.
* hooks.c (hook_tree_tree_bool_null): Remove hook.
* hooks.h (hook_tree_tree_bool_null): Remove prototype.
* target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
default_builtin_reciprocal.
From-SVN: r125758
Vladimir Prus [Sat, 16 Jun 2007 12:30:49 +0000 (12:30 +0000)]
cppfiles.c (open_file): Prevent the call for stat from overwriting errno.
* cppfiles.c (open_file): Prevent the call
for stat from overwriting errno.
From-SVN: r125757
Uros Bizjak [Sat, 16 Jun 2007 09:52:48 +0000 (11:52 +0200)]
re PR middle-end/31723 (Use reciprocal and reciprocal square root with -ffast-math)
PR middle-end/31723
* hooks.c (hook_tree_tree_bool_null): New hook.
* hooks.h (hook_tree_tree_bool_null): Add prototype.
* tree-pass.h (pass_convert_to_rsqrt): Declare.
* passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
* tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
and convert it to reciprocal a*rfunc(b).
(execute_convert_to_rsqrt): New function.
(gate_convert_to_rsqrt): New function.
(pass_convert_to_rsqrt): New pass definition.
* target.h (struct gcc_target): Add builtin_reciprocal.
* target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
(TARGET_INITIALIZER): Initialize builtin_reciprocal with
TARGET_BUILTIN_RECIPROCAL.
* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
* config/i386/i386.h (TARGET_RECIP): New define.
* config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(*rcpsf2_sse): New insn pattern.
(*rsqrtsf2_sse): Ditto.
(rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
* config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(*sse_rsqrtv4sf2): Do not export.
(sqrtv4sf2): Ditto.
(sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
for TARGET_SSE_MATH and TARGET_RECIP when
flag_unsafe_math_optimizations is set and not optimizing for size.
(sqrtv4sf2): Ditto.
* config/i386/i386.opt (mrecip): New option.
* config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
(ix86_emit_swsqrtsf): Ditto.
* config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
(ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
builtin definition.
(ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
ix86_expand_unop1_builtin.
(ix86_emit_swdivsf): New function.
(ix86_emit_swsqrtsf): Ditto.
(ix86_builtin_reciprocal): New function.
(TARGET_BUILTIN_RECIPROCAL): Use it.
(ix86_vectorize_builtin_conversion): Rename from
ix86_builtin_conversion.
(TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
* doc/invoke.texi (Machine Dependent Options): Add -mrecip to
"i386 and x86_64 Options" section.
(Intel 386 and AMD x86_64 Options): Document -mrecip.
testsuite/ChangeLog:
PR middle-end/31723
* gcc.target/i386/recip-divf.c: New test.
* gcc.target/i386/recip-sqrtf.c: Ditto.
* gcc.target/i386/recip-vec-divf.c: Ditto.
* gcc.target/i386/recip-vec-sqrtf.c: Ditto.
* gcc.target/i386/sse-recip.c: Ditto.
From-SVN: r125756
Andrew Pinski [Sat, 16 Jun 2007 05:42:36 +0000 (22:42 -0700)]
[multiple changes]
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
Zdenek Dvorak <dvorakz@suse.cz>
Richard Guenther <rguenther@suse.de>
Kaz Kojima <kkojima@gcc.gnu.org>
* tree-vrp.c (compare_values_warnv): Convert val2 to
the type of val1.
(extract_range_from_assert): Create
POINTER_PLUS_EXPR for pointer types.
(extract_range_from_binary_expr): Handle
only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
for pointer types.
* doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
* tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
POINTER_PLUS_EXPR as PLUS_EXPR.
(number_of_iterations_lt_to_ne):
For pointer types, use sizetype when
creating MINUS_EXPR/PLUS_EXPRs.
(assert_loop_rolls_lt): For pointer types, use sizetype when
creating MINUS_EXPR/PLUS_EXPRs.
(number_of_iterations_le): Likewise.
(expand_simple_operations): POINTER_PLUS_EXPR are simple also.
(derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
like PLUS_EXPR and MINUS_EXPR.
* tree-pretty-print.c (dump_generic_node): Handle
POINTER_PLUS_EXPR.
(op_prio): Likewise.
(op_symbol_1): Likewise.
* optabs.c (optab_for_tree_code): Likewise.
* tree-ssa-loop-manip.c (create_iv): Handle pointer base
specially.
* tree-tailcall.c (process_assignment): Mention
POINTER_PLUS_EXPR in a TODO comment.
* tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
not used with a pointer and an integer type.
* tree-scalar-evolution.c (add_to_evolution_1): Convert the
increment using chrec_convert_rhs instead of chrec_convert.
(follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
PLUS_EXPR except for the right hand side's type will be
sizetype.
(interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
(fold_used_pointer_cast): Kill.
(pointer_offset_p): Kill.
(fold_used_pointer): Kill.
(pointer_used_p): Kill.
(analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
call fold_used_pointer.
(instantiate_parameters_1): Convert the increment
using chrec_convert_rhs instead of chrec_convert.
Handle POINTER_PLUS_EXPR as PLUS_EXPR.
* builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
instead of PLUS_EXPR.
(expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
PLUS_EXPR for pointers.
(std_gimplify_va_arg_expr): Likewise.
(fold_builtin_memory_op): Likewise.
(fold_builtin_strstr): Likewise.
(fold_builtin_strchr): Likewise.
(fold_builtin_strrchr): Likewise.
(fold_builtin_strpbrk): Likewise.
(expand_builtin_memory_chk): Likewise.
(fold_builtin_memory_chk): Likewise.
(std_expand_builtin_va_start): Use
sizetype for the call to make_tree and then convert
to the pointer type.
(fold_builtin_memchr): Use POINTER_PLUS_EXPR
instead of PLUS_EXPR for adding to a pointer.
(std_gimplify_va_arg_expr): Use fold_build2 for
the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
the operands to sizetype first and then cast the BIT_AND_EXPR
back to the pointer type.
* fold-const.c (build_range_check): Handle pointer types
specially.
(extract_array_ref): Look for POINTER_PLUS_EXPR instead
of PLUS_EXPR's. Make sure the offset is converted to
sizetype.
(try_move_mult_to_index): Strip the NOPs from the offset.
Remove code argument and replace all uses with PLUS_EXPR.
(fold_to_nonsharp_ineq_using_bound): Handle pointer types
specially. Don't use a pointer type for MINUS_EXPR.
(fold_unary): Handle for (T1)(X op Y),
only p+ as that is the only as that can be handled for
binary operators now.
(fold_binary <case POINTER_PLUS_EXPR>): Add folding of
POINTER_PLUS_EXPR.
<case PLUS_EXPR>: Add folding of PTR+INT into
PTR p+ INT.
Don't call try_move_mult_to_index.
<case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
(PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
Don't call try_move_mult_to_index.
(tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
(tree_expr_nonzero_p): Likewise.
(fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
of PLUS_EXPR for the complex expression folding.
* tree-chrec.c (chrec_fold_plus_poly_poly): If the
first chrec is a pointer type, then the second should
be sizetype and not the first's type.
For POINTER_PLUS_EXPR, use a different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
(chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
(chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
instead of PLUS_EXPR.
When either operand is zero, convert the other operand.
(chrec_apply): Use chrec_convert_rhs
on the argument x instead of chrec_convert.
(reset_evolution_in_loop): For pointer types, the new_evol
should be sizetype.
(convert_affine_scev): For POINTER_PLUS_EXPR, use a
different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
(chrec_convert_rhs): New function.
(chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
different right hand side type.
Handle POINTER_PLUS_EXPR like PLUS_EXPR.
* tree-chrec.h (chrec_convert_rhs): New prototype.
(build_polynomial_chrec): For pointer types, the right hand
* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
POINTER_PLUS_EXPR instead of PLUS_EXPR's.
Remove subtraction case as it is always addition now.
Make sure the offset is converted to sizetype.
(fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
* tree-ssa-loop-ivopts.c (determine_base_object): Abort for
PLUS_EXPR in pointer type.
Handle POINTER_PLUS_EXPR.
(tree_to_aff_combination): Likewise.
(force_expr_to_var_cost): Likewise.
(force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
* c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
instead of PLUS_EXPR of pointer types.
* tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
as PLUS_EXPR.
(check_va_list_escapes): Likewise.
(check_all_va_list_escapes): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1):
Handle POINT_PLUS_EXPR as a PLUS_EXPR.
* expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
(string_constant): Likewise.
* tree-ssa-address.c (tree_mem_ref_addr): When adding
the offset to the base, use POINTER_PLUS_EXPR.
(add_to_parts): Convert the index to sizetype.
(create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
* matrix-reorg.c (collect_data_for_malloc_call): Stmt
will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
Offset only holds something for PLUS_EXPR.
(ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
a PLUS_EXPR.
(analyze_transpose): POINTER_PLUS_EXPR will only show up now
and not PLUS_EXPR.
(analyze_accesses_for_modify_stmt): Likewise.
Remove comment about the type being integral type as it is
wrong now.
(can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
PLUS_EXPR.
(transform_access_sites): POINTER_PLUS_EXPR will only show up now
and not PLUS_EXPR.
Correct the type which the artimentic is done in (is now
sizetype).
Reindent one loop.
* tree-data-ref.c (split_constant_offset): Handle
POINTER_PLUS_EXPR
* tree-affine.c (tree_to_aff_combination): Likewise.
* c-typeck.c (build_unary_op): For pointers create the increment
as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
for pointers.
* gimplify.c (gimplify_self_mod_expr): Create a
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
(gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
* tree.def (POINTER_PLUS_EXPR): New tree code.
* tree-predcom.c (ref_at_iteration): If we have a pointer
type do the multiplication in sizetype.
* tree-mudflap.c (mf_xform_derefs_1): Create a
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
* tree-ssa-forwprop.c
(forward_propagate_addr_into_variable_array_index):
Don't expect there to be a cast for the index as that
does not exist anymore.
(forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
instead of PLUS_EXPR.
Don't check for the first operand of the POINTER_PLUS_EXPR
was the index as it cannot be.
Call forward_propagate_addr_into_variable_array_index with
the SSA_NAME instead of the statement.
* varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
(compare_constant): Likewise.
(copy_constant): Likewise.
(compute_reloc_for_constant): Likewise.
(output_addressed_constants): Likewise.
(initializer_constant_valid_p): Likewise.
* tree-ssa.c (tree_ssa_useless_type_conversion_1):
Convert the MIN/MAX of the inner type to the outer
type before comparing them.
* tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
POINTER_PLUS_EXPR instead of PLUS_EXPR.
(issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
of PLUS_EXPR for pointers.
* tree-inline.c (estimate_num_insns_1): Handle
POINTER_PLUS_EXPR.
* tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
(bump_vector_ptr): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for the pointer increment statement.
(vect_update_ivs_after_vectorizer): For pointer types, create
POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
MULT_EXPR in sizetype.
(vect_gen_niters_for_prolog_loop): Add a cast when creating
byte_misalign.
* tree-object-size.c (plus_expr_object_size): Handle
POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
code which is trying to figure out which side is a pointer and
is the index.
(check_for_plus_in_loops_1): Likewise.
(check_for_plus_in_loops): Likewise.
* c-common.c (pointer_int_sum): Create a
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
* tree-ssa-structalias.c (handle_ptr_arith): Handle
only POINTER_PLUS_EXPR. Removing all the extra
code which is trying to figure out which side is a pointer and
is the index.
* tree-cfg.c (verify_expr): Add extra checking for pointers and
PLUS_EXPR and MINUS_EXPR.
Also add checking to make sure the operands of POINTER_PLUS_EXPR
are correct.
* config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
with make_tree, instead of a pointer type.
* config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
for pointers instead of PLUS_EXPR.
(s390_gimplify_va_arg): Likewise.
* config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
instead of PLUS_EXPR when doing addition on pointer
types. Use sizetype for the second operand.
(spu_gimplify_va_arg_expr): Likewise.
* config/sparc/sparc.c (sparc_gimplify_va_arg): Use
POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
a pointer. Don't create a BIT_AND_EXPR for pointer types.
* config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
for the pointer addition and also use size_int/sizetype
for the offset.
(ix86_gimplify_va_arg): Likewise.
Perform BIT_AND_EXPR on sizetype arguments.
* config/sh/sh.c (sh_va_start): Call make_tree with sizetype
and convert its result to a pointer type. Use POINTER_PLUS_EXPR
for the pointer additions and also use size_int for the offsets.
(sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
additions and also use size_int for the offsets. Perform
BIT_AND_EXPR on sizetype arguments.
* config/ia64/ia64.c (ia64_gimplify_va_arg): Use
POINTER_PLUS_EXPR for pointers and create the
BIT_AND_EXPR in sizetype.
* config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointer addition.
(rs6000_va_start): Likewise.
Also use sizetype for the offset.
* config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
as PLUS_EXPR/MINUS_EXPR.
(hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
Don't use BIT_AND_EXPR on a pointer type, convert the
expression to sizetype first.
* config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
for pointers.
(mips_gimplify_va_arg_expr): Likewise.
Don't create BIT_AND_EXPR in a pointer type.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition.
* trans-expr.c (gfc_trans_string_copy): Create
POINTER_PLUS_EXPR instead of a PLUS_EXPR
for pointer types.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* typeck.c (build_binary_op): For templates build the
expression in pieces to avoid the assert in build2_stat.
(get_member_function_from_ptrfunc):
Change over to using POINTER_PLUS_EXPR and convert
the second operand to sizetype.
* typeck2.c (build_m_component_ref): Likewise.
* init.c (expand_virtual_init): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
(build_new_1): Likewise.
(build_vec_delete_1): Likewise.
(build_vec_delete): Likewise.
* class.c (build_base_path): Likewise.
(build_base_path): Likewise.
(convert_to_base_statically): Likewise.
(fixed_type_or_null): Handle POINTER_PLUS_EXPR.
(get_vtbl_decl_for_binfo): Handle POINTER_PLUS_EXPR
instead of PLUS_EXPR.
(dfs_accumulate_vtbl_inits): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
* call.c (build_special_member_call): Likewise.
* rtti.c (build_headof): Likewise.
Use sizetype instead of ptrdiff_type_node.
(tinfo_base_init): Create a POINTER_PLUS_EXPR
instead of PLUS_EXPR for pointers.
* except.c (expand_start_catch_block): Do a
NEGATIVE and then a POINTER_PLUS_EXPR instead
of a MINUS_EXPR.
* cp-gimplify.c (cxx_omp_clause_apply_fn): Convert
PLUS_EXPR on pointer types over to use
POINTER_PLUS_EXPR and remove the conversion
to the pointer types.
* method.c (thunk_adjust): Use POINTER_PLUS_EXPR for
adding to a pointer type. Use size_int instead of
ssize_int. Convert the index to sizetype before
adding it to the pointer.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* trans.c (Attribute_to_gnu): When subtracting an
offset from a pointer, use POINTER_PLUS_EXPR with
NEGATE_EXPR instead of MINUS_EXPR.
(gnat_to_gnu): Likewise.
* utils.c (convert): When converting between
thin pointers, use POINTER_PLUS_EXPR and sizetype
for the offset.
* utils2.c (known_alignment): POINTER_PLUS_EXPR
have the same semantics as PLUS_EXPR for alignment.
(build_binary_op): Add support for the semantics of
POINTER_PLUS_EXPR's operands.
When adding an offset to a pointer, use POINTER_PLUS_EXPR.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
* class.c (make_class_data): Build the index in sizetype.
Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
adding to a pointer type.
(build_symbol_entry): Likewise.
* expr.c (build_java_arrayaccess): Likewise.
(build_field_ref): Likewise.
(build_known_method_ref): Likewise.
(build_invokevirtual): Likewise.
* except.c (build_exception_object_ref): Do a
NEGATIVE and then a POINTER_PLUS_EXPR instead
of a MINUS_EXPR.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/32225
* gcc.c-torture/compile/
20070605-1.c: New test.
* gcc.c-torture/compile/
20070603-1.c: New testcase.
* gcc.c-torture/compile/
20070603-2.c: New testcase.
* gcc.c-torture/compile/
20070531-1.c: New test.
PR tree-opt/32167
* gcc.c-torture/compile/
20070531-2.c: New test.
PR tree-opt/32144
* gcc.c-torture/compile/
20070529-1.c: New test.
PR tree-opt/32145
* gcc.c-torture/compile/
20070529-2.c: New test.
PR tree-opt/32015
* gcc.c-torture/compile/
20070520-1.c: New test.
* g++.dg/ext/java-1.C: New test.
* gcc.dg/vect/vect-106.c: We are now able to vectorize two
loops instead of one. Remove the "can't determine dependence"
check.
* gcc.dg/tree-ssa/
20030815-1.c: Remove testcase which is no longer
needed as the cast is gone in the first place.
* gcc.dg/max-1.c: Change local variable a to be a global one.
* gcc.dg/tree-ssa/ssa-pre-8.c: Update testcase since we don't
have a cast which is PREd.
From-SVN: r125755
Eric Christopher [Sat, 16 Jun 2007 02:43:57 +0000 (02:43 +0000)]
config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
2007-06-15 Eric Christopher <echristo@apple.com>
* config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
(x86_64-*-darwin*): Ditto.
* config/i386/darwin.h (CRTEND_SPEC): New. Add support
for above.
From-SVN: r125754
GCC Administrator [Sat, 16 Jun 2007 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r125751
Matthew Wilcox [Fri, 15 Jun 2007 17:33:01 +0000 (00:33 +0700)]
extend.texi: Document behavior of __attribute__((aligned)) on typedefs.
* doc/extend.texi: Document behavior of __attribute__((aligned))
on typedefs.
From-SVN: r125747
Mark Mitchell [Fri, 15 Jun 2007 17:31:53 +0000 (17:31 +0000)]
* rtlanal.c (note_stores): Improve documentation.
From-SVN: r125746
Mark Mitchell [Fri, 15 Jun 2007 16:58:29 +0000 (16:58 +0000)]
cp-tree.h (DECL_VAR_MARKED_P): Remove.
* cp-tree.h (DECL_VAR_MARKED_P): Remove.
(DECL_ANON_UNION_VAR_P): New macro.
* class.c (fixed_type_or_null): Tidy. Use a hash table, rather
than DECL_VAR_MARKED_P, to keep track of which variables we have
seen.
* decl.c (redeclaration_error_message): Complain about redeclaring
anonymous union members at namespace scope.
* decl2.c (build_anon_union_vars): Set DECL_ANON_UNION_VAR_P.
* g++.dg/lookup/anon6.C: New test.
From-SVN: r125745
Bernd Schmidt [Fri, 15 Jun 2007 11:54:51 +0000 (11:54 +0000)]
elf.h (ASM_GENERATE_INTERNAL_LABEL, [...]): Delete.
* config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
LOCAL_LABEL_PREFIX): Delete.
* config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
(bfin_internal_label): Delete.
From-SVN: r125740
Rainer Orth [Fri, 15 Jun 2007 10:26:16 +0000 (10:26 +0000)]
re PR libfortran/32345 (Unconditional snprintf use breaks all gfortran exec tests on Tru64 UNIX V4.0F)
PR libfortran/32345
* runtime/backtrace.c (show_backtrace): Only use snprintf if
available.
From-SVN: r125739
Arnaud Charlet [Fri, 15 Jun 2007 08:27:59 +0000 (10:27 +0200)]
Add new tests
From-SVN: r125738
Uros Bizjak [Fri, 15 Jun 2007 07:01:31 +0000 (09:01 +0200)]
libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3...
* libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
otherwise define to LIBGCC2_TF_CEXT.
* config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
(LIBGCC_TF_CEXT): Ditto.
(TF_SIZE): Ditto.
From-SVN: r125737
Seongbae Park [Fri, 15 Jun 2007 06:33:24 +0000 (06:33 +0000)]
re PR rtl-optimization/32339 (ICE in insert_save, at caller-save.c:726)
2007-06-14 Seongbae Park <seongbae.park@gmail.com>
PR rtl-optimization/32339
* df-scan.c (df_uses_record): Don't modify flags but just add to it for
df_ref_record.
From-SVN: r125736