summaryrefslogtreecommitdiffstats
path: root/gcc/simplify-rtx.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * simplify-rtx.c (simplify_subreg): Use the correct mode whensayle2006-12-211-5/+14
| | | | | | | | | determining whether a SUBREG of a CONCAT refers to the first or second component. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120101 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/rsandifo2006-11-301-3/+3
| | | | | | | | * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than simplify_gen_subreg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119380 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>krebbel2006-11-091-0/+3
| | | | | | | | | | | | | * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling simplify_subreg with BLKmode outer mode. 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com> * gcc.dg/20061109-1.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118622 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-07 Eric Christopher <echristo@apple.com>geoffk2006-11-011-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Falk Hueffner <falk@debian.org> * doc/extend.texi (__builtin_bswap32): Document. (__builtin_bswap64): Ditto. * doc/libgcc.texi (bswapsi2): Document. (bswapdi2): Ditto. * doc/rtl.texi (bswap): Document. * optabs.c (expand_unop): Don't widen a bswap. (init_optabs): Init bswap. Set libfuncs explicitly for bswapsi2 and bswapdi2. * optabs.h (OTI_bswap): New. (bswap_optab): Ditto. * genopinit.c (optabs): Handle bswap_optab. * tree.h (tree_index): Add TI_UINT32_TYPE and TI_UINT64_TYPE. (uint32_type_node): New. (uint64_type_node): Ditto. * tree.c (build_common_tree_nodes_2): Initialize uint32_type_node and uint64_type_node. * builtins.c (expand_builtin_bswap): New. (expand_builtin): Call. (fold_builtin_bswap): New. (fold_builtin_1): Call. * fold-const.c (tree_expr_nonnegative_p): Return true for bswap. * builtin-types.def (BT_UINT32): New. (BT_UINT64): Ditto. (BT_FN_UINT32_UINT32): Ditto. (BT_FN_UINT64_UINT64): Ditto. * builtins.def (BUILT_IN_BSWAP32): New. (BUILT_IN_BSWAP64): Ditto. * rtl.def (BSWAP): New. * genattrtab.c (check_attr_value): New. * libgcc2.c (__bswapSI2): New. (__bswapDI2): Ditto. * libgcc2.h (__bswapSI2): Declare. (__bswapDI2): Ditto. * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2. * simplify-rtx.c (simplify_const_unary_operation): Return 0 for BSWAP. * libgcc-std.ver (__bwapsi2): Add. (__bswapdi2): Ditto. * reload1.c (eliminate_regs_1): Add bswap. (elimination_effects): Ditto. * config/i386/i386.h (x86_bswap): New. (TARGET_BSWAP): Use. * config/i386/i386.c (x86_bswap): Set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118361 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-21 Richard Guenther <rguenther@suse.de>rguenth2006-10-211-2/+2
| | | | | | | | | | | PR middle-end/28796 * simplify-rtx.c (simplify_const_relational_operation): Do not constant-fold ORDERED and UNORDERED for flag_unsafe_math_optimizations but only we do not need to honor NaNs for the given mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117928 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-05 Paolo Bonzini <bonzini@gnu.org>bonzini2006-09-051-47/+46
| | | | | | | | | | | | | | PR rtl-optimization/26847 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix. (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno. (simplify_plus_minus): Count n_constants while filling ops. Replace qsort with insertion sort. Before going through the array to simplify pairs, sort it. Delay early exit until after the first sort, exiting only if no swaps occurred. Simplify pairs in reversed order, without special-casing the first iteration. Pack ops after simplifying pairs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116701 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-08-11 Richard Guenther <rguenther@suse.de>rguenth2006-08-111-9/+8
| | | | | | | | | | | | PR middle-end/28651 * simplify-rtx.c (simplify_const_relational_operation): Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison codes. * gcc.c-torture/execute/pr28651.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116079 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Castsayle2006-05-301-1/+1
| | | | | | | | width to HOST_WIDE_INT to avoid comparison warnings on some targets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114248 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_binary_operation): Unfactor the shiftsayle2006-05-301-2/+26
| | | | | | | | | | | | | and rotate cases. <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics. * gcc.target/ppc-eq0-1.c: New test case. * gcc.target/ppc-negeq0-1.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114239 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/24964sayle2006-05-291-7/+29
| | | | | | | | | | | | | * simplify-rtx.c (simplify_binary_operation_1): Add function comment. <MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor signaling NaNs. Optimize -x*-x as x*x for all float modes, and abs(x)*abs(x) as x*x for scalar floating point modes. * gcc.target/i386/387-10.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114206 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET foraoliva2006-05-231-1/+16
| | | | | | | | | | | | | | | | | big-endian paradoxical subregs. * var-tracking.c (struct micro_operation_def): Document that, for modify micro operations, insn is the subsequent instruction. (var_reg_delete_and_set, var_mem_delete_and_set): Split into... (var_reg_set, var_mem_set): ... new functions. (add_stores): Record subsequent insn. (compute_bb_dataflow): Use new functions for MO_USE. (emit_notes_in_bb): Use new functions for MO_USE. Emit use notes after the insn, and modify notes before the insn known to be the subsequent one. (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114013 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/kazu2006-05-211-6/+9
| | | | | | | | | | | | | | | PR rtl-optimization/27671 * simplify-rtx.c (simplify_relational_operation_1): Fix simplifications of (eq/ne (xor x y) y) and (eq/ne (xor x y) x). gcc/testsuite/ PR rtl-optimization/27671 * gcc.c-torture/execute/pr27671-1.c: New. * gcc.dg/pr27671-2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113955 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.def (SS_ASHIFT, SS_NEG): New codes.bernds2006-04-241-0/+3
| | | | | | | | | | * doc/rtl.texi: Document them. * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation_1): Don't abort when we see them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113227 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Whennemet2006-04-031-1/+2
| | | | | | | | trying to remove TRUNCATE check if all bits outside the new mode are identical to the sign bit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112643 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_relational_operation): Callnemet2006-03-251-2/+1
| | | | | | | simplify_relational_operation_1 even if mode is VOIDmode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112383 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>krebbel2006-03-161-1/+14
| | | | | | | | * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112131 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_unary_operation): When simplifyingsayle2006-03-031-4/+20
| | | | | | | | | | (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure that we perform the right shift in the appropriate mode, and then extend or truncate the result to requested mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111671 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (truncated_to_mode): Declare it.nemet2006-02-281-7/+10
| | | | | | | | | | | | | | (struct rtl_hooks): Add reg_truncated_to_mode hook. * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro. (RTL_HOOKS_INITIALIZER): Include it. * rtlhooks.c (reg_truncated_to_mode_general): New function. * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to reg_truncated_to_mode. * rtlanal.c (truncated_to_mode): Define it. * simplify-rtx.c (simplify_unary_operation_1): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111573 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_relational_operation_1): Simplifysayle2006-02-251-1/+33
| | | | | | | | | | (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y as X == 0, and some symmetry related transformations. Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111443 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/25600sayle2006-02-181-0/+13
| | | | | | | | | | | | | * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when C is one less than the width of X (and related transformations). * simplify_rtx.c (simplify_unary_operation_1): Transform (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C) depending on STORE_FLAG_VALUE, were C is one less then the width of X. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111226 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.nemet2006-02-141-0/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110990 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Returnnemet2006-02-141-3/+4
| | | | | | | new expression in the requested machine mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110959 138bc75d-0d04-0410-961f-82ee72b054a4
* - Fix up date in ChangeLog. Update copyrights in changed files.dje2006-01-081-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109475 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-01-07 Ian Lance Taylor <ian@airs.com>dje2006-01-071-5/+5
| | | | | | | | | | | | | David Edelsohn <edelsohn@gnu.org> PR rtl-optimization/25662 * optabs.c (simplify_expand_binop): Use simplify_binary_operation for constant operands instead of simplify_gen_binary. * simplify-rtx.c (simplify_gen_binary): Swap commutative operands after trying simplify_binary_operation git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109456 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (init_floating_libfuncs): Handle decimal float modes.bje2005-12-181-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | (init_optabs): Handle libfuncs for decimal float. * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT. * stor-layout.c (int_mode_for_mode): Likewise. * simplify-rtx.c (simplify_immed_subreg): Likewise. (simplify_unary_operation_1): Skip optimisations for decimal float modes. * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT. * emit-rtl.c (gen_const_vector): Add assertion check. (init_emit_once): Populate const_tiny_rtx with constants in each decimal float mode. * expmed.c (extract_high_half, expand_mult_highpart_optab, expand_mult_highpart): Assert that mode is not a scalar float mode. * expr.c (convert_move): Handle conversion between decimal and binary floats of the same size. * convert.c (convert_to_real): Consider decimal float types when folding. * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to describe decimal floating point types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108762 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bugamodra2005-12-161-1/+1
| | | | | | | | introduced 2005-12-16. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108697 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-12-16 Paolo Bonzini <bonzini@gnu.org>bonzini2005-12-161-12/+530
| | | | | | | | | | | | | | * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE, FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR, ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>, simplify_logical): Move simplifications that do not require additional infrastructure... * simplify-rtx.c (simplify_unary_operation_1, simplify_binary_operation_1): ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108634 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_plus_minus): Do simplify constants.amodra2005-12-011-14/+11
| | | | | | | | Delete dead code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107840 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-11-30 Paolo Bonzini <bonzini@gnu.org>bonzini2005-11-301-44/+52
| | | | | | | | | | | | | | * simplify-rtx.c (simplify_plus_minus): Remove final parameter. Always produce an output if we can remove NEGs or canonicalize (minus (minus ...)) expressions. Provide a fast path for the two-operand case. (simplify_gen_binary): Do not call simplify_plus_minus. (simplify_binary_operation_1): Reassociate at the end of the function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107702 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead ofbje2005-11-211-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. * genopinit.c (gen_insn): Likewise. * reload.c (find_equiv_reg): Likewise. * loop.c (load_mems): Likewise. * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise. * cse.c (find_comparison_args, fold_rtx): Likewise. * dwarf2out.c (add_const_value_attribute): Likewise. * expr.c (convert_move): Likewise. * recog.c (general_operand, register_operand): Likewise. * reg-stack.c (replace_reg): Likewise. * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. * c-common.c (handle_vector_size_attribute): Likewise. * simplify-rtx.c (simplify_const_unary_operation): Likewise. (simplify_binary_operation_1): Likewise. (simplify_const_binary_operation): Likewise. (simplify_relational_operation): Likewise. (simplify_const_relational_operation): Likewise. (simplify_immed_subreg): Likewise. * emit-rtl.c (gen_lowpart_common): Likewise. * expmed.c (expand_mult): Likewise. * stor-layout.c (layout_type): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107322 138bc75d-0d04-0410-961f-82ee72b054a4
* * fold-const.c (const_binop): Don't constant fold the operationebotcazou2005-11-161-0/+11
| | | | | | | | | if the result has overflowed and flag_trapping_math. * simplify-rtx.c (simplify_const_binary_operation): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107092 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/23831ian2005-09-261-1/+3
| | | | | | | | * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104650 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_binary_operation_1): Correct theian2005-09-061-2/+2
| | | | | | | condition for detecting cases like (a&a) and (a^a). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103955 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/23098jakub2005-09-061-0/+8
| | | | | | | | | | | | | | * cse.c (fold_rtx_mem): Call delegitimize_address target hook. * simplify-rtx.c (constant_pool_reference_p): New function. * rtl.h (constant_pool_reference_p): New prototype. * config/i386/i386.md (pushf split, mov[sdx]f split): Use constant_pool_reference_p in condition and avoid_constant_pool_reference in preparation statements. * gcc.target/i386/pr23098.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103935 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/20365amylaar2005-09-021-4/+14
| | | | | | | | | | * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg to short. New member ix. (simplify_plus_minus_op_data_cmp): Break ties using ix member. (simplify_plus_minus): Initialize ix members before calling qsort. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103771 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clearjakub2005-08-211-1/+1
| | | | | | | | | up to elem_bitsize bits, not max_bitsize. * gcc.target/i386/sse-4.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103318 138bc75d-0d04-0410-961f-82ee72b054a4
* * simplify-rtx.c (simplify_const_relational_operation): Whenuweigand2005-08-161-1/+11
| | | | | | | extracting arguments of a COMPARE, recompute the mode as well. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103143 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-07-27 James A. Morrison <phython@gcc.gnu.org>phython2005-07-281-2/+6
| | | | | | | | | PR rtl-optimization/23047 * simplify-rtx.c (simplify_const_relational_operation): Respect flag_wrapv for comparisons with ABS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102459 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101317 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-05-26 Paolo Bonzini <bonzini@gnu.org>bonzini2005-05-261-14/+29
| | | | | | | | * simplify-rtx.c (avoid_constant_pool_reference): Support offsetted addresses in the constant pool. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100198 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-opt/21163rth2005-04-241-49/+61
| | | | | | | | | | | | * simplify-rtx.c (simplify_binary_operation) <IOR>: Check for SCALAR_INT_MODE_P instead of not MODE_CC before returning constm1_rtx. <AND, LSHIFTRT, UMIN>: Use CONST0_RTX. <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX. <DIV, MOD>: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98678 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-opt/21102rth2005-04-231-2/+2
| | | | | | | | * simplify-rtx.c (simplify_binary_operation): Fix mode check before performing some integral scalar simplifications. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98631 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix result of folding of xor operation on two identical vectors.fjahanian2005-04-131-1/+1
| | | | | | | OKed by Roger Sayle. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98107 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/20093jsm282005-04-071-1/+1
| | | | | | | | * simplify-rtx.c (simplify_unary_operation_1): Check SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97775 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:aoliva2005-03-241-18/+72
| | | | | | | | | | | | | | PR rtl-optimization/20532 * simplify-rtx.c (simplify_binary_operation_1): Protect from overflow when adding coefficients for PLUS or MINUS. (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of two as multiplier. gcc/testsuite/ChangeLog: PR rtl-optimization/20532 * gcc.target/i386/badshift.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96982 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-03-21 Paolo Bonzini <bonzini@gnu.org>bonzini2005-03-211-22/+3
| | | | | | | | | | | * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit. * rtlhooks.c (gen_lowpart_no_emit_general): New. * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare. (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New. * simplify-rtx.c (simplify_binary_operation_1): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96799 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-opt/20412pinskia2005-03-101-1/+1
| | | | | | | | | | | * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the correct mode. PR rtl-opt/20412 * gcc.c-torture/compile/pr20412.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96264 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (simplify_and_const_int): Use gen_int_mode insteadkazu2005-03-051-5/+2
| | | | | | | | | | | | of GEN_INT (trunc_int_for_mode (...)). * loop-iv.c (iv_number_of_iterations): Likewise. * postreload.c (reload_cse_move2add): Likewise. * simplify-rtx.c (simplify_const_unary_operation, simplify_const_binary_operation): Likewise. * stor-layout.c (get_mode_bounds): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95935 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-02-28 Paolo Bonzini <bonzini@gnu.org>bonzini2005-02-281-1230/+1265
| | | | | | | | | | | | | | * simplify-rtx.c (simplify_unary_operation_1, simplify_const_unary_operation): New, extracted from... (simplify_unary_operation): ... this one. (simplify_binary_operation_1, simplify_const_binary_operation): New, extracted from... (simplify_binary_operation): ... this one. * rtl.h (simplify_const_unary_operation, simplify_const_binary_operation): Add prototypes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95686 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/20018sayle2005-02-231-0/+2
| | | | | | | | | PR rtl-optimization/20097 * simplify-rtx.c (simplify_relational_operation_1): Avoid creating BImode SUBREGs of SImode registers which confuse the ia64 backend. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95461 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud