Zdenek Dvorak
702f9d782f
tree-dump.c (dump_switch_p_1): Require exact match of the option name.
...
* tree-dump.c (dump_switch_p_1): Require exact match of the option
name.
* gcc.dg/tree-prof/update-tailcall.c: Use -fdump-tree-tailc
instead of -fdump-tree-tailcall.
From-SVN: r121967
2007-02-14 22:06:11 +00:00
Zdenek Dvorak
3d88299026
passes.c (next_pass_1): Clear the next field of the copied pass structure.
...
* passes.c (next_pass_1): Clear the next field of the copied
pass structure.
From-SVN: r121966
2007-02-14 21:54:44 +00:00
Richard Henderson
029f45bdc1
tree-sra.c (early_sra): New.
...
* tree-sra.c (early_sra): New.
(decl_can_be_decomposed_p): Deny va_list if early_sra.
(tree_sra_early, pass_sra_early): New.
* tree-pass.h (pass_sra_early): Declare.
* passes.c (init_optimization_passes): Use it.
From-SVN: r121953
2007-02-14 09:52:25 -08:00
Richard Biener
c4e74b1aaa
flags.h (issue_strict_overflow_warning): Convert to a macro.
...
2007-02-14 Richard Guenther <rguenther@suse.de>
* flags.h (issue_strict_overflow_warning): Convert to a macro.
From-SVN: r121951
2007-02-14 16:45:23 +00:00
Dorit Nuzman
932eea3d18
re PR tree-optimization/30771 (ice for legal code with -O2 -ftree-vectorize)
...
PR tree-optimization/30771
* tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
also phi nodes.
(vect_analyze_operations): Induction phis can now be marked as
used_in_loop.
(vect_mark_stmts_to_be_vectorized): No special treatment for phis.
Update documentation accordingly.
From-SVN: r121950
2007-02-14 14:10:57 +00:00
Nick Clifton
8225879cc7
builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at most 3 arguments are supported.
...
* builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at most 3 arguments are supported.
(DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
From-SVN: r121946
2007-02-14 08:27:01 +00:00
Seongbae Park
5ce02e408d
bitmap.c (bitmap_and, [...]): Ensure dst->current is valid.
...
2007-02-13 Seongbae Park <seongbae.park@gmail.com>
* bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
Ensure dst->current is valid.
From-SVN: r121903
2007-02-14 05:01:14 +00:00
Paul Brook
c147eacb9d
config.gcc: Add arm*-*-uclinux-*eabi.
...
2007-02-13 Paul Brook <paul@codesourcery.com>
gcc/
* config.gcc: Add arm*-*-uclinux-*eabi.
* config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
(SUBTARGET_EXTRA_LINK_SPEC): Define.
(STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
(LINK_GCC_C_SEQUENCE_SPEC): Undef.
(LINK_SPEC): Define.
(LIB_SPEC): Define.
* config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
register.
* config/arm/uclinux-eabi.h: New file.
* config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
* config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
based targets.
From-SVN: r121902
2007-02-14 00:29:52 +00:00
Ian Lance Taylor
6ac015100f
common.opt: Add Wstrict-overflow and Wstrict-overflow=.
...
./: * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
* flags.h (warn_strict_overflow): Declare.
(enum warn_strict_overflow_code): Define.
(issue_strict_overflow_warning): New static inline function.
* opts.c (warn_strict_overflow): New variable.
(common_handle_option): Handle OPT_Wstrict_overflow and
OPT_Wstrict_overflow_.
* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
OPT_Wall.
* fold-const.c: Include intl.h.
(fold_deferring_overflow_warnings): New static variable.
(fold_deferred_overflow_warning): New static variable.
(fold_deferred_overflow_code): New static variable.
(fold_defer_overflow_warnings): New function.
(fold_undefer_overflow_warnings): New function.
(fold_undefer_and_ignore_overflow_warnings): New function.
(fold_deferring_overflow_warnings_p): New function.
(fold_overflow_warning): New static function.
(make_range): Add strict_overflow_p parameter. Change all
callers.
(extract_muldiv, extract_muldiv_1): Likewise.
(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
tree_expr_nonnegative_p.
(fold_negate_expr): Call fold_overflow_warning.
(fold_range_test): Likewise.
(fold_comparison): Likewise.
(fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
instead of tree_expr_nonnegative_p.
(tree_expr_nonnegative_warnv_p): Rename from
tree_expr_nonnegative_p, add strict_overflow_p parameter.
(tree_expr_nonnegative_p): New function.
(tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
strict_overflow_p parameter.
(tree_expr_nonzero_p): New function.
* passes.c (verify_interpass_invariants): New static function.
(execute_one_pass): Call it.
* tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
warnings.
(number_of_iterations_exit, loop_niter_by_eval): Likewise.
(estimate_numbers_of_iterations): Likewise.
(scev_probably_wraps_p): Likewise.
* tree-ssa-ccp.c: Include "toplev.h".
(evaluate_stmt): Defer fold overflow warnings until we know we are
going to optimize.
(struct fold_stmt_r_data): Add stmt field.
(fold_stmt_r): Defer fold overflow warnings until we know we
optimized.
(fold_stmt): Initialize stmt field of fold_stmt_r_data.
(fold_stmt_inplace): Likewise.
* tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
(cleanup_control_expr_graph): Defer fold overflow warnings until
we know we are going to optimize.
* tree-cfg.c (fold_cond_expr_cond): Likewise.
* tree-ssa-threadedge.c (simplify_control_stmt_condition):
Likewise.
* tree-vrp.c (vrp_expr_computes_nonnegative): Call
tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
* tree-ssa-loop-manip.c (create_iv): Likewise.
* c-typeck.c (build_conditional_expr): Likewise.
(build_binary_op): Likewise.
* tree-vrp.c (vrp_expr_computes_nonzero): Call
tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
(extract_range_from_unary_expr): Likewise.
* simplify-rtx.c (simplify_const_relational_operation): Warn when
assuming that signed overflow does not occur.
* c-common.c (pointer_int_sum): Ignore fold overflow warnings.
* tree.h (tree_expr_nonnegative_warnv_p): Declare.
(fold_defer_overflow_warnings): Declare.
(fold_undefer_overflow_warnings): Declare.
(fold_undefer_and_ignore_overflow_warnings): Declare.
(fold_deferring_overflow_warnings_p): Declare.
(tree_expr_nonzero_warnv_p): Declare.
* doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
of warning options.
(Warning Options): Document -Wstrict-overflow.
* Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
(tree-ssa-ccp.o): Likewise.
(tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
(fold-const.o): Depend on intl.h.
testsuite/:
* gcc.dg/Wstrict-overflow-1.c: New test.
* gcc.dg/Wstrict-overflow-2.c: New test.
* gcc.dg/Wstrict-overflow-3.c: New test.
* gcc.dg/Wstrict-overflow-4.c: New test.
* gcc.dg/Wstrict-overflow-5.c: New test.
* gcc.dg/Wstrict-overflow-6.c: New test.
* gcc.dg/Wstrict-overflow-7.c: New test.
* gcc.dg/Wstrict-overflow-8.c: New test.
* gcc.dg/Wstrict-overflow-9.c: New test.
* gcc.dg/Wstrict-overflow-10.c: New test.
From-SVN: r121895
2007-02-13 22:34:45 +00:00
Ian Lance Taylor
30d18db484
re PR middle-end/30751 (internal compiler error: in extract_insn, at recog.c:2108)
...
PR middle-end/30751
* lower-subreg.c (resolve_simple_move): Decompose subregs in
addresses.
From-SVN: r121894
2007-02-13 22:18:26 +00:00
Stuart Hastings
ce9c43a1bf
* gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
...
From-SVN: r121891
2007-02-13 19:02:57 +00:00
Richard Henderson
138ae41e4d
alpha.c (alpha_stdarg_optimize_hook): Strip handled_component_p before looking for the indirect_ref.
...
* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
handled_component_p before looking for the indirect_ref.
From-SVN: r121886
2007-02-13 09:29:35 -08:00
Richard Henderson
2e6834d33e
i386.md (bswapsi_1): Rename from bswapsi2, remove flags clobber.
...
* config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
remove flags clobber.
(bswapsi2): New expander, emit code for !TARGET_BSWAP.
(bswaphi_lowpart): New.
(bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
remove TARGET_BSWAP test. Delete expander of the same name.
* optabs.c (widen_bswap, expand_doubleword_bswap): New.
(expand_unop): Use them.
From-SVN: r121884
2007-02-13 08:42:12 -08:00
Uros Bizjak
a23132e116
* config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
...
*cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
*movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
*ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
*ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
*ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
*ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
assembler dialect choice from asm templates.
From-SVN: r121883
2007-02-13 15:03:03 +01:00
Richard Henderson
174c12c748
i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
...
* config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
(fixuns_trunc<SSEMODEF>si2): Use it.
* config/i386/sse.md (vec_setv4sf_0): Export.
* config/i386/i386.c (ix86_build_const_vector): Export.
(ix86_split_convert_uns_si_sse): Rename from
ix86_expand_convert_uns_si_sse and rewrite as a splitter.
* config/i386/i386-protos.h: Update.
From-SVN: r121877
2007-02-12 17:20:02 -08:00
Manuel López-Ibáñez
2397c5750e
re PR c/29521 (Confusing warning for return with expression in function returning void)
...
2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c/29521
* c-typeck.c (c_finish_return): Improve warning message.
testsuite/
* gcc.dg/c90-return-1.c: Update output.
* gcc.dg/c99-return-1.c: Likewise.
From-SVN: r121876
2007-02-13 00:29:17 +00:00
Manuel López-Ibáñez
14a32e14b1
alias.c (find_symbolic_term): Delete unused function.
...
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* alias.c (find_symbolic_term): Delete unused function.
From-SVN: r121869
2007-02-13 00:13:29 +00:00
Uros Bizjak
0f7b6776a3
i386.md (paritydi2, paritysi2): New expanders.
...
* config/i386/i386.md (paritydi2, paritysi2): New expanders.
(paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
(*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
testsuite/ChangeLog:
* gcc.target/i386/parity-1.c: New test.
* gcc.target/i386/parity-2.c: New test.
From-SVN: r121863
2007-02-12 22:08:25 +01:00
Eric Botcazou
6170a99877
tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
...
* tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
* cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
the function, temporarily point the debug interface to the null one.
From-SVN: r121861
2007-02-12 21:01:33 +00:00
Eric Botcazou
d996473d67
dwarf2out.c (round_up_to_align): New static function.
...
* dwarf2out.c (round_up_to_align): New static function.
(field_byte_offset): Use it to round the offset.
From-SVN: r121859
2007-02-12 20:52:37 +00:00
Richard Henderson
fffef1dc7a
alpha.md (bswapsi2, bswapdi2): New.
...
* config/alpha/alpha.md (bswapsi2, bswapdi2): New.
(inswl_const): Export.
From-SVN: r121853
2007-02-12 10:53:22 -08:00
Richard Henderson
7ab0aca2fe
calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the result mode of the libcall, convert back to outmode.
...
* calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
result mode of the libcall, convert back to outmode.
From-SVN: r121852
2007-02-12 10:46:16 -08:00
Roger Sayle
d8d25baea6
i386.md (*bswapdi2_rex): Renamed from bswapdi2.
...
* config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
(bswapdi2): New define_expand to implement 32-bit implementation.
* gcc.target/i386/builtin-bswap-3.c: New test case.
From-SVN: r121851
2007-02-12 18:41:08 +00:00
Nick Clifton
c662432e8c
invoke.texi (Overall Options): Document --help=.
...
* doc/invoke.texi (Overall Options): Document --help=.
* gcc.c (target_help_flag): Rename to print_subprocess_flag.
(cc1_options): Pass --help= on to cc1.
(display_help): Add description of --help=.
(process_command): Add code to handle --help=. Allow translated
--help and --target-help switches to be passed on to compiler sub-process.
(main): Remove unused if statement.
* opts.c (columns): Remove.
(LEFT_COLUMN): Define.
(wrap_help): Add columns argument.
(print_filtered_help): Change parameters to be an include bitmask,
an exclude bitmask, an any bitmask and the column width. Move the
code to display the params list here. Add code to display the
status of options rather than their descriptions if the quiet flag
is not active.
(print_specific_help): Change parameters to be an include bitmask,
an exclude bitmask and an any bitmask. Move code to look up the
column width here. Decide upon the title for an options listing.
(common_handle_options): Add code to handle --help=. Adapt code
for --help and --target-help to use the revised form of the
print_specific_help function.
(print_help): Delete.
(print_param_help): Delete.
(print_switch): Delete.
* opts.h (cl_lang_count): Add prototype.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS, CL_MAX_OPTION_CLASS): New defines.
* optc-gen.awk: Add construction of cl_lang_count.
* c.opt: Add Warning attribute to warning options and Optimization attribute to optimization options.
* common.opt: Likewise.
Add --help=.
Add -fhelp and -ftarget-help as aliases for the transformed --help and --target-help options.
* opt-functions.awk: Add code to handle Warning and Optimization attributes.
From-SVN: r121849
2007-02-12 16:25:14 +00:00
Richard Henderson
dfcbeaa576
constraints.md: New file.
...
* config/alpha/constraints.md: New file.
* config/alpha/alpha.c: Include tm-constrs.h.
(alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
alpha_extra_constraint): Remove.
(alpha_emit_conditional_branch): Use satisfies_constraint_*.
* config/alpha/alpha-protos.h: Update.
* config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
(EXTRA_CONSTRAINT): Remove.
* config/alpha/alpha.md: Include constraints.md.
(adddi splitter): Use satisfies_constraint_*.
* config/alpha/predicates.md (add_operand): Likewise.
(sext_add_operand, addition_operation): Likewise.
From-SVN: r121847
2007-02-12 08:10:15 -08:00
Dorit Nuzman
9b3ffe5f7a
re PR tree-optimization/29145 (unsafe use of restrict qualifier)
...
PR tree-optimization/29145
* tree-data-ref.c (base_addr_differ_p): Make us more conservative
in our handling of restrict qualified pointers.
From-SVN: r121844
2007-02-12 13:14:52 +00:00
Manuel López-Ibáñez
27f33b1531
re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
...
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR middle-end/7651
* doc/invoke.texi (Wunused-value): Update description.
(Wextra): Delete item.
* opts.c (set_Wextra): Don't use the value of Wextra to set the
value of Wunused-value.
* c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
(c_finish_stmt_expr): Don't check extra_warnings.
(emit_side_effect_warnings): The caller is responsible to check
warn_unused_value.
cp/
* cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
Check warn_unused_value just once.
From-SVN: r121843
2007-02-12 09:32:08 +00:00
Roger Sayle
2376c58f22
simplify-rtx.c (simplify_relational_operation_1): Correct typo.
...
* simplify-rtx.c (simplify_relational_operation_1): Correct typo.
Co-Authored-By: Matt Thomas <matt@3am-software.com>
From-SVN: r121839
2007-02-12 04:19:42 +00:00
Roger Sayle
69fce32ff9
simplify-rtx.c (simplify_relational_operation_1): Optimize comparisons of POPCOUNT against zero.
...
* simplify-rtx.c (simplify_relational_operation_1): Optimize
comparisons of POPCOUNT against zero.
(simplify_const_relational_operation): Likewise.
* gcc.target/ia64/builtin-popcount-1.c: New test case.
* gcc.target/ia64/builtin-popcount-2.c: Likewise.
From-SVN: r121838
2007-02-12 01:43:50 +00:00
Manuel López-Ibáñez
10c5453183
invoke.texi (Wextra): Delete outdated paragraph.
...
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* doc/invoke.texi (Wextra): Delete outdated paragraph.
From-SVN: r121829
2007-02-11 22:29:27 +00:00
Manuel López-Ibáñez
b04e13e8be
dwarf2out.c (root_type): Delete unused function.
...
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* dwarf2out.c (root_type): Delete unused function.
From-SVN: r121828
2007-02-11 22:19:49 +00:00
Manuel López-Ibáñez
807331086b
genattrtab.c (contained_in_p): Delete unused function.
...
2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* genattrtab.c (contained_in_p): Delete unused function.
(write_expr_attr_cache): Likewise.
From-SVN: r121827
2007-02-11 22:10:43 +00:00
Jan Hubicka
68e2e14118
ipa-inline.c (cgraph_edge_badness): Add "else" missing in the previous patch.
...
* ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
previous patch.
From-SVN: r121825
2007-02-11 21:28:32 +00:00
Steven Bosscher
a31830a7ca
fwprop.c (try_fwprop_subst): Use set_unique_reg_note to add the REG_EQ* note.
...
* fwprop.c (try_fwprop_subst): Use set_unique_reg_note
to add the REG_EQ* note.
* see.c (see_merge_one_use_extension): Likewise.
* local-alloc.c (update_equiv_regs): Likewise. Also don't
turn REG_EQUAL notes into REG_EQUIV notes if the target
register may have more than one set.
* function.c (assign_parm_setup_reg): Use set_unique_reg_note.
* gcse.c (try_replace_reg): Likewise.
* alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
* calls.c (fixup_tail_calls): Likewise. Abort if there is
more than one REG_EQUIV note.
* reload1.c (gen_reload): Use set_unique_reg_note.
From-SVN: r121821
2007-02-11 19:53:11 +00:00
Uros Bizjak
4c38b6d942
i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
...
* config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
(ix86_builtin_conversion): New function.
testsuite/ChangeLog:
* gcc.dg/vect/vect-intfloat-conversion-1.c: Loop gets vectorized
on i?86 and x86_64.
* gcc.dg/vect/vect-intfloat-conversion-2.c: Ditto.
* gcc.dg/vect/vect-floatint-conversion-1.c: New.
* gcc.dg/vect/vect-93.c: Another loop gets vectorized
on i?86 and x86_64.
* gcc.dg/vect/vect-113.c: Ditto.
From-SVN: r121820
2007-02-11 20:48:07 +01:00
Mark Mitchell
56fd65c7d9
re PR target/29487 (Shared libstdc++ fails to link)
...
PR target/29487
* tree.h (DECL_REPLACEABLE_P): New macro.
* except.c (set_nothrow_function_flags): Likewise.
PR target/29487
* decl.c (finish_function): Use DECL_REPLACEABLE.
* tree.c (cp_cannot_inline_tree_fn): Likewise.
PR c++/29487
* g++.dg/eh/weak1-C: New test.
* g++.dg/eh/weak1-a.cc: Likewise.
* g++.dg/eh/comdat1.C: Likewise.
From-SVN: r121819
2007-02-11 18:58:05 +00:00
Tehila Meyzels
f57d17f1fc
tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
...
* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
* targhooks.c (default_builtin_vectorized_conversion): New.
* targhooks.h (default_builtin_vectorized_function): New declaration.
* target.h (struct vectorize): Add builtin_conversion field.
* tree-vectorizer.h (type_conversion_vec_info_type): New enum
stmt_vec_info_type value.
(vectorizable_conversion): New declaration.
* tree-vect-analyze.c (vect_analyze_operations): Add
vectorizable_conversion call.
* target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
* tree-vect-transform.c (vectorizable_conversion): New function.
(vect_transform_stmt): Add case for type_conversion_vec_info_type.
* tree-vect-generic.c (expand_vector_operations_1): Consider correct
mode.
* config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
(TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
(rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX or
ALTIVEC_BUILTIN_VCFSX.
Co-Authored-By: Dorit Nuzman <dorit@il.ibm.com>
Co-Authored-By: Ira Rosen <irar@il.ibm.com>
From-SVN: r121818
2007-02-11 11:46:07 +00:00
Uros Bizjak
3de8da2a3c
ChangeLog: Whitespace fixes.
...
* ChangeLog: Whitespace fixes.
* gcc/ChangeLog: Ditto.
* gcc/testsuite/ChangeLog: Ditto.
From-SVN: r121815
2007-02-11 09:09:03 +01:00
John David Anglin
51823d478c
re PR target/30634 (FAIL: gfortran.fortran-torture/execute/intrinsic_set_exponent.f90)
...
PR target/30634
* pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
CONST_DOUBLE and operand 0 is a hard register.
(movdi): For 64-bit target, remove code to force CONST_DOUBLE to
memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
is a hard floating-point register.
From-SVN: r121802
2007-02-10 19:51:40 +00:00
Richard Henderson
8893239dc4
Makefile.in (libgcc-support, [...]): Add emutls.c.
...
gcc/ChangeLog:
* Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
* builtin-types.def (BT_WORD): Make unsigned.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
(BUILT_IN_EMUTLS_REGISTER_COMMON): New.
* c-decl.c (grokdeclarator): Don't error if !have_tls.
* c-parser.c (c_parser_omp_threadprivate): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
emulated tls.
* expr.c (emutls_var_address): New.
(expand_expr_real_1): Expand emulated tls.
(expand_expr_addr_expr_1): Likewise.
* libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
* output.h (emutls_finish): Declare.
* toplev.c (compile_file): Call it.
* tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
address before wrapping in CONST.
* varasm.c (emutls_htab, emutls_object_type): New.
(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
(get_emutls_object_name, get_emutls_object_type): New.
(get_emutls_init_templ_addr, emutls_decl): New.
(emutls_common_1, emutls_finish): New.
(assemble_variable): When emulating tls, swap decls; generate
constructor for the emutls objects.
(do_assemble_alias): When emulating tls, swap decl and target name.
(default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
for emulated tls.
* varpool.c (decide_is_variable_needed): Look at force_output.
Recurse for emulated tls.
(cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
with decide_is_variable_needed.
* emutls.c: New file.
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
tls_object for real tls.
gcc/cp/ChangeLog:
* decl.c (grokvardecl): Don't error if !have_tls.
(grokdeclarator): Likewise.
* parser.c (cp_parser_omp_threadprivate): Likewise.
gcc/fortran/ChangeLog:
* f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
and __emutls_register_common.
* openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
* trans-common.c (build_common_decl): Don't check have_tls.
* trans-decl.c (gfc_finish_var_decl): Likewise.
* types.def (BT_WORD, BT_FN_PTR_PTR): New.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp (check_effective_target_tls): Redefine
to mean non-emulated tls.
* gcc.dg/tls/alias-1.c: Remove tls requirement.
* gcc.dg/tls/asm-1.c, gcc.dg/tls/debug-1.c, gcc.dg/tls/diag-1.c,
gcc.dg/tls/diag-2.c, gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c,
gcc.dg/tls/diag-5.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c,
gcc.dg/tls/opt-10.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c,
gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c, gcc.dg/tls/pic-1.c,
gcc.dg/tls/struct-1.c, gcc.dg/tls/trivial.c: Likewise.
From-SVN: r121800
2007-02-10 19:19:10 +00:00
Kaz Kojima
4c9034c5e5
re PR rtl-optimization/29599 (ICE when building the kernel on SH4)
...
PR rtl-optimization/29599
* reload1.c (eliminate_regs_in_insn): Take the destination
mode into account when computing the offset.
From-SVN: r121792
2007-02-10 06:47:49 +00:00
Stuart Hastings
ebff937c19
i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
...
* gcc/config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
* gcc/config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
* gcc/config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
fixuns_truncdfhi2): New.
(fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
(floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
(floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
(floatunssidf2): Allow nonimmediate source.
* gcc/config/i386/sse.md (movdi_to_sse): New. (vec_concatv2di): Drop '*'.
* gcc/config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse): New.
* gcc/config/i386/i386.c (ix86_expand_convert_uns_si_sse,
ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
(ix86_build_signbit_mask): Fix decl of v, refactor to call ix86_build_const_vector.
(x86_emit_floatuns): Rewrite.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r121790
2007-02-10 01:17:03 +00:00
Manuel López-Ibáñez
692b647c4f
genautomata.c (longest_path_length): Delete unused function.
...
2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* genautomata.c (longest_path_length): Delete unused function.
(struct state): Delete unused longest_path_length.
(UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
(get_free_state): Delete unused.
From-SVN: r121789
2007-02-10 01:05:18 +00:00
Jan Hubicka
d562c6687f
params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
...
* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
* doc/invoke.texi (inline-unit-growth): Update default value.
From-SVN: r121781
2007-02-09 22:51:44 +00:00
Jan Hubicka
45a80bb9e8
Makefile.in (passes.o, [...]): Add dependencies.
...
* Makefile.in (passes.o, ipa-inline.o): Add dependencies.
* cgraphbuild.c (build_cgraph_edges): Compute frequencies.
(rebuild_cgraph_edges): Likewise.
* cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
(dump_cgraph_node): Dump frequencies.
(cgraph_clone_edge): Add frequency scales.
(cgraph_clone_node): Add freuqnecy.
* cgraph.h (cgraph_edge): Add freuqnecy argument.
(CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
(cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
* tree-pass.h (TODO_rebuild_frequencies): New constant.
* cgraphunit.c (verify_cgraph_node): Verify frequencies.
(cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
(save_inline_function_body): Likewise.
* ipa-inline.c: inluce rtl.h
(cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
(cgraph_edge_badness): Use frequencies.
(cgraph_decide_recursive_inlining): Update clonning.
(cgraph_decide_inlining_of_small_function): Dump frequency.
* predict.c (estimate_bb_frequencies): Export.
* predict.h (estimate_bb_frequencies): Declare.
* tree-inline.c (copy_bb): Watch overflows.
(expand_call_inline): Update call of cgraph_create_edge.
(optimize_inline_calls): Use TODO flags to update frequnecies.
* passes.h: Include predict.h
(init_optimization_passes): Move profile ahead.
(execute_function_todo): Handle TODO_rebuild_frequencies.
From-SVN: r121780
2007-02-09 22:49:30 +00:00
Roger Sayle
f2477b062c
alpha.c (emit_insxl): Force the first operand of the insbl or inswl pattern into a register.
...
* config/alpha/alpha.c (emit_insxl): Force the first operand of
the insbl or inswl pattern into a register.
From-SVN: r121779
2007-02-09 22:36:34 +00:00
Roger Sayle
ff848f0e0f
ia64.md (bswapdi2): New define_insn.
...
* config/ia64/ia64.md (bswapdi2): New define_insn.
* gcc.target/ia64/builtin_bswap-1.c: New test case.
From-SVN: r121776
2007-02-09 21:33:36 +00:00
Richard Henderson
ed69105c95
constraints.md (Ym): New constraint.
...
* config/i386/constraints.md (Ym): New constraint.
* config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
(movdi_1_rex64): Split sse and xmm general register moves from
memory move alternatives. Use conditional register constraints.
(movsf_1, movdf_integer): Likewise.
(zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
(movdf_integer_rex64): New.
(pushsf_rex64): Fix output constraints.
* config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
(sse2_stored): Likewise.
(sse2_storeq_rex64): New.
* config/i386/i386.c (x86_inter_unit_moves): Enable for not
amd and not generic.
(ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
for optimize_size. Remove SF/DFmode hack.
From-SVN: r121767
2007-02-09 10:17:09 -08:00
Dwarakanath Rajagopal
35a63f2131
driver-i386.c: Turn on -mtune=native for AMDFAM10.
...
2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
* config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
(bit_SSE4a): New.
From-SVN: r121763
2007-02-09 16:56:45 +00:00
Nathan Sidwell
10e96df47c
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
...
gcc/
200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
(m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
(m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
m68k/t-mlib to tmake_file.
(m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
(m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
(m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
Allow it to be cf or m68k. Set m68k_arch_family. If that
variable is not empty, add t-$m68k_arch_family to tmake_file.
Add t-mlibs to tmake_file.
* doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
* config/m68k/t-cf: New file.
* config/m68k/t-m68k: Likewise.
* config/m68k/t-mlibs: Likewise.
* config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
* config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
Delete.
* config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
(INSTALL_LIBGCC): Delete.
(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
* config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
(M68K_MLIB_CPU): Define.
* config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
(M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r121743
2007-02-09 13:47:25 +00:00