aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
AgeCommit message (Collapse)AuthorFilesLines
1995-07-18(fold, case CONVERT_EXPR): Don't merge conversions if outer is toRichard Kenner1-2/+8
handle a type with differing precision. From-SVN: r10145
1995-07-01(decode_field_reference): New parm PAND_MASK.Richard Kenner1-11/+27
(unextend): New parm MASK. (fold_truthop): Pass new parms to decode_field_reference and unextend. From-SVN: r10098
1995-06-27(fold_truthop): Commute unextend and convert on l_const and r_const.Richard Kenner1-2/+2
From-SVN: r10065
1995-06-15Update FSF address.Richard Kenner1-1/+2
From-SVN: r9961
1995-06-13(fold): When converting a COND_EXPR to an ABS_EXPR, get the typesRichard Kenner1-2/+6
right for ABS_EXPR to work. From-SVN: r9939
1995-06-09(lshift_double): Replace `&' with `%' to fix typo.Richard Kenner1-4/+8
(lshift_double, rshift_double): Truncate shift count only if SHIFT_COUNT_TRUNCATED. Remove unnecessary `count >= prec' test. From-SVN: r9917
1995-06-07(fold): When folding `<' type nodes, make true_value and false_valueRichard Kenner1-5/+7
have correct types. From-SVN: r9899
1995-05-24*** empty log message ***Jason Merrill1-1/+5
From-SVN: r9801
1995-05-17(invert_truthvalue, case CLEANUP_POINT_EXPR): New case.Richard Kenner1-0/+4
From-SVN: r9735
1995-05-16Fix typos in comments.Richard Kenner1-2/+2
From-SVN: r9712
1995-05-15(const_binop): Don't pass OVERFLOW to force_fit_type if type isRichard Kenner1-1/+1
unsigned. From-SVN: r9694
1995-05-11*** empty log message ***Jason Merrill1-8/+22
From-SVN: r9623
1995-05-02small tweakMike Stump1-2/+2
From-SVN: r9566
1995-05-02fold-const.c (fold): Ensure that we don't alter the expression's type when ↵Mike Stump1-1/+1
folding CLEANUP_POINT_EXPRs. * fold-const.c (fold): Ensure that we don't alter the expression's type when folding CLEANUP_POINT_EXPRs. From-SVN: r9563
1995-04-21([lr]rotate_double): Replace; old versions were bogus.Richard Kenner1-46/+59
(fold, shift and rotate): Don't call tree_int_cst_sgn on non-integer. (fold, case LROTATE_EXPR): If constant count, convert to RROTATE_EXPR. (fold, case RROTATE_EXPR): Sometimes commute logical op with rotate. Delete pair of counteracting shifts. From-SVN: r9425
1995-04-18(size_int): Arg is unsigned HOST_WIDE_INT.Richard Kenner1-1/+1
From-SVN: r9406
1995-03-08(force_fit_type): Always propagate OVERFLOW.Richard Kenner1-1/+1
From-SVN: r9138
1995-03-01(decode_field_reference): Don't check TREE_CODE of EXP; let ↵Richard Kenner1-19/+67
get_inner_reference decide if have reference. (decode_field_reference): Don't check TREE_CODE of EXP; let get_inner_reference decide if have reference. Allow no bit reference if have AND_MASK. (all_ones_mask_p): Use tree_int_cst_equal, not operand_equal_p. (unextend): New function. (fold_truthop): For constant cases, use new function, rework conversion, and warn if comparison can never be true. From-SVN: r9099
1995-02-22Support CLEANUP_POINT_EXPRs.Jason Merrill1-0/+26
From-SVN: r9034
1995-02-10(fold): Don't modify tree with newly-allocated nodes; instead make newRichard Kenner1-27/+30
tree in those cases. From-SVN: r8901
1995-01-17(pedantic_non_lvalue): Check pedantic_lvalues instead of pedantic.Jason Merrill1-1/+6
From-SVN: r8765
1995-01-13(fold, case COND_EXPR): Properly swap args 1 and 2.Richard Kenner1-21/+33
Strip nops from ARG2, just like ARG1. Make {MIN,MAX}_EXPR properly when type of result different than args. From-SVN: r8745
1995-01-10(fold): Avoid infinite recursion caused by last change.Richard Kenner1-5/+7
From-SVN: r8730
1995-01-07(fold, case CONVERT_EXPR): Don't remove an integer conversion when outer is ↵Richard Kenner1-54/+64
FP unless it doesn't change signedness... (fold, case CONVERT_EXPR): Don't remove an integer conversion when outer is FP unless it doesn't change signedness; rework code in this area to be clearer. From-SVN: r8724
1994-12-10(pedantic_omit_one_operand): New function.Richard Kenner1-1/+18
(fold, case COND_EXPR): Use it instead of calling pedantic_non_lvalue on the result of omit_one_operand. From-SVN: r8641
1994-12-09(fold): Call real_zerop for real constants.Doug Evans1-1/+3
From-SVN: r8634
1994-11-30(fold_truthop): Delete BIT_AND_EXPR of constants with masks.Richard Kenner1-2/+0
From-SVN: r8592
1994-11-22(fold_convert): Don't fold conversion if it would produce constantRichard Kenner1-0/+5
larger than we can support. From-SVN: r8551
1994-11-16Check target endianness at run time, not compile timeIan Lance Taylor1-11/+12
From-SVN: r8470
1994-11-16(fold): If moved conversion into COND_EXPR, leave it there if it is an ↵Richard Kenner1-5/+36
integral conversion to word or narrower. (fold): If moved conversion into COND_EXPR, leave it there if it is an integral conversion to word or narrower. (fold, case NOP_EXPR): Ignore conversion to same type as operand. (fold, case COND_EXPR): Make third operand the simplest. From-SVN: r8467
1994-10-05(fold, COMPONENT_REF): Don't die if the CONSTRUCTORJason Merrill1-1/+5
doesn't initialize the field we want. From-SVN: r8223
1994-09-20(fold): Handle COMPONENT_REFs involving CONSTRUCTORs.Jason Merrill1-0/+5
From-SVN: r8095
1994-07-30Fix typo.Richard Kenner1-2/+2
From-SVN: r7840
1994-07-30(fold_truthop): Apply masks to constants.Richard Kenner1-0/+2
From-SVN: r7839
1994-07-21(fold): Don't fold X-X to 0 if X is floating pointJim Wilson1-2/+2
and !flag_fast_math. From-SVN: r7786
1994-07-13(decode_field_reference): Merge operand of a BIT_AND_EXPR with theRichard Kenner1-17/+21
mask made from the description of the field. From-SVN: r7766
1994-07-13Remove last change.Richard Kenner1-18/+0
From-SVN: r7764
1994-07-12(fold, case MULT_EXPR): If arg is an unsigned CEIL_DIV_EXPR, convertRichard Kenner1-0/+18
to TRUNC_DIV_EXPR of a PLUS_EXPR in some cases. From-SVN: r7744
1994-06-29(div_and_round_double): Make it globally accessible.Torbjorn Granlund1-2/+2
From-SVN: r7594
1994-06-15Revert last patch: (fold, case *_DIV_EXPR): Optimize (x / C << y)...Torbjorn Granlund1-47/+0
From-SVN: r7475
1994-06-15(encode, decode): Use 4 HOST_WIDE_INTs for encoded value with ↵Torbjorn Granlund1-338/+192
HOST_BITS_PER_WIDE_INT/2 bits in each. (encode, decode): Use 4 HOST_WIDE_INTs for encoded value with HOST_BITS_PER_WIDE_INT/2 bits in each. (LOWPART, HIGHPART): New macros. (BASE): Move definition outside of div_and_round_double. (add_double, mul_double, lshift_double, rshift_double): Rewrite. (lrotate_double): Use LOWPART, HIGHPART, and BASE. (rrotate_double): Likewise. (div_and_round_double): Major changes to code for general case. Now it actually produces non-garbage results for large operands. (div_and_round_double): Simplify condition for special code used when divisor < BASE. (const_binop): Delete special cases for multiplying by 0, 1, 2, 4, 8. (fold, case *_DIV_EXPR): Don't try to optimize for overflow. From-SVN: r7473
1994-06-14Cast pointer operands to bzero, bcopy, and bcmp to (char *).Richard Kenner1-5/+6
From-SVN: r7472
1994-04-25(fold-convert): Use assignment, instead of initializing, aggregateRichard Kenner1-4/+9
local variable REAL_VALUE_TYPE. From-SVN: r7146
1994-04-18(const_binop): If arg is NaN, just return itRichard Kenner1-18/+27
(const_binop): If arg is NaN, just return it (fold_convert): Handle NaN in real->int and real->real cases. From-SVN: r7072
1994-04-09(fold): Avoid exponential work when simplifying conditionalRichard Kenner1-1/+2
expressions; don't recurse twice if ARG1 is constant. From-SVN: r7010
1994-04-08Fix typo in comment of last change.Richard Kenner1-1/+1
From-SVN: r7000
1994-04-08(fold, case GT_EXPR): Simplify X < (1 << Y) into X >> Y == 0.Richard Kenner1-0/+24
From-SVN: r6999
1994-03-30(strip_compound_expr): New function.Richard Kenner1-6/+50
(fold): Call it; avoid exponential work when simplifying binary op over a COND_EXPR. From-SVN: r6921
1994-03-25(fold, case *_DIV_EXPR): Correct result when product of constantsRichard Kenner1-15/+29
overflows. From-SVN: r6900
1994-03-19(const_binop): Avoid initialized aggregate local variables, forRichard Kenner1-2/+4
antique compilers. From-SVN: r6821