Age | Commit message (Collapse) | Author | Files | Lines |
|
* config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
* fold-const.c (maybe_lvalue_p): Delete orphaned comment.
From-SVN: r97594
|
|
postreload.c:378 with SSE2 code on -O2)
PR rtl-optimization/16104
* fold-const.c (fold_unary): Fix folding of vector conversions.
* gcc.c-torture/execute/20050316-1.c: New test.
From-SVN: r97529
|
|
2005-04-03 Roger Sayle <roger@eyesopen.com>
Alexandre Oliva <aoliva@redhat.com>
PR c++/19199
* fold-const.c (non_lvalue): Split tests into...
(maybe_lvalue_p): New function.
(fold_cond_expr_with_comparison): Preserve lvalue-ness for the
C++ front-end prior to lowering into gimple form.
* g++.dg/expr/lval2.C: New.
* expr2.C: Fixed.
From-SVN: r97522
|
|
From-SVN: r97395
|
|
2005-03-25 Pat Haugen <pthaugen@us.ibm.com>
PR tree-optimization/20470
* fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
ABS(x-y).
From-SVN: r97062
|
|
* fold-const.c: Convert uses of fold (build (...)) to
fold_buildN.
From-SVN: r97046
|
|
* fold-const.c (fold_build1, fold_build2, fold_build3): New.
* tree.h: Add corresponding prototypes.
From-SVN: r96881
|
|
* fold-const.c (fold_ternary): Take decomposed arguments of
CALL_EXPR.
(fold): Update a call to fold_ternary.
From-SVN: r96880
|
|
* fold-const.c (fold_unary, fold_binary): Update comments
about arguments.
From-SVN: r96855
|
|
* builtins.c (fold_builtin): Take decomposed arguments of
CALL_EXPR.
* fold-const.c (fold_ternary): Update a call to fold_builtin.
* gimplify.c (gimplify_call_expr): Likewise.
* tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
* tree.h: Update the prototype of fold_builtin.
From-SVN: r96800
|
|
PR middle-end/20539
* fold-const.c (fold_binary): Fix type mismatch between
TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
(fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
for non-truth-valued expressions.
* c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
and FUNCTION_DECL in the main switch.
<TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
we also need to convert their operands to match.
<TRUTH_NOT_EXPR>: Likewise.
* gcc.c-torture/compile/pr13066-1.c: New test case.
* gcc.c-torture/compile/pr20539-1.c: Likewise.
* g++.dg/opt/pr13066-1.C: Likewise.
From-SVN: r96777
|
|
PR middle-end/20493
* fold-const.c (fold_widened_comparison): Don't optimize casts of
function pointers on targets that require function pointer
canonicalization.
(fold_sign_changed_comparison): Likewise.
From-SVN: r96733
|
|
PR tree-optimization/17454
* tree.c (tree_size): Add case for TREE_BINFO.
* fold-const.c (fold_checksum_tree): Only clear the overloaded
field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
From-SVN: r96548
|
|
PR middle-end/19331
* tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
* fold-const.c (fold_sign_changed_comparison): Likewise.
(fold_binary): Optimize comparisons against widened operands if
the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
From-SVN: r96397
|
|
PR tree-optimization/15784
* fold-const.c (fold): Fold ~A + 1 to -A. Fold -A - 1
and -1 - A to ~A.
* stmt.c (expand_case): Don't change index_type. Convert minval
to the proper type.
From-SVN: r96289
|
|
2005-03-11 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/20130
* fold-const.c (fold): Fold x * -1 into -x.
From-SVN: r96283
|
|
From-SVN: r96204
|
|
op0, and op1 in case of fold_binary.
* fold-const.c (fold_unary, fold_binary): Take decomposed
arguments, code, type, op0, and op1 in case of fold_binary.
(fold): Update calls to fold_unary and fold_binary.
From-SVN: r96202
|
|
simplified.
* fold-const.c (fold_unary, fold_binary, fold_ternary): Return
NULL_TREE when a given tree is not simplified.
(fold): Return the original tree when any of the functions
mentioned above NULL_TREE.
From-SVN: r96201
|
|
From-SVN: r96165
|
|
from earlier change.
* fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
ordering ops from earlier change.
From-SVN: r96046
|
|
* fold-const.c (fold_binary): Unroll the very first "for"
loop.
From-SVN: r96003
|
|
From-SVN: r96002
|
|
From-SVN: r95989
|
|
arguments code, type, op0, and op1 instead of t.
* fold-const.c (fold_binary_op_with_conditional_arg): Take
decomposed arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.
From-SVN: r95978
|
|
and op1 instead of t.
* fold-const.c (fold_range_test): Take decomposed arguments
code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.
From-SVN: r95977
|
|
type, op0, and op1 instead of t.
* fold-const.c (optimize_minmax_comparison): Take decomposed
arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to optimize_minmax_comparison.
From-SVN: r95971
|
|
From-SVN: r95970
|
|
as much as possible.
* fold-const.c (fold_binary): Avoid directly using the original
expression t as much as possible.
From-SVN: r95962
|
|
From-SVN: r95961
|
|
* fold-const.c (fold_binary): New.
(fold): Call fold_binary on binary expressions.
From-SVN: r95938
|
|
* fold-const.c (fold_ternary): Unroll the "for" loop to
extract operands.
From-SVN: r95895
|
|
2005-03-04 Andrew Pinski <pinskia@physics.uc.edu>
Revert for now:
2005-03-03 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/15784
* fold-const.c (fold): Fold ~A + 1 to -1. Fold -A - 1
and -1 - A to ~A.
From-SVN: r95880
|
|
* fold-const.c (fold_ternary): New.
(fold): Call fold_ternary on ternary expressions. Remove
handling of ternary expressions.
From-SVN: r95871
|
|
2005-03-03 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/15784
* fold-const.c (fold): Fold ~A + 1 to -1. Fold -A - 1
and -1 - A to ~A.
From-SVN: r95870
|
|
much as possible.
* fold-const.c (fold_unary): Avoid directly using the original
expression t as much as possible.
From-SVN: r95837
|
|
From-SVN: r95836
|
|
* fold-const.c (fold_unary): New.
(fold): Call fold_unary on unary expressions.
From-SVN: r95783
|
|
(-ffast-math))
PR middle-end/19953
* builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
(fold_builtin_1): Call them.
* fold-const.c (fold_complex_mult_parts): Split out from ...
(fold_complex_mult): ... here. Fix typo in both imaginary case.
(fold_complex_div_parts, fold_complex_div): New.
(fold): Use them.
* tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
From-SVN: r95511
|
|
type...
* fold-const.c (constant_boolean_node): Always create values of
the specified type, don't bother calling truthvalue_conversion.
From-SVN: r95237
|
|
2005-02-18 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/20030
* fold-const.c (fold_indirect_ref_1): Use the correct index for zero access,
the lower bound of the array type if it exists.
From-SVN: r95226
|
|
2005-02-16 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
constant_boolean_node.
From-SVN: r95146
|
|
program)
PR middle-end/19857
* fold-const.c (fold): Don't optimize (T)(x & cst) to
(T)x & (T)cst if (T)cst overflows.
* convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
* gcc.dg/tree-ssa/20050215-1.c: New test.
* gcc.c-torture/execute/20050215-1.c: New test.
From-SVN: r95106
|
|
2005-02-15 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (fold): Fold -(~A) to A + 1. Fold ~(-A) to A - 1.
Fold ~(A - 1) and ~(A + -1) to -A.
From-SVN: r95074
|
|
From-SVN: r95024
|
|
gcc.dg/pr15784-1.c, gcc.dg/pr15784-2.c)
2005-02-13 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/19944
* fold-const.c (fold): Re-add ABS_EXPR folding.
From-SVN: r95002
|
|
From-SVN: r94987
|
|
c++ program)
PR mudflap/19319
* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
slot explicit.
PR c++/16405
* fold-const.c (fold_indirect_ref_1): Split out from...
(build_fold_indirect_ref): Here.
(fold_indirect_ref): New fn.
* tree.h: Declare it.
* gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
(gimplify_modify_expr_rhs): Likewise.
(gimplify_expr): Likewise.
From-SVN: r94979
|
|
is not fully folded)
2005-02-13 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/14303
PR tree-optimization/15784
* fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
Fold ABS_EXPR<x> < 0 to false. Fold ABS_EXPR<x> == 0 to x == 0 and
ABS_EXPR<x> != 0 to x != 0.
From-SVN: r94977
|
|
* tree-complex.c (expand_complex_libcall): New.
(expand_complex_multiplication): Use it for c99 compliance.
(expand_complex_division): Likewise.
* fold-const.c (fold_complex_add, fold_complex_mult): New.
(fold): Call them.
* builtins.c (built_in_names): Remove const.
* tree.c (build_common_builtin_nodes): Build complex arithmetic
builtins.
* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
(built_in_names): Remove const.
* c-common.c (c_common_type_for_mode): Handle complex modes.
* flags.h, toplev.c (flag_complex_method): Rename from
flag_complex_divide_method.
* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
__mulsc3, __muldc3, __mulxc3, __multc3): New.
* libgcc2.h: Declare them.
* libgcc-std.ver: Export them.
* mklibgcc.in (lib2funcs): Build them.
From-SVN: r94909
|