* go-gcc.cc (Gcc_backend::function_type): When building a struct
for multiple results, check that all fields types have a size.
(Gcc_backend::placeholder_pointer_type): Permit name to be empty.
From-SVN: r173742
2011-05-13 Martin Jambor <mjambor@suse.cz>
* ipa-prop.c (ipa_cst_from_jfunc): New function.
* ipa-prop.h (ipa_cst_from_jfunc): Declare.
* ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
(evaluate_conditions_for_ipcp_clone): Removed.
(estimate_ipcp_clone_size_and_time): Accept vector of known constants.
* ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
* ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
From-SVN: r173739
* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
* regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
lieu of MAY_HAVE_DEBUG_STMTS.
* tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
debug statements if !MAY_HAVE_DEBUG_STMTS.
From-SVN: r173737
2011-05-13 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_canonical_types_compatible_p): Do not use
type-pair caching, do not compare hashes.
From-SVN: r173734
2011-05-13 Kai Tietz <ktietz@redhat.com>
* gimplify.c (gimplify_expr): Make sure operand is boolified.
* tree-cfg.c (verify_gimple_assign_unary): Check for boolean
compatible type for TRUTH_NOT_EXPR.
From-SVN: r173732
2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_save_reg): Change return type to
bool.
(ix86_hard_regno_mode_ok): Change return value to bool. Use
can_create_pseudo_p ().
From-SVN: r173731
2011-05-13 Richard Guenther <rguenther@suse.de>
PR lto/48978
* gimple.c (iterative_hash_gimple_type): Revert change in
pointer target and function result and argument hashing.
From-SVN: r173730
* config/i386/i386-opts.h: New.
* gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
ix86_section_threshold): Remove.
(ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
OPT_mbranch_cost_.
(ix86_option_override_internal): Don't decode strings for options
other than -march=, -mtune= and -mfpmath=. Don't allow for
__attribute__ uses in remaining diagnostics for options with
string arguments. Don't check for integer arguments being
negative.
* gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
enum tls_dialect, enum cmodel, enum asm_dialect): Move to
i386-opts.h.
(ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
ix86_branch_cost, ix86_section_threshold): Remove.
* gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
HeaderInclude.
(malign-functions=, malign-jumps=, malign-loops=): Use UInteger
but not Var.
(masm=): Use Enum and Init.
(asm_dialect): New Enum and EnumValue entries.
(mbranch-cost=): Use UInteger.
(mlarge-data-threshold=): Use UInteger and Init.
(mcmodel=): Use Enum and Init.
(cmodel): New Enum and EnumValue entries.
(mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
(mpreferred-stack-boundary=, mincoming-stack-boundary=,
mregparm=): Use UInteger.
(mstringop-strategy=): Use Enum and Init.
(stringop_alg): New Enum and EnumValue entries.
(mtls-dialect=): Use Enum and Init.
(tls_dialect): New Enum and EnumValue entries.
(mabi=): Use Enum and Init.
(calling_abi): New Enum and EnumValue entries.
(mveclibabi=): Use Enum and Init.
(ix86_veclibabi): New Enum and EnumValue entries.
From-SVN: r173728
2011-05-13 Kai Tietz <ktietz@redhat.com>
PR middle-end/48984
* gimplify.c (gimplify_expr): Check for boolean_type_node instead
for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
(gimple_boolify): Check for cast for boolean_type_node instead for
BOOLEAN_TYPE.
From-SVN: r173726
2011-05-13 Richard Guenther <rguenther@suse.de>
PR tree-optimization/48172
* tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
multiplying by number of iterations for equal step.
(vect_create_cond_for_alias_checks): Likewise.
From-SVN: r173725
2011-05-12 Kai Tietz <ktietz@redhat.com>
* gimplify.c (gimple_boolify): Re-boolify expression
arguments even if expression type is of kind BOOLEAN_TYPE.
(gimplify_boolean_expr): Removed.
(gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
and XOR. Additional take care that we keep expression's type.
* tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
of TRUTH_AND|OR|XOR_EXPR.
From-SVN: r173711
PR tree-optimization/48975
* tree-if-conv.c (combine_blocks): Call free_bb_predicate
on all bbs here and free and clear ifc_bbs at the end.
* gcc.dg/pr48975.c: New test.
From-SVN: r173709
* cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
* semantics.c (validate_constexpr_fundecl): Set it.
(check_deferred_constexpr_decls): Clear it.
(register_constexpr_fundef): Make sure it isn't set.
* decl.c (grok_special_member_properties): Check it.
From-SVN: r173707
* gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
type of the parameter is an unconstrained array, convert the actual to
the type of the formal in the In Out and Out cases as well.
From-SVN: r173706
2011-05-12 Richard Guenther <rguenther@suse.de>
* gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
until after simple checks.
(gimple_types_compatible_p): Likewise.
(iterative_hash_gimple_type): Always hash pointer targets
and function return and argument types.
(iterative_hash_canonical_type): Do not hash TYPE_QUALS,
hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
(gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
completely in the simple compare section.
(gimple_register_canonical_type): Query the cache again after
registering.
From-SVN: r173704
2011-05-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/48172
* tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
the number of iterations from the segment size calculation.
(vect_create_cond_for_alias_checks): Adjust.
* gcc.dg/vect/pr48172.c: New testcase.
From-SVN: r173703
* ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
accessing beyond the end of REGNO_REG_CLASS array by stopping the
loop early.
From-SVN: r173699
(ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
created builtin into rx_builtins array.
(rx_builtin_decl): New function.
(TARGET_BUITLIN_DECL): Define.
Include gt-rx.h.
Co-Authored-By: Nick Clifton <nickc@redhat.com>
From-SVN: r173696
* config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
* config/rx/rx.c (CC_FLAG_FP): Fix comment.
(rx_is_legitimate_address): Add pre-decrement and post-increment
addressing in HImode and QImode. Fix test for out of range
REG+INT addressing.
(rx_legitimate_constant_p): Rename ro rx_is_legitimate_constant.
(rx_align_for_label): Test label before extracting its usage
count.
(rx_adjust_insn_lengths): Fix selection of insn codes.
(TARGET_LEGITIMNATE_CONSTANT_P): Use renamed function.
Co-Authored-By: Nick Clifton <nickc@redhat.com>
From-SVN: r173695