Age | Commit message (Collapse) | Author | Files | Lines |
|
* doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in bits,
a C conformant malloc implementation has to provide.
* defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
ada/
* targtyps.c (get_target_default_allocator_alignment): Use it.
testsuite/
* gcc.dg/mallign.c: New test.
* gnat.dg/allocator_maxalign1.adb: New test.
* gnat.dg/test_allocator_maxalign2.adb: Main caller for ...
* gnat.dg/allocator_maxalign2.ad[bs]: New test.
From-SVN: r137984
|
|
2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
* defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
* postreload.c (reload_cse_simplify_operands): Replace 'm'
constraint with TARGET_MEM_CONSTRAINT.
* recog.c (asm_operand_ok, preprocess_constraints,
constrain_operands): Likewise.
* regclass.c (record_reg_classes): Likewise.
* reload.c (find_reloads, alternative_allows_const_pool_ref):
Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
* stmt.c (parse_output_constraint, parse_input_constraint):
Likewise.
* recog.h: Adjust comment.
* genpreds.c (generic_constraint_letters): Remove 'm' constraint.
* genoutput.c (note_constraint): Don't emit error for 'm'
constraint.
* doc/md.texi: Add a note to description of 'm' constraint.
* doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
From-SVN: r136011
|
|
2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36253
* caller-save.c (insert_restore): Verify alignment of spill
space.
(insert_save): Likewise.
* cfgexpand.c (LOCAL_ALIGNMENT): Removed.
* defaults.h (LOCAL_ALIGNMENT): New. Provide default.
(STACK_SLOT_ALIGNMENT): Likewise.
* function.c (LOCAL_ALIGNMENT): Removed.
(get_stack_local_alignment): New.
(assign_stack_local): Use it. Set alignment on stack slot.
(assign_stack_temp_for_type): Use get_stack_local_alignment.
* config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
(STACK_SLOT_ALIGNMENT): New.
* config/i386/i386.c (ix86_local_alignment): Handle caller-save
stack slot in XFmode.
* doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
From-SVN: r135927
|
|
2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
* defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
* doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
* tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
(vect_update_misalignment_for_peel): Likewise.
(vector_alignment_reachable_p): Likewise.
* tree-vect-transform.c (vectorizable_load): Likewise.
* tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
* tree-vectorizer.c (get_vectype_for_scalar_type): Pass mode of
scalar_type to UNITS_PER_SIMD_WORD.
* config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
From-SVN: r135759
|
|
* calls.c (compute_argument_block_size): Add argument tree fndecl.
(OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
(emit_library_call_value_1): Add new variable fndecl initialized by
NULL_TREE. It should be the decl type of orgfun, but this information
seems not to be available here, so it uses the default calling abi.
* config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
* config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
by TARGET_RETURN_IN_MEMORY.
* config/i386/i386-interix.h: Likewise.
* config/i386/i386.h: Likewise.
* config/i386/i386elf.h: Likewise.
* config/i386/ptx4-i.h: Likewise.
* config/i386/sol2-10.h: Likewise.
* config/i386/sysv4.h: Likewise.
* config/i386/vx-common.h: Likewise.
* config/cris/cris.h: Removed #if 0 clause.
* config/arm/arm-protos.h (arm_return_in_memory): Add fntype
argument.
* config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
argument.
(ix86_sol10_return_in_memory): Likewise.
(ix86_i386elf_return_in_memory): New.
(ix86_i386interix_return_in_memory): New.
* config/mt/mt-protos.h (mt_return_in_memory): New.
* config/mt/mt.c: Likewise.
* config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
(RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
* config/bfin/bfin.h: Likewise.
* config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
argument.
* config/bfin/bfin.c: Likewise.
* config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
* config/alpha/unicosmk.h: Likewise.
* config/i386/cygming.h: Likewise.
* config/iq2000/iq2000.h: Likewise.
* config/mips/mips.h: Likewise.
* config/mn10300/mn10300.h: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/score/score.h: Likewise.
* config/spu/spu.h: Likewise.
* config/v850/v850.h: Likewise.
* defaults.h: Likewise.
* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
* expr.c (emit_block_move): Adjust use of OUTGOING_REG_PARM_STACK_SPACE.
* function.c (STACK_DYNAMIC_OFFSET): Adjust use of
OUTGOING_REG_PARM_STACK_SPACE.
* targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
From-SVN: r135069
|
|
* MAINTAINERS (c4x port): Remove.
contrib:
* paranoia.cc (main): Remove handling of c4x_single and
c4x_extended formats.
gcc:
* config/c4x: Remove directory.
* config.gcc (crx-*, mt-*): Mark obsolete.
(c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
sh-*-rtemscoff*): Remove cases.
* defaults.h (C4X_FLOAT_FORMAT): Remove.
* real.c (encode_c4x_single, decode_c4x_single,
encode_c4x_extended, decode_c4x_extended, c4x_single_format,
c4x_extended_format): Remove.
* real.h (c4x_single_format, c4x_extended_format): Remove.
* doc/extend.texi (interrupt, naked): Remove mention of attributes
on C4x.
(Pragmas): Remove comment about c4x pragmas.
* doc/install.texi (c4x): Remove target-specific instructions.
* doc/invoke.texi (TMS320C3x/C4x Options): Remove.
* doc/md.texi (Machine Constraints): Remove C4x documentation.
* doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
refer to C4x source files as examples.
(C4X_FLOAT_FORMAT): Remove documentation.
gcc/testsuite:
* gcc.dg/builtin-inf-1.c, gcc.dg/compare6.c, gcc.dg/sibcall-3.c,
gcc.dg/sibcall-4.c, gcc.dg/torture/builtin-attr-1.c: Don't handle
c4x-*-* targets.
libgcc:
* config.host (tic4x-*-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*,
tic4x-*, h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
sh-*-rtemscoff*): Remove cases.
From-SVN: r131835
|
|
2007-09-11 James E. Wilson <wilson@specifix.com>
* defaults.h (DWARF2_UNWIND_INFO): Don't define if
TARGET_UNWIND_INFO is defined.
* config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef
after definition.
From-SVN: r128409
|
|
* tree.def (FIXED_POINT_TYPE): New type.
(FIXED_CST): New constant.
(FIXED_CONVERT_EXPR): New expr.
* doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
(Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
* tree.h (struct tree_base): Add saturating_flag.
Remove one bit of spare for saturating_flag.
(NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
(NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
FIXED_POINT_TYPE_P): Define.
(TYPE_SATURATING): Define.
(TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
(struct tree_fixed_cst): New.
(TYPE_IBIT, TYPE_FBIT): Define.
(tree_node): Add fixed_cst.
(enum tree_index): Add new enumeration values of
TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
(sat_short_fract_type_node, sat_fract_type_node,
sat_long_fract_type_node, sat_long_long_fract_type_node,
sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
sat_unsigned_long_fract_type_node,
sat_unsigned_long_long_fract_type_node, short_fract_type_node,
fract_type_node, long_fract_type_node, long_long_fract_type_node,
unsigned_short_fract_type_node, unsigned_fract_type_node,
unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
sat_short_accum_type_node, sat_accum_type_node,
sat_long_accum_type_node, sat_long_long_accum_type_node,
sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
sat_unsigned_long_accum_type_node,
sat_unsigned_long_long_accum_type_node, short_accum_type_node,
accum_type_node, long_accum_type_node, long_long_accum_type_node,
unsigned_short_accum_type_node, unsigned_accum_type_node,
unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
ta_type_node, uha_type_node, usa_type_node, uda_type_node,
uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
sat_uda_type_node, sat_uta_type_node): New macro.
(make_fract_type, make_accum_type): Declare.
(make_signed_fract_type, make_unsigned_fract_type,
make_sat_signed_fract_type, make_sat_unsigned_fract_type,
make_signed_accum_type, make_unsigned_accum_type,
make_sat_signed_accum_type, make_sat_unsigned_accum_type,
make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
make_or_reuse_sat_signed_fract_type,
make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
make_or_reuse_sat_unsigned_accum_type): New macro.
(fixed_zerop): Declare.
* defaults.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.
* treestruct.def: Add TS_FIXED_CST.
* Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
(tree.o): Likewise.
(tree-dump.o): Likewise.
(print-tree.o): Likewise.
(tree-pretty-print.o): Likewise.
(fold-const.o): Likewise.
* tree-complex.c (some_nonzerop): Handle FIXED_CST.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
(is_gimple_min_invariant): Handle FIXED_CST.
* stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
(layout_type): Handle FIXED_POINT_TYPE.
(make_fract_type, make_accum_type): New functions.
* tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
* tree-dump.c (fixed-value.h): New include.
(dump_fixed): New function.
(dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
* tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
(estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
* tree-pretty-print.c (fixed-value.h): New include.
(dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
FIXED_CONVERT_EXPR.
* tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
* tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
* tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
* tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
for non-saturating fixed-point types.
(reassociate_bb): Likewise.
* emit-rtl.c (fixed-value.h): New include.
(fconst0, fconst1): New array.
(init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
* tree-vect-generic.c expand_vector_operation): Support
MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
MODE_VECTOR_UACCUM.
(type_for_widest_vector_mode): Add one parameter for the
saturating flag.
Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
vector mode.
Pass the satp parameter to type_for_mode for fixed-point types.
(expand_vector_operations_1): Pass the saturating flag to
type_for_widest_vector_mode.
Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
and MODE_VECTOR_UACCUM.
* tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
(vectorizable_condition): Likewise.
* tree.c (fixed-value.h): New include.
(tree_code_size): Support FIXED_CST.
(build_fixed): New function.
(build_one_cst): Support FIXED_POINT_TYPE for accum types.
(fixed_zerop): New function.
(tree_node_structure): Support FIXED_CST.
(type_contains_placeholder_1): Support FIXED_POINT_TYPE.
(build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
(type_hash_eq): Handle FIXED_POINT_TYPE.
(simple_cst_equal): Support FIXED_CST.
(iterative_hash_expr): Handle FIXED_CST.
(get_unwidened): Make sure type is not FIXED_POINT_TYPE.
(get_narrower): Likewise.
(variably_modified_type_p): Handle FIXED_POINT_TYPE.
(make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
(build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
nodes.
(build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
(initializer_zerop): Support FIXED_CST.
(walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
* dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
(is_base_type): Handle FIXED_POINT_TYPE.
(add_type_attribute): Handle FIXED_POINT_TYPE.
(gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
* print-tree.c (fixed-value.h): New include.
(print_node_brief): Support FIXED_CST.
(print_node): Support FIXED_POINT_TYPE and FIXED_CST.
* c-pretty-print.c (fixed-value.h): New include.
(pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
(pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
Support fixed-point types for inner items in VECTOR_TYPE.
(pp_c_direct_declarator): Likewise.
(pp_c_declarator): Likewise.
(pp_c_fixed_constant): New function.
(pp_c_constant): Handle FIXED_CST.
(pp_c_primary_expression): Likewise.
(pp_c_expression): Likewise.
* fold-const.c (fixed-value.h): New include.
(negate_expr_p): Return true for FIXED_CST.
(fold_negate_expr): Support FIXED_CST.
(split_tree): Support FIXED_CST.
(const_binop): Support FIXED_CST.
(fold_convert_const_int_from_fixed): New function to convert from
fixed to int.
(fold_convert_const_real_from_fixed): New function to convert from
fixed to real.
(fold_convert_const_fixed_from_fixed): New function to convert from
fixed to another fixed.
(fold_convert_const_fixed_from_int): New function to convert from
int to fixed.
(fold_convert_const_fixed_from_real): New function to convert from
real to fixed.
(fold_convert_const): Support conversions from fixed to int, from
fixed to real, from fixed to fixed, from int to fixed, and from real
to fixed.
(fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
(operand_equal_p): Support FIXED_CST.
(make_range): For fixed-point modes, we need to pass the
saturating flag as the 2nd parameter.
(tree_swap_operands_p): Handle FIXED_CST.
(fold_plusminus_mult_expr): For fract modes, we cannot generate
constant 1.
(fold_unary): Support FIXED_CONVERT_EXPR.
(fold_binary): Handle FIXED_CST.
Make sure the type is not saturating, before associating operations.
Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
(tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
(fold_negate_const): Support FIXED_CST.
(fold_relational_const): Support FIXED_CST.
* gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
(gimplify_expr): Handle FIXED_CST.
(gimplify_type_sizes): Handle FIXED_POINT_TYPE.
* ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
* ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
* doc/tm.texi (Type Layout): Document 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.
* dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
* c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
* tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
* expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
MODE_ACCUM, and MODE_UACCUM.
* tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
fixed-point types to disable reduction.
* explow.c (promote_mode): Support FIXED_POINT_TYPE.
From-SVN: r127306
|
|
License and to point readers at the COPYING3 file and the FSF's license web page.
From-SVN: r126948
|
|
2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
* defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
* doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
* real.c (encode_i370_single, decode_i370_single,
encode_i370_double, decode_i370_double): Functions removed.
(i370_single_format, i370_double_format): Initializations removed.
(real_maxval, round_for_format, exact_real_truncate, significand_size):
Consider the log2_b field to always be one.
(ieee_single_format, mips_single_format, coldfire_single_format,
ieee_double_format, mips_double_format, coldfire_double_format,
ieee_extended_motorola_format, ieee_extended_intel_96_format,
ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
ibm_extended_format, mips_extended_format, ieee_quad_format,
mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
decimal_single_format, decimal_double_format, decimal_quad_format,
c4x_single_format, c4x_extended_format, real_internal_format): Remove
initialization of log2_b.
* real.h (i370_single_format, i370_double_format): Declarations removed.
* c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
field to always be one.
From-SVN: r124901
|
|
* defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
* calls.c (compute_argument_block_size, expand_call,
emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
* function.c (STACK_DYNAMIC_OFFSET): Likewise.
* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
* config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
Set to 1.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r123135
|
|
2007-01-19 Richard Guenther <rguenther@suse.de>
* doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
* defaults.h (TARGET_HAS_SINCOS): Default to off.
* config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
* config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
* config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
* config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
* config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
* config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
From-SVN: r120952
|
|
rtlanal.c:3143)
2006-12-01 Joseph Myers <joseph@codesourcery.com>
David Edelsohn <edelsohn@gnu.org>
PR target/24036
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
Use new macros to detect modes with holes; do not look at integer
units.
(subreg_offset_representable_p): Check for and disallow cases
where the modes use different numbers of bits from registers.
* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
constant for soft-float.
(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
containing doubles.
(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
in E500 double case.
* config/rs6000/rs6000.md (movtf): Allow soft-float.
(movtf_softfloat): New.
Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
From-SVN: r119395
|
|
* config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
* config/bfin/bfin.c (bfin_dsp_memref_p): New function.
(bfin_valid_reg_p): Test for pseudos explicitly and use only
REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
callers changed.
* config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
(IREG_P, P_REGNO_P, I_REGNO_P): New macros.
(enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
(BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
macros.
(IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
(REGNO_REG_CLASS): ARGP is in PREGS.
* config/bfin/bfin.md (movhi_insn): Allow for addresses containing
IREGS.
(zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
to deal with those addresses.
* addresses.h: New file.
* caller-save.c: Include "addresses.h".
(init_caller_save): Use new base_reg_class function.
* rtl-factoring.c: Include "addresses.h".
(recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
* recog.c: Include "addresses.h".
(preprocess_constraints): Use new base_reg_class function.
* regrename.c: Include "addresses.h".
(scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
functions. Keep track of a new var INDEX_CODE to compute valid
classes.
(replace_oldest_value_addr): Likewise.
(replace_oldest_value_mem): Use base_reg_class.
* reload.c: Include "addresses.h".
(REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
(find_reloads): Use new base_reg_class function.
(find_reloads_address): Likewise; also use regno_ok_for_base_p.
(find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
all callers and prototype changed.
* reload1.c: Include "addresses.h".
(maybe_fix_stack_asms): Use base_reg_class.
* regclass.c: Include "addresses.h".
(ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
(init_reg_autoinc): Use new base_reg_class function.
(record_reg_classes): Likewise.
(record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
OUTER_CODE and INDEX_CODE. All callers and prototype changed.
Use new args to compute necessary class.
* Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
regrename.o, rtl-factoring.o): Update dependencies.
* doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
(REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
REG_OK_FOR_INDEX_P): Delete documentation.
From-SVN: r112248
|
|
(define_memory_constraint, define_address_constraint): New MD forms.
* gensupport.c (process_rtx): Put define_constraint etc on the
predicate queue.
* genpreds.c (process_define_predicate): Adjust comment. Validate
the name, and call validate_exp to validate the expression.
(mark_mode_tests, write_extract_subexp): Can assume correct input.
(write_predicate_expr): Likewise. NAME argument no longer necessary;
all callers changed.
(validate_exp, needs_variable, struct constraint_data)
(constraints_by_letter_table, first_constraint, last_constraint_ptr)
(FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
(const_dbl_constraints, constraint_max_namelen)
(have_register_constraints, have_memory_constraints)
(have_address_constraints, have_address_constraints)
(have_extra_constraints, have_const_int_constraints)
(have_const_dbl_constraints, mangle, add_constraint)
(process_define_constraint, process_define_register_constraint)
(write_enum_constraint_num, write_lookup_constraint)
(write_insn_constraint_len, write_regclass_for_constraint)
(write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
(write_insn_extra_memory_constraint)
(write_insn_extra_address_constraint)
(write_satisfies_constraint_fns): New.
(write_tm_preds_h): If we have new-style constraint definitions,
prototype the functions generated from them, and define the
old constraint interface (still used by generic code) in terms of
those functions.
(write_insn_preds_c): If we have new-style constraint definitions,
generate all relevant functions from those definitions.
(main): Handle define_constraint etc.
* genoutput.c (struct constraint_data, indep_constraints)
(mdep_constraint_letters, constraints_by_letter_table, note_constraint)
(mdep_constraint_len): New data structures and functions, defined
#ifdef USE_MD_CONSTRAINTS.
(check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
(validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
use new logic to validate operand constraints against constraint
definitions.
(main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
defined.
* defaults.h: If none of the old-style constraint macros are
defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
old-style macros; and poison REG_CLASS_FROM_LETTER,
CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
EXTRA_CONSTRAINT.
* recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
* doc/md.texi: Document new constraint-definition mechanism and the
C interface it provides. Remove references to old mechanism
elsewhere in the document.
(Machine Constraints): Use pathnames relative to gcc directory,
i.e. config/ARCH/FILE. Change i386 section to refer to
config/i386/predicates.md; update that section to match docstrings.
* doc/tm.texi: Move all documentation of the old constraint-
definition macros to their own section, clearly mark as obsolete.
* config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
(u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
definitions.
* config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
* config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
constraint strings.
(splits and peepholes): Use satisfies_constraint_*.
* config/i386/i386.c (memory_address_length)
(ix86_attr_length_immediate_default): Use satisfies_constraint_*.
From-SVN: r111508
|
|
* defaults.h (CFA_FRAME_BASE_OFFSET): Define.
* config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
* doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
* dwarf2out.c (build_cfa_loc): New offset parameter. Add it
to the result of the expression.
(def_cfa_1): Adjust.
(frame_pointer_cfa_offset): Rename to...
(frame_pointer_fb_offset): ... this. Adjust all uses.
(convert_cfa_to_loc_list): Rename to...
(convert_cfa_to_fb_loc_list): ... this. New offset parameter.
Pass it on to build_cfa_loc.
(compute_frame_pointer_to_cfa_displacement): Rename to...
(compute_frame_pointer_to_fb_displacement): ... this. New
offset parameter. Use it in computation.
(gen_subprogram_die): Compute cfa_fb_offset with the new
macro, and use it to compute the fb loc list and the
displacement.
From-SVN: r111341
|
|
* varasm.c (assemble_variable): Handle thread-local COMMON data.
* defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r109282
|
|
2005-12-16 Jon Grimm <jgrimm2@us.ibm.com>
Janis Johnson <janis187@us.ibm.com>
Ben Elliston <bje@au.ibm.com>
* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
* target.h (struct gcc_target): Add decimal_float_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle
MODE_DECIMAL_FLOAT.
* builtins.def: Add new builtins for 32, 64 and 128 bit variants
of inf, nan, finite, isinf and isnan.
* builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
* c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
Pedwarn if decimal floating point types are used. Error if
decimal floating point is not supported by the target.
(finish_declspecs): Return type from DFP typespec_word.
* c-typeck.c (c_common_type): Choose the decimal floating point
type with the greater precision when determining a common type.
(convert_arguments): Warn if there is a mismatch between argument
and prototype for decimal float types. Warn of conversions with
binary float types and of precision narrowing due to prototype.
* c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
(c_token_starts_typename): Handle RID_DFLOAT32/64/128.
(c_token_starts_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
RID_DFLOAT64, RID_DFLOAT128.
(T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
* c-common.c (c_common_type_for_mode): Handle decimal float modes.
(shorten_compare): Convert DFP/BFP operands to a common type.
(c_common_modes_and_builtins): Register built-in decimal float
types if the target supports them.
(handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
* builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
inf, nan, finite, isinf and isnan builtins.
* c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
(builtin_define_float_constants): Assert non-decimal radix.
(c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
Call builtin_define_decimal_float_constants for each type.
* c-lex.c (interpret_float): Decode decimal float types from CPP_N
flags. Use real_from_string3, which can handle binary or decimal
floats.
* c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
cts_dfloat64, cts_dfloat128.
* tree.c (build_common_tree_nodes_2): Add decimal float types.
* tree.h (enum tree_index): Add new enumeration values
TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
(dfloat32_type_node): New macro.
(dfloat64_type_node, dfloat128_type_node): Likewise.
(dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
(dfloat128_ptr_type_node): Likewise.
* c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
bit decimal floating point types with "df", "dd" and "dl".
* c-format.h (enum format_lengths): Add new enumeration values
FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
* c-format.c (printf_length_specs, scanf_length_specs): Add
entries for H, D, DD.
(print_char_table, scan_char_table): Use new entries.
(asm_fprintf_char_table, gcc_diag_char_table,
gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
length arrays.
* defaults.h (DECIMAL32_TYPE_SIZE): Define.
(DECIMAL64_TYPE_SIZE): Likewise.
(DECIMAL128_TYPE_SIZE): Likewise.
(TARGET_DEC_EVAL_METHOD): Likewise.
* doc/extend.texi (Decimal Float): New node.
(Constructing Calls): Document decimal float built-ins.
* doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
* Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
* ginclude/decfloat.h: New file.
Co-Authored-By: Ben Elliston <bje@au.ibm.com>
Co-Authored-By: Janis Johnson <janis187@us.ibm.com>
From-SVN: r108629
|
|
* config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
* defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
* varasm.c (do_assemble_alias): Adjust call.
(weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
is defined.
* doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
From-SVN: r107156
|
|
crash without a linker error when one forgets to link with -lpthread)
PR other/4372
* tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
(TREE_DEPRECATED): Adjust comment. Check for a DECL.
* c-common.c (handle_weakref_attribute): New.
(c_common_attribute_table): Add weakref.
* configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
in the assembler.
* configure, config.in: Rebuilt.
* defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
* doc/extend.texi: Document weakref attribute.
* varasm.c (ultimate_transparent_alias_target): New
(assemble_name): Use it.
(weak_finish_1): Split out of...
(weak_finish): ... and deal with weakrefs in...
(weakref_targets): ... new list.
(globalize_decl): Clean up weakref_targets.
(do_assemble_alias): Handle weakrefs.
(finish_aliases_1): Do not reject weakrefs to external symbols.
(assemble_alias): Handle weakrefs.
From-SVN: r106703
|
|
* function.c (ARG_POINTER_CFA_OFFSET): Move ...
* defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
(INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
* dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
rearrange for better packing.
(INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
(lookup_cfa_1): Remove inline marker.
(cfa_equal_p): Split out of ...
(def_cfa_1): ... here. Use INVALID_REGNUM.
(build_cfa_loc): Handle !cfa->indirect.
(frame_pointer_cfa_offset): New.
(dbx_reg_number): Assert register elimination performed; do
leaf register remapping.
(reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
(eliminate_reg_to_offset): New.
(based_loc_descr): Remove can_use_fbreg argument. Use fbreg only
for verifiably local stack frame addresses; re-base to CFA.
(mem_loc_descriptor): Remove can_use_fbreg argument.
(concat_loc_descriptor, loc_descriptor): Likewise.
(containing_function_has_frame_base): Remove.
(rtl_for_decl_location): Don't do register elimination or
leaf register remapping here.
(secname_for_decl): Split out from ..
(add_location_or_const_value_attribute): ... here.
(convert_cfa_to_loc_list): New.
(compute_frame_pointer_to_cfa_displacement): New.
(gen_subprogram_die): Use them.
* tree.h (frame_base_decl): Remove.
* var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
(prologue_stack_adjust): Remove.
(vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
(adjust_stack_reference): Re-base memories to arg_pointer_rtx.
(set_frame_base_location): Remove.
(compute_bb_dataflow, emit_notes_in_bb): Don't call it.
(dump_attrs_list, dump_dataflow_set): Use string concatenation.
(vt_add_function_parameters): Don't eliminate_regs.
(vt_initialize): Don't create frame_base_decl.
From-SVN: r103983
|
|
* defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
(ASM_OUTPUT_ADDR_VEC_ELT): Delete.
* config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
"cum->".
From-SVN: r102970
|
|
* defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
* function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
instead of preprocessor conditionals.
(assign_stack_local_1, assign_stack_temp_for_type): Likewise.
* cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
depending on if it was or was not defined previously.
* doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
definition of FRAME_GROWS_DOWNWARD means frame grows downward.
* doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
* config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
comment.
* config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
* config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
comment.
* config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
* config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
* config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
From-SVN: r101329
|
|
From-SVN: r101317
|
|
expand_vector_operations_1.
gcc:
2004-04-27 Paolo Bonzini <bonzini@gnu.org>
* tree-complex.c (expand_vector_operation): New, extracted from
expand_vector_operations_1.
(tree_vec_extract): Build a NOP_EXPR.
(expand_vec_parallel): Do not care about returning the correct type.
(expand_vector_operations_1): Call expand_vector_operation.
Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
* tree-complex.c (gate_expand_vector_operations): New.
(pass_lower_vector_ssa): Use it.
* tree-optimize.c (init_tree_optimization_passes): Include
pass_lower_vector_ssa.
* tree-vect-transform.c (vect_min_worthwhile_factor): New.
(vectorizable_operation): Use it.
* tree-vectorizer.c (get_vectype_for_scalar_type): Accept
integer modes for the vector type.
* defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
* tree-vect-analyze.c (vect_enhance_data_refs_alignment):
Do not cope with UNITS_PER_SIMD_WORD == 0.
* tree-vectorizer.c (get_vectype_for_scalar_type): Check
if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
(vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
* config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
* config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
* doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
(UNITS_PER_SIMD_WORD): New.
gcc/testsuite:
2004-04-27 Paolo Bonzini <bonzini@gnu.org>
* gcc.dg/tree-ssa/gen-vect-11.c, gcc.dg/tree-ssa/gen-vect-11a.c,
gcc.dg/tree-ssa/gen-vect-11b.c, gcc.dg/tree-ssa/gen-vect-11c.c,
gcc.dg/tree-ssa/gen-vect-2.c, gcc.dg/tree-ssa/gen-vect-25.c,
gcc.dg/tree-ssa/gen-vect-26.c, gcc.dg/tree-ssa/gen-vect-28.c,
gcc.dg/tree-ssa/gen-vect-32.c: New.
* gcc.dg/vect/vect-82.c, gcc.dg/vect/vect-83.c: Fix dg-final.
* gcc.dg/vect/vect-82_64.c, gcc.dg/vect/vect-83_64.c: Remove xfail,
don't run on PPC32.
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: tree-complex.c tree-optimize.c tree-vect-analyze.c defaults.h
CVS: tree-vect-transform.c tree-vectorizer.c ChangeLog
CVS: testsuite/ChangeLog config/alpha/alpha.h config/bfin/bfin.h
CVS: config/i386/i386.h config/ia64/ia64.h config/mips/mips.h
CVS: config/rs6000/rs6000.h
CVS: config/sparc/sparc.h doc/tm.texi
CVS: testsuite/gcc.dg/vect/vect-82.c
CVS: testsuite/gcc.dg/vect/vect-82_64.c
CVS: testsuite/gcc.dg/vect/vect-83.c
CVS: testsuite/gcc.dg/vect/vect-83_64.c
CVS: Added Files:
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-11.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-2.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-25.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-26.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-28.c
CVS: testsuite/gcc.dg/tree-ssa/gen-vect-32.c
CVS: ----------------------------------------------------------------------
From-SVN: r98818
|
|
* ChangeLog.5: Fix log message typo(s).
* ChangeLog.7: Likewise.
* ChangeLog.tree-ssa: Likewise.
* cfgexpand.c: Fix comment typo(s).
* conflict.c: Likewise.
* defaults.h: Likewise.
* dwarf2out.c: Likewise.
* gcse.c: Likewise.
* ggc-page.c: Likewise.
* tree-eh.c: Likewise.
* tree-ssa-dom.c: Likewise.
From-SVN: r95516
|
|
sets)
PR 18785
libcpp:
* charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
(cpp_host_to_exec_charset): New function.
* include/cpplib.h: Declare cpp_host_to_exec_charset.
gcc:
* langhooks.h (struct lang_hooks): Add to_target_charset.
* langhooks.c (lhd_to_target_charset): New function.
* langhooks-def.h: Declare lhd_to_target_charset.
(LANG_HOOKS_TO_TARGET_CHARSET): New macro.
(LANG_HOOKS_INITIALIZER): Update.
* c-common.c (c_common_to_target_charset): New function.
* c-common.h: Declare it.
* c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
c_common_to_target_charset.
* defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
(TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
Delete definitions.
* system.h: Poison them.
* doc/tm.texi: Don't discuss them.
* builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
* c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
(pp_c_char): Do not attempt to generate letter escapes for
newline, tab, etc.
* config/arm/arm.c (output_ascii_pseudo_op): Likewise.
* config/mips/mips.c (mips_output_ascii): Likewise.
gcc/cp:
* cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
c_common_to_target_charset. Delete bogus comment.
gcc/testsuite:
* gcc.dg/charset/builtin1.c: New test.
From-SVN: r95304
|
|
* basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
combine.c, config.gcc, coverage.h, cse.c, cselib.c,
defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
output.h, postreload-gcse.c, postreload.c, recog.c,
resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
From-SVN: r93827
|
|
in libstdc++)
PR target/16304
* defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
* toplev.c (compile_file): Call process_pending_assemble_output_defs
just before targetm.asm_out.file_end.
* tree.h (process_pending_assemble_output_defs): Declare.
* varasm.c (assemble_output_def, process_pending_assemble_output_defs):
New functions.
(assemble_alias): Defer generation of assembly code for defines when
TARGET_DEFERRED_OUTPUT_DEFS is true.
* config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
* config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
* doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
From-SVN: r93726
|
|
* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro.
* output.h (assemble_name_raw): Declare it.
* system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it.
* varasm.c (assemble_name_raw): New function.
(assemble_name): Use it.
(default_internal_label): Likewise.
* config/darwin.c (darwin_asm_output_dwarf_delta): Likewise.
* doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document.
From-SVN: r92401
|
|
* defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
typos.
From-SVN: r92092
|
|
gcc
PR/18549
* defaults.h (TARGET_USE_JCR_SECTION): New macro.
* doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
* config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
default.
gcc/java
PR/18549
* class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
Update comment.
From-SVN: r92078
|
|
2004-11-24 Mark Mitchell <mark@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* crtstuff.c (IN_LIBGCC2): Define it.
(EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
instead of HAVE_LD_RO_RW_SECTION_MIXING.
* defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
* dwarf2out.c (named_section_eh_frame_section): Check
EH_TABLES_CAN_BE_READ_ONLY.
* except.c (default_exception_section): Likewise.
* config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
* doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r91160
|
|
* defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
* system.h: Poison it.
* doc/tm.texi: Delete its documentation.
From-SVN: r90840
|
|
* dbxout.c: Include obstack.h.
(ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
default definition.
(ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
Default-define here.
(DBX_CONTIN_LENGTH): Move definition with others.
(DBX_FINISH_STABS): New target macro.
(current_sym_code, current_sym_value, current_sym_addr)
(current_sym_nchars, CHARS, dbxout_continue)
(print_int_cst_octal, print_octal, print_wide_int)
(dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
(stabstr_ob, stabstr_last_contin_point): New variables.
(NUMBER_FMT_LOOP): New improper macro.
(dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
(dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
(dbxout_stab_value_internal_label_diff, dbxout_stabd)
(dbxout_begin_stabn, dbxout_begin_stabn_sline)
(dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
(dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
(stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
(stabstr_continue, DECL_ACCESSIBILITY_CHAR)
New functions and/or proper function-like macros.
(CONTIN): Use stabstr_continue, unconditionally.
(get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
(dbxout_init): Initialize stabstr_ob. Check
NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label
if it was used. Use the new interfaces.
(dbxout_source_file): Remove file argument; always write to
asm_out_file. Use the new interfaces.
(dbxout_type_method_1): Remove second argument which is always
DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces.
(dbxout_type_methods): Remove write-only variables. Use the
new interfaces.
(dbxout_parms): Refactor to remove code duplicated in each of
several successive if-else-if blocks. Use the new interfaces.
(dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
(dbxout_source_line, dbxout_finish, dbxout_type_index)
(dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
(dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
(dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
(dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
Use the new interfaces.
* Makefile.in (dbxout.o): Update dependencies.
* defaults.h: Don't define ASM_STABD_OP.
* output.h: Prototype new dbxout_* interfaces.
* system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
* varasm.c: Don't define ASM_STABS_OP.
(default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
Use the new dbxout.c interfaces. Call sorry if neither
DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
* xcoffout.h: Don't define ASM_STABS_OP.
(DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
(DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
(NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
(DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
do { ... } while (0) idiom.
* config/alpha/alpha.c (num_source_filenames): Export.
* config/alpha/alpha.h (num_source_filenames): Declare.
(DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
* config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
Always use .debugsym. Update commentary.
* config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
(SDB_OUTPUT_SOURCE_LINE): Add missing newline.
* config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
Use new interfaces.
* config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
(macho_branch_islands): Use new interfaces.
* doc/tm.texi: Update.
From-SVN: r89623
|
|
(MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
(REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
* regclass.c (record_address_regs): Remove ifdef. Use
REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
* regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
definition.
(scan_rtx_address, replace_oldest_value_addr): Use
REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
* reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
unnecessary definitions.
(find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
and MODE_BASE_REG_REG_CLASS.
* config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
(MODE_BASE_REG_REG_CLASS): Define.
(REGNO_MODE_OK_FOR_REG_BASE_P): Define.
(REG_MODE_OK_FOR_REG_BASE_P): Define.
* doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
From-SVN: r88948
|
|
* defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
* dwarf2out.c (dwarf2out_init): Remove references to
DWARF2_GENERATE_TEXT_SECTION_LABEL.
* system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
* doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
From-SVN: r88631
|
|
* c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
From-SVN: r88102
|
|
* c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
value-prof.c: Fix comment typos. Follow spelling conventions.
From-SVN: r87288
|
|
* defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
* config/arm/pecoff.h, config/i386/beos-elf.h
* config/i386/cygming.h, config/i386/i386-interix.h:
Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove
comment cloned from manual.
* doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
cp:
* decl2.c (import_export_class)
* lex.c (handle_pragma_interface):
Test MULTIPLE_SYMBOL_SPACES with if, not #ifdef.
From-SVN: r87243
|
|
* c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
vec.h: Fix comment formatting.
From-SVN: r87105
|
|
* c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
tree-ssa-loop-niter.c, tree-ssa-operands.c,
tree-ssa-operands.h, tree-ssa-propagate.c,
tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
vec.c, vec.h: Fix comment typos. Follow spelling conventions.
From-SVN: r87104
|
|
PR c/7054
* defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
* tree.h (initial_max_fld_align): Declare
* stor-layout.c (initial_max_fld_align): Define and initialize.
(maximum_field_alignment): Initialize to the same value.
* common.opt: Add -fpack-struct= variant of switch.
* opts.c: Handle -fpack-struct= variant of switch.
* c-pragma.c: Change #pragma pack() handling so that it becomes
compatible to other compilers: accept individual 'push' argument,
make final pop restore (command line) default, correct interaction
of push/pop and sole specification of a new alignment (so that the
sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
to #pragma pack(push, <n>).
* doc/extend.texi: New node "Structure-Packing Pragmas" under
"Pragmas", describing #pragma pack.
* doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
* doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
Document new TARGET_DEFAULT_PACK_STRUCT.
testsuite:
* gcc.dg/pack-test-2.c: Adjust to permit and check #pragma pack(push).
* gcc.dg/c99-flex-array-4.c: Add -fpack-struct=8 to provide a
deterministic starting point for the alignment of structure fields.
* gcc.dg/Wpadded.c: Dito.
* g++.dg/abi/vbase10.C: Dito.
From-SVN: r87037
|
|
* flags.h (enum debug_info_type): Remove DWARF_DEBUG.
* defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
DWARF_DEBUGGING_INFO from choice-of-definition chain;
restructure using C89 features (#elif, #error).
* c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
* config/sh/sh.h: Remove references to DWARF_DEBUG.
* doc/invoke.texi: Remove references to DWARF version 1;
clarify why -gdwarf-2<n> doesn't work.
cp:
* class.c, search.c: Remove references to DWARF_DEBUG.
From-SVN: r86540
|
|
2004-08-23 Eric Christopher <echristo@redhat.com>
* defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
* system.h (VECTOR_MODE_SUPPORTED_P): Poison.
* target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
* target.h: Ditto.
* hooks.h: Include machmode.h.
(hook_bool_mode_false): Declare.
* hooks.c (hook_bool_mode_false): Define.
* expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
* stor-layout.c (layout_type): Ditto.
* config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
Define to target macro.
* config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
* config/arm/arm.c: Ditto. Use.
* config/arm/arm.h: Ditto.
* config/arm/arm-protos.h: Ditto.
* config/i386/i386.c: Ditto.
* config/i386/i386.h: Ditto.
* config/rs6000/rs6000.c: Ditto.
* config/rs6000/rs6000.h: Ditto.
* config/sh/sh.c: Ditto.
* config/sh/sh.h: Ditto.
* config/sh/sh-protos.h: Ditto.
* config/sh/sh.md: Use.
* doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
to TARGET_VECTOR_MODE_SUPPORTED_P.
2004-08-23 Eric Christopher <echristo@redhat.com>
* trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
usage. Use build_vector_type_for_mode for vector types.
From-SVN: r86453
|
|
* defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
* optabs.c (init_optabs): Don't check it.
* config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
* doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
From-SVN: r86285
|
|
Hot/cold partitioning update patch. The problems that this patch
attemptd to address/fix are:
- Fix places where adding in_unlikely_executed_text to the enum data
type "in_section" threw off switch case statements.
- Make it work correctly (by turning it off) for functions where user
specifies "__attribute__ section"
- Make it work correctly (by turning it off) for linkonce sections
- Make it work correctly with -ffunction-sections flag
- Make it output correct cold section labels
- Undo some changes to original assembly code generation
- Turn off hot/cold partitioning in the presence of DWARF debugging (for
the moment)
- Turn off hot/cold partitioning for architectures that do not support
named sections
- Use variables rather than constants for cold section labels and names (to
work correctly with -ffunction-sections, among other things)
2004-08-18 Caroline Tice <ctice@apple.com>
* Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
"-freorder-blocks-and-partition" to the flags used in second
stage of profiledbootstrap.
* bb-reorder.c (push_to_next_round_p): Add new variable,
next_round_is_last; set and use variable to make sure, when
partitioning, that the last trace construction round consists
of all (and only) cold basic blocks.
(rotate_loop): Don't copy blocks that end in a section
crossing jump.
(copy_bb): Correctly initialize "partition" of duplicated bb.
(add_unlikely_executed_notes): Add a comment.
(find_rarely_executed_basic_blocks_and_crossing_edges): Modify
to make sure, if function contains hot blocks, that the
successors of ENTRY_BLOCK_PTR are hot; also, only look for
crossing edges if the architecture supports named sections.
(mark_bb_for_unlikely_executed_section): Modify to always
insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
the basic block note insn.
(fix_crossing_unconditional_branches): Remove extra space.
(fix_edges_for_rarely_executed_code): Modify to only do
partitioning work if the architecture supports named sections.
(reorder_basic_blocks): Modify to only add
NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
supports named sections.
* c-common.c (handle_section_attribute): Initialize new global
variable, user_defined_section_attribute, to true if user has
specified one.
* cfgcleanup.c (try_forward_edges): Modify to not attempt to
forward edges that cross section boundaries.
* cfglayout.c (fixup_reorder_chain): Modify to only fix up
partitioning information if the architecture supports named
sections.
* cfgrtl.c (target.h): Add statement to include this.
(rtl_split_block): Make sure newly created bb gets correct
partition.
(try_redirect_by_replacing_jump): Make sure redirection isn't
attempting to cross section boundaries.
(force_nonfallthru_and_redirect): Only do partition fix up if
architecture supports named sections.
(rtl_split_edge): Make sure newly created bb ends up in
correct partition.
(commit_one_edge_insertion): Remove code that incorrectly
updated basic block partition; Make sure partition fix up only
happens if architecture supports named sections and it's not
already done.
(rtl_verify_flow_info_1): Fix if-condition on test/error
condition that fallthru edges are not allowed to cross section
boundaries.
* defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
* final.c (final_scan_insn): Remove redundant test from if-statement;
change calls to text_section into calls to function_section; add code
to only to partitioning fix up if architecture supports named
sections.
* ifcvt.c (find_if_case_1): Make sure newly created bb has correct
partition.
(if_convert): Add targetm.have_named_sections to test.
* output.h (unlikely_section_label): Extern declaration for new global
variable.
(unlikely_text_section_name): Likewise.
* opts.c (decode_options): If both partitioning and DWARF debugging
are turned on, issue a warning that this doesn't work, and change
partitiong to basic block reordering (without hot/cold partitions).
* passes.c (rest_of_handle_final): Re-set new global variable,
user_defined_section_attribute, to false.
(rest_of_compilation): Change options for calling partitioning
function: Don't call if the user defined the section attribute, and
don't call if DECL_ONE_ONLY is true for the current function.
* predict.c (choose_function_section): Return immediately if we
are doing hot/cold partitioning (i.e. let the basic block partitioning
determine where the function belongs).
* reg-stack.c (emit_swap_insn): Add condition to step over
NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
* toplev.c (user_defined_section_attribute): New global variable.
* toplev.h (user_defined_section_attribute): Extern declaration for new
global variable.
* varasm.c (unlikely_section_label): New global variable.
(unlikely_text_section_name): New global variable.
(unlikely_text_section): Add code to initialize unlikely_text_section_name
if necessary; modify to use unlikely_text_section_name and
unlikely_section_label; also to use named_section properly.
(in_unlikely_text_section): Modify to work correctly with named_section
and to use unlikely_text_section_name.
(named_section): Add code to work properly with cold section.
(function_section): Clean up if-statement.
* config/darwin.c (darwin_asm_named_section): Return to original code,
removing use of SECTION_FORMAT_STRING.
* config/arm/pe.h (switch_to_section): Add case for
in_unlikely_executed_text to switch statement.
* config/i386/cygming.h (switch_to_section): Likewise.
* config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
(SECTION_FORMAT_STRING): Likewise.
* config/mcore/mcore.h (switch_to_section): Likewise.
* config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
From-SVN: r86189
|
|
* varasm.c (MAX_OFILE_ALIGNMENT): Move ...
* defaults.h (MAX_OFILE_ALIGNMENT): ... here.
From-SVN: r86168
|
|
* tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees.
* tree-vectorizer.h: New File: Same.
* Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
* common.opt (ftree-vectorize): New flag to enable vectorization.
* timevar.def (TV_TREE_VECTORIZATION): New dump file for vectorization
pass.
* tree-data-ref.h (init_data_ref): Additional argument.
(array_base_name_differ_p): Moved to tree-data-ref.c.
* tree-data-ref.c (array_base_name_differ_p): Revised.
(initialize_data_dependence_relation): Call array_base_name_differ_p
with an extra argument.
(analyze_all_data_dependences): Same.
(init_data_ref): Additional argument is_read to set DR_IS_READ.
* tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this file.
* tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
* tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
* tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
vectorization pass.
* tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
(tree_ssa_loop_done): Call scev_finalize.
(tree_vectorize): Define the new vectorization pass.
* defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the size of
the vector they support (until support for multiple vector sizes is
added to the vectorizer).
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
* invoke.texi (fdump-tree-vect, ftree-vectorize): Add
documentation.
From-SVN: r86131
|
|
* configure.in (arm*-*-eabi*): New target.
* configure: Regenerate.
* configure.ac (arm*-*-eabi*): New target.
(arm*-*-symbianelf*): Likewise.
* configure: Regenerated.
* config.gcc (arm*-*-eabi*): New target.
* defaults.h (TARGET_LIBGCC_FUNCS): New macro.
(TARGET_LIB_INT_CMP_BIASED): Likewise.
* expmed.c (expand_divmod): Try a two-valued divmod function as a
last resort.
* gthr.h: Remove bogus tokens at end of #pragma.
* optabs.c (expand_twoval_binop_libfunc): New function.
(prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
(prepare_float_lib_cmp): Try reversing the condition.
(debug_optab_libfuncs): New function.
* optabs.h (expand_twoval_binop_libfunc): Declare.
* config/arm/arm.c (arm_init_libfuncs): New function.
(arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
(TARGET_INIT_LIBFUNCS): Define it.
* config/arm/arm.h (TARGET_BPABI): New macro.
* config/arm/arm-protos.h
(arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
* config/arm/bpabi.S: New file.
* config/arm/bpabi.c: Likewise.
* config/arm/bpabi.h: Likewise.
* config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
(__aeabi_drsub): Likewise.
(__aeabi_dsub): Likewise.
(__aeabi_dadd): Likewise.
(__aeabi_ui2d): Likewise.
(__aeabi_i2d): Likewise.
(__aeabi_f2d): Likewise.
(__aeabi_dmul): Likewise.
(__aeabi_ddiv): Likewise.
(__aeabi_cdrcmple): Likewise.
(__aeabi_cdcmpeq): Likewise.
(__aeabi_cdcmple): Likewise.
(__aeabi_dcmpeq): Likewise.
(__aeabi_dcmplt): Likewise.
(__aeabi_dcmple): Likewise.
(__aeabi_dcmpge): Likewise.
(__aeabi_dcmpgt): Likewise.
(__aeabi_dcmpun): Likewise.
(__aeabi_d2iz): Likewise.
(__aeabi_d2uiz): Likewise.
(__aeabi_d2f): Likewise.
* config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
(__aeabi_frsub): Likewise.
(__aeabi_fsub): Likewise.
(__aeabi_fadd): Likewise.
(__aeabi_ui2f): Likewise.
(__aeabi_i2f): Likewise.
(__aeabi_fmul): Likewise.
(__aeabi_fdiv): Likewise.
(__aeabi_cfrcmple): Likewise.
(__aeabi_cfcmpeq): Likewise.
(__aeabi_cfcmple): Likewise.
(__aeabi_fcmpeq): Likewise.
(__aeabi_fcmplt): Likewise.
(__aeabi_fcmple): Likewise.
(__aeabi_fcmpge): Likewise.
(__aeabi_fcmpgt): Likewise.
(__aeabi_fcmpun): Likewise.
(__aeabi_f2iz): Likewise.
(__aeabi_f2uiz): Likewise.
* config/arm/lib1funcs.asm (ARM_CALL): New macro.
(__aeabi_uidivmod): New function or alias.
(__aeabi_idivmod): Likewise.
(__aeabi_idiv0): Likewise.
(__aeabi_ldiv0): Likewise.
(__aeabi_llsr): Likewise.
(__aeabi_lasr): Likewise.
(__aeabi_llsl): Likewise.
(bpabi.S): Include it.
* config/arm/libgcc-bpabi.ver: New file.
* config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
(LINK_SPEC): Remove.
* config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
__aeabi_ulcmp.
* config/arm/t-bpabi: New file.
* doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
(TARGET_LIB_INT_CMP_BIASED): Likewise.
* gcc.dg/testsuite/gcc.dg/arm-eabi1.c: New test.
* gcc.dg/dll-2.c: Fix dg-require syntax.
* gcc.misc-tests/arm-isr.c (abort): Declare.
(exit): Likewise.
From-SVN: r85788
|