David Daney [Wed, 12 Sep 2007 15:16:23 +0000 (15:16 +0000)]
configure.host: Enable interpreter for mips64.
* configure.host: Enable interpreter for mips64. Enable hash
synchronization for all mips*-*-linux* targets.
* sysdep/mips/locks.h (compare_and_swap, compare_and_swap_release) Use
__sync_bool_compare_and_swap instead of in-line asm.
(release_set, read_barrier, write_barrier): Use __sync_synchronize
instead of in-line asm.
gcc/
* c-tree.h (grokfield): Add a "tree *" argument.
* c-decl.c (grokdeclarator): Take a pointer to the decl's attributes.
Chain nested decl attributes to it. Don't call decl_attributes here.
(groktypename): Pass grokdeclarator a pointer to the attribute list.
(start_decl, grokparm, push_parm_decl, start_function): Likewise.
(grokfield): Take a pointer to the decl's attributes and pass
it to grokdeclarator.
* c-parser.c (c_parser_struct_declaration): Update the calls to
grokfield. Call decl_attributes for anonymous struct and union
fields.
a-extiti.ads (Timer): The discriminant is a "not null access constant" in the Reference Manual.
* a-extiti.ads (Timer): The discriminant is a "not null access
constant" in the Reference Manual.
(Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
* g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
Add new constant Thread_Blocking_IO, always True by default, set False
on a per-runtime basis.
(Need_Netdb_Buffer): New constant.
* s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
Added renames for corresponding functions in System.Partition_Interface.
* Makefile.in: Remove VMS specific System.CRTL packages which are no
longer needed.
Robert Dewar [Wed, 12 Sep 2007 11:58:50 +0000 (13:58 +0200)]
g-thread.ads: Document use of "with GNAT.Threads" to ensure loading the tasking version of...
2007-09-12 Robert Dewar <dewar@adacore.com>
* g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
the tasking version of the Ada run time when foreign threads are
present and there are no explicit Ada tasks or tasking constructs.
* gnat_rm.texi: Clarify documentation of GNAT.Threads.
decl.c (gnat_to_gnu_entity): For a subtype with discriminant constraints...
2007-09-12 Olivier Hainque <hainque@adacore.com>
ada/
* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
with discriminant constraints, generalize the code for BIT_FIELDs
to PACKED fields of constant size and propagate DECL_PACKED.
testsuite/
* gnat.dg/packed_subtype.adb: New test.
re PR fortran/33297 (SIZE intrinsic crashes gfortran on invalid usage)
2007-09-12 Tobias Burnus <burnus@net-b.de>
PR fortran/33297
* check.c (scalar_check): Move up in the file.
(kind_check): Call scalar_check.
(dim_check): If optional, do not call nonoptional_check; use
bool for optional.
(gfc_check_all_any,gfc_check_count,gfc_check_cshift,gfc_check_eoshift,
gfc_check_lbound,gfc_check_minloc_maxloc,check_reduction,
gfc_check_spread,gfc_check_ubound): Use true/false instead of 0/1
for dim_check; honor changed meaning of optional.
(gfc_check_int): Replace checks by kind_check.
(gfc_check_size): Replace checks by dim_check.
re PR fortran/33395 ([ISO_C_BINDING ?] ICE (segfault) in gfc_conv_initializer)
2007-09-12 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/33395
* trans-expr.c (gfc_conv_initializer): Remove unnecessary test for
intmod_sym_id and use derived symbol to set new kind of C_NULL_PTR
and C_NULL_FUNPTR expressions.
2007-09-12 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/33395
* gfortran.dg/c_ptr_tests_12.f03: New test case.
Ira Rosen [Wed, 12 Sep 2007 05:09:17 +0000 (05:09 +0000)]
tree-vect-transform.c (vect_get_slp_defs): Don't build a vector for oprnd1 if not required.
* tree-vect-transform.c (vect_get_slp_defs): Don't build a vector
for oprnd1 if not required.
(vectorizable_operation): Use scalar operand in SLP in case of
shift with scalar argument.
Johannes Singler [Tue, 11 Sep 2007 22:32:51 +0000 (22:32 +0000)]
Add parallel mode.
2007-09-11 Johannes Singler <singler@ira.uka.de>
Leonor Frias Moya <lfrias@lsi.upc.edu>
Felix Putze <kontakt@felix-putze.de>
Marius Elvert <marius.elvert@ira.uka.de>
Felix Bondarenko <f.bondarenko@web.de>
Robert Geisberger <robert.geisberger@stud.uni-karlsruhe.de>
Robin Dapp <r.dapp@freenet.de>
Benjamin Kosnik <bkoz@redhat.com>
Eric Botcazou [Tue, 11 Sep 2007 19:43:02 +0000 (19:43 +0000)]
tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
ada/
* decl.c (array_type_has_nonaliased_component): New predicate.
(gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
set the TYPE_NONALIASED_COMPONENT flag on the type.
<E_Array_Subtype>: Likewise.
* gigi.h (type_for_nonaliased_component_p): Declare.
* utils.c (type_for_nonaliased_component_p): New predicate.
(create_field_decl): Invoke the above predicate to set the
DECL_NONADDRESSABLE_P flag on the field.
re PR fortran/33040 ([ISO_C_BINDING] ICE in gfc_trans_structure_assign)
2007-09-11 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/33040
* trans-expr.c (gfc_trans_structure_assign): Convert component
C_NULL_PTR and C_NULL_FUNPTR component initializers to (void *).
* trans-types.c (gfc_get_derived_type): Create a backend_decl for
the c_address field of C_PTR and C_FUNPTR and ensure initializer
is of proper type/kind for (void *).
2007-09-11 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/33040
* gfortran.dg/c_ptr_tests_11.f03: New test case.
predicates.md (movsi_const0_operand, [...]): New predicates.
* config/m68k/predicates.md (movsi_const0_operand,
non_symbolic_call_operand): New predicates.
* config/m68k/constraints.md: (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
New constraints.
* doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
CW, CZ, CS, Ap and Ac.
* config/m68k/m68k.md (UNSPEC_IB): New constant.
(constraints.md): New include.
(cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
opx_mem, opy_mem, op_mem, guess, split): New attributes.
(movdf_internal): Name pattern. Fix to use alternatives. Add split.
Specify attributes.
(pushdi): Add split.
(tstsi_internal): Name pattern. Fix to use alternatives. Specify
attributes. Split tstsi_internal_68020_cf from it.
(tstsi_internal_68020_cf): New pattern.
(tsthi_internal, tstqi_internal): Name pattern. Specify attributes.
(tst<mode>_cf): Specify attributea.
(cmpsi_cf): Name pattern. Specify attributes.
(cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
(pushexthisi_const): Fix to use alternatives. Specify
attributes.
(movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
from it. Fix to use alternatives. Specify attributes.
(movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
(movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify
attributes.
(movsf_cf_soft): Specify attributes.
(movdf_cf_soft): Add split.
(pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
68k_extendqisi2, truncdfsf2_cf): Specify attributes.
(truncdfsf2_68881): Name pattern. Specify attributes.
(floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
Specify attributes.
(addsi3_5200): Fix to use alternatives. Specify attributes.
Add splits.
(add<mode>3_cf, subdi_dishl32): Specify attributes.
(subsi3): Add alternative for subq.l. Specify attributes.
(sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
(mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify
attributes.
(umulhisi3): Specify attributes.
(mulhisisi3_z): Name pattern. Specify attributes.
(fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
bsetmemqi): Specify attributes.
(bsetmemqi_ext): Name pattern. Specify attributes.
(bclrmemqi): Specify attributes.
(bclrmemqi_ext, scc, sls): Name pattern. Specify attributes.
(beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
attributes.
(beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
pattern. Specify attributes.
(jump): Specify attributes.
(tablejump_internal): Name pattern. Specify attributes.
(call_value): Split into non_symbolic_call_value,
symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use
alternatives. Specify attributes.
(non_symbolic_call_value, symbolic_call_value_jsr,
symbolic_call_value_bsr): New patterns.
(nop, return, unlink, indirect_jump): Specify attributes.
(trap): Fix condition. Specify attributes.
(ib): New pattern.
* config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
(override_options): Initialize it. Initialize m68k_sched_cpu.
(CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
(const_method): Make global, rename to m68k_const_method.
(const_int_cost, output_move_const_into_data_reg): Update.
(output_move_double): Parametrize to emit rtl code, rename to
handle_move_double.
(output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
emit_movsi): New static functions.
(output_move_double): New function with semantics of old
output_move_double.
(m68k_emit_move_double): New function.
(m68k_sched_cpu): New variable.
(attr_op_type): New enum.
(sched_guess_p): New variable.
(sched_address_type, sched_operand_type, sched_attr_op_type):
New static functions.
(m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
(sched_branch_type): New static variable.
(m68k_sched_branch_type): New function.
* config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
(m68k_symbolic_call_var): Declare.
(M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c.
(m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
Declare.
Jakub Jelinek [Tue, 11 Sep 2007 13:40:14 +0000 (15:40 +0200)]
builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
* builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
* builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
error if __builtin_va_arg_pack_len () wasn't optimized out during
inlining.
* tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
with the number of inline's anonymous arguments.
* doc/extend.texi: Document __builtin_va_arg_pack_len ().
* gcc.dg/va-arg-pack-len-1.c: New test.
* g++.dg/va-arg-pack-len-1.C: New test.
Javier Miranda [Tue, 11 Sep 2007 11:03:53 +0000 (13:03 +0200)]
einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute.
2007-09-11 Javier Miranda <miranda@adacore.com>
* einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
in library level record type entities if we are generating statically
allocated dispatch tables.
* exp_disp.adb (Make_Tags/Make_DT): Replace previous code
importing/exporting the _tag declaration by new code
importing/exporting the dispatch table wrapper. This change allows us
to statically allocate of the TSD.
(Make_DT.Export_DT): New procedure.
(Build_Static_DT): New function.
(Has_DT): New function.
* freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
True_Constant and Current_Value. Required to statically
allocate the dispatch tables.
(Check_Allocator): Make function iterative instead of recursive.
Also return inner allocator node, when present, so that we do not have
to look for that node again in the caller.
mips.c (mips_set_mips16_mode): Use separate anchor settings for MIPS16.
gcc/
* config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
settings for MIPS16.
(mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.
mips.c (mips_symbol_insns_1): Allow LEAs of SYMBOL_FORCE_TO_MEM constants.
gcc/
* config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
SYMBOL_FORCE_TO_MEM constants.
(mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
(mips16_rewrite_pool_refs_info): New structure.
(mips16_rewrite_pool_constant): New function, split out from...
(mips16_rewrite_pool_refs): ...here. Take a pointer to a
mips16_rewrite_pool_refs_info structure rather than a pointer
to a constant pool. Force force_to_mem_operands into memory.
(mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
* config/mips/predicates.md (force_to_mem_operand): New predicate.
* config/mips/constraints.md (kf): New constraint.
* config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
(*movsi_mips16): Likewise.
gcc/
2007-09-11 Richard Sandiford <richard@codesourcery.com>
Nigel Stephens <nigel@mips.com>
David Ung <davidu@mips.com>
* config/mips/mips.h (CONSTANT_POOL_COST): Move to...
* config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
(mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
(mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
(mips_zero_extend_cost): New functions.
(mips_rtx_costs): Treat COMPARE constants as having zero cost.
Use the new functions. Tweak many cost estimates, both here
and in the new subroutines. Return false when the cost of the
operands has not been calculated. Check for *clear_upper32.
Check for floating-point multiply-add, reciprocal and rsqrt
patterns. Handle comparison and rotation codes.
Co-Authored-By: David Ung <davidu@mips.com> Co-Authored-By: Nigel Stephens <nigel@mips.com>
From-SVN: r128364
Janis Johnson [Tue, 11 Sep 2007 01:11:16 +0000 (01:11 +0000)]
re PR c/30013 (Multiple flaws in decimal floating-point arithmetic conversions fixed)
gcc/
PR c/30013
* config/dfp-bit.c: Don't skip TFmode conversions; move strto*
declarations to top.
(DFP_TO_BFP): Use for either XFmode or TFmode.
(BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
of BFP_VIA_TYPE.
* config/dfp-bit.h: Include float.h.
(LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
which doesn't mean the same thing.
(BFP_KIND): Use 4 to mean TFmode.
(BFP_FMT): Specify the number of decimal digits based on the
number of mantissa digits.
(BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
(BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
(STR_TO_BFP): Use strtold for XFmode or TFmode.
(TFtype): Define if TFmode is supported.
* doc/libgcc.texi (Decimal float library routines): Document
TF conversion functions.
gcc/testsuite/
* gcc.dg/dfp/convert-bfp.c: Replace SKIP_LONG_DOUBLE with runtime
checks for size of long double.
* gcc.dg/dfp/convert.h: New file.
* gcc.dg/dfp/convert-bfp-2.c: New test.
* gcc.dg/dfp/convert-bfp-3.c: Ditto.
* gcc.dg/dfp/convert-bfp-4.c: Ditto.
* gcc.dg/dfp/convert-bfp-5.c: Ditto.
* gcc.dg/dfp/convert-bfp-6.c: Ditto.
* gcc.dg/dfp/convert-bfp-7.c: Ditto.
* gcc.dg/dfp/convert-bfp-8.c: Ditto.
* gcc.dg/dfp/convert-bfp-9.c: Ditto.
* gcc.dg/dfp/convert-bfp-10.c: Ditto.
* gcc.dg/dfp/convert-bfp-11.c: Ditto.
Chao-ying Fu [Tue, 11 Sep 2007 01:04:08 +0000 (01:04 +0000)]
mips.c (mips_scalar_mode_supported_p): Declare.
* config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
(mips_emit_compare): Process fixed-point modes.
(mips_pad_arg_upward): Support fixed-point types.
(override_options): Allow fixed-point modes in accumulators.
(mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
(mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
(mips_scalar_mode_supported_p): New function to accept fixed-point
modes if the width is not greater than two BITS_PER_WORD.
* config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
LONG_LONG_ACCUM_TYPE_SIZE): Define.
* config/mips/mips.md ("d"): Update mode attribute for fixed-point
modes.
("IMODE"): New mode attribute.
(mips-fixed.md): Include.
* config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
ACCUM, UACCUM.
* config/mips/mips-fixed.md: New file.
Janis Johnson [Tue, 11 Sep 2007 00:25:18 +0000 (00:25 +0000)]
dfp-bit.c (dfp_unary_func): Delete.
* config/dfp-bit.c (dfp_unary_func): Delete.
(dfp_unary_op): Delete.
(dfp_binary_op): Use decFloat functions instead of decNumber
functions for binary operations.
(d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
(dnn_binary_op): Call dfp_binary_op with decFloat rather than
DFP_C_TYPE.
(dfp_compare_op): Use decFloat functions insteadof decNumber
functions for comparisons.
(d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
(dnn_binary_op): Call dfp_compare_op with decFloat rather than
DFP_C_TYPE.
(DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
call to dxx_binary_op and decFloat function.
(DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
calls to dxx_binary_op and decFloat function.
* config/dfp-bit.h: Include decFloat header files.
(decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.
rsha Jagasia <harsha.jagasia@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
* tree-vect-analyze.c (vect_analyze_operations): Change
comparison of loop iterations with threshold to less than
or equal to instead of less than. Reduce
min_scalar_loop_bound by one.
* tree-vect-transform.c (vect_estimate_min_profitable_iters):
Change prologue and epilogue iterations estimate to vf/2,
when unknown at compile-time. Change versioning guard
cost to taken_branch_cost. If peeling for alignment is
unknown at compile-time, change peel guard costs to one
taken branch and one not-taken branch per peeled loop.
If peeling for alignment is known but number of scalar loop
iterations is unknown at compile-time, change peel guard
costs to one taken branch per peeled loop. Change the cost
model equation to consider vector iterations as the loop
iterations less the prologue and epilogue iterations.
Change outside vector cost check to less than or equal to
zero instead of equal to zero.
(vect_do_peeling_for_loop_bound): Reduce
min_scalar_loop_bound by one.
* tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
TARG_COND_NOT_TAKEN_BRANCH_COST.
* config/i386/i386.h (processor_costs): Add
scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
vec_align_load_cost, vect_unalign_load_cost,
vec_store_cost, cond_taken_branch_cost,
cond_not_taken_branch_cost.
Define macros for x86 costs.
* config/i386/i386.c:
(size_cost): Set scalar_stmt_cost, scalar_load_cost,
scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
scalar_to_vec_cost, vec_align_load_cost,
vect_unalign_load_cost, vec_store_cost,
cond_taken_branch_cost, cond_not_taken_branch_cost to one.
(i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost,
core2_cost, generic64_cost, generic32_cost): Set to default
untuned costs.
(k8_cost, amdfam10_cost): Costs for vectorization tuned.
(x86_builtin_vectorization_cost): New.
mips.c (mips_global_pointer): Check call_really_used_regs instead of call_used_regs.
gcc/
* config/mips/mips.c (mips_global_pointer): Check
call_really_used_regs instead of call_used_regs.
(mips_save_reg_p): Likewise. Save all call-saved registers
if current_function_saves_all_registers. Fix indentation.
No longer treat $18 as a special case.
(compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
gcc/testsuite/
* gcc.target/mips/call-saved-1.c: New test.
* gcc.target/mips/call-saved-2.c: Likewise.
* gcc.target/mips/call-saved-3.c: Likewise.
* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_gp64
instead of mips_mips64. Set mips_fp64 too.
(is_gp32_flag): Return true for -mips1 and -mips2.
(dg-mips-options): Use mips_gp64 instead of mips_mips64.
gcc/
* config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
* config/mips/mips.c (mips_cpu_info_table): Mention it in the
the introductory comment.
(MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
(override_options): Don't test for it.
* config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
(DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
* config/mips/vr.h: As for config/mips/sde.h.
re PR other/32154 (sim-crt0.o/crt0.o isn't found during configure due to missing -L or -B)
PR other/32154
* configure.ac: For libgloss targets, point the linker to the linker
script, startup code and simulator library.
* configure: Regenerate.
Robert Kidd [Mon, 10 Sep 2007 12:49:46 +0000 (12:49 +0000)]
bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to RTL level tracer pass.
2007-09-10 Robert Kidd <rkidd@crhc.uiuc.edu>
* bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to
RTL level tracer pass.
* passes.c (init_optimization_passes): Move pass_tracer from
after pass_rtl_ifcvt to after pass_dce.
* tracer.c: Update copyright.
(layout_superblocks): Remove function.
(mark_bb_seen): New.
(bb_seen_p): New.
(count_insns): Change to estimate instructions in a Tree-SSA
statement.
(find_trace): Use bb_seen_p.
(tail_duplicate): Use bb_seen_p. Call add_phi_args_after_copy
after duplicate_block.
(tracer): Change prototype to match that of a pass execute
callback.
(gate_tracer): Rename from gate_handle_tracer.
(rest_of_handle_tracer): Remove function.
* rtl.h: Remove prototype for tracer.
* testsuite/gcc.dg/tree-prof/tracer-1.c: New.
Ed Schonberg [Mon, 10 Sep 2007 12:49:04 +0000 (14:49 +0200)]
sem_ch12.adb (Build_Local_Package): A formal package with no associations is legal if all formals have defaults.
2007-09-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Build_Local_Package): A formal package with no
associations is legal if all formals have defaults. It is not
equivalent to a formal declared with a box.
Ed Schonberg [Mon, 10 Sep 2007 12:48:54 +0000 (14:48 +0200)]
sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is given a box association...
2007-09-10 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
given a box association, the type of the component is discriminated,
and the value of the discriminant is the discriminant of the enclosing
type, retrieve its value from the aggregate itself, where it must have
been supplied.
* sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
to remove other spurious ambiguities on arithmetic operations involving
literals and addresses, on systems where Address is a visible integer
type, when the operator is called in functional notation.
(Try_Primitive_Operation): Within an instance, a call in prefixed form
is legal when the types match, even if the operation is currently
hidden.
Gary Dismukes [Mon, 10 Sep 2007 12:48:35 +0000 (14:48 +0200)]
exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only create an abstract subprogram in the case of 'Input.
2007-09-10 Gary Dismukes <dismukes@adacore.com>
Thomas Quinot <quinot@adacore.com>
* exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
create an abstract subprogram in the case of 'Input. For 'Output we now
create a real spec/body when the type is abstract, since it can
potentially be called.
(Predefined_Primitive_Bodies): Now allow the creation of a predefined
body for 'Output when the type is abstract (only the creation of the
body for 'Input is excluded when the type is abstract).
(Stream_Operation_OK): Add an additional condition in the return
statement, so that False will be returned for TTS_Stream_Input if the
associated tagged type is an abstract extension. Add comments for
return statement.
(Expand_N_Object_Declaration): For the case of a shared passive
variable, insert init proc call only after the shared variable
procedures have been processed, because the IP call needs to undergo
shared passive variable reference expansion, which requires these
procedures to be available (and elaborated).
re PR target/33369 (suffix or operands invalid for `pslld')
PR target/33369
* gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
Use 'N' operand constraint for op2.
(lshr<mode>3): Ditto.
(ashl<mode>3): Ditto.
(vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
(vec_shr_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
* gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
testsuite/ChangeLog:
PR target/33369
* gcc.dg/vect/pr33369.c: New test.
Paul Thomas [Mon, 10 Sep 2007 07:54:17 +0000 (07:54 +0000)]
re PR fortran/33370 (Structure component arrays)
2007-09-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33370
* trans-expr.c (copyable_array_p): Add tests that expression
is a variable, that it has no subreferences and that it is a
full array.
(gfc_trans_assignment): Change conditions to suit modifications
to copyable_array_p.
2007-09-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33370
* gfortran.dg/array_memcpy_5.f90: New test.
Michael Matz [Mon, 10 Sep 2007 07:40:30 +0000 (07:40 +0000)]
tree-pass.h (pass_cselim): Declare new pass.
* tree-pass.h (pass_cselim): Declare new pass.
* passes.c (init_optimization_passes): Link in pass_cselim.
* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
cond_store_replacement.
(condstoretemp): New static variable.
(cond_store_replacement): New function.
(tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
tree_ssa_phiopt_worker.
(struct name_to_bb): New.
(get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
nt_init_block, nt_fini_block): New static functions.
(seen_ssa_names, nontrap_set): New static variables.
(gate_cselim, pass_cselim): Define new pass.
* common.opt (ftree-cselim): New flag.
* toplev.c (process_options): Set flag_tree_cselim if required.