aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
AgeCommit message (Collapse)AuthorFilesLines
1997-04-14(get_last_value_validate): New argument insn.Jim Wilson1-7/+21
Add check for memory reference clobbered by later store. (record_value_for_reg, get_last_values): Pass in new argument. From-SVN: r13900
1997-04-03(move_deaths): Handle partial REG_DEAD note forJim Wilson1-5/+15
multi-reg hard register. From-SVN: r13836
1997-03-28combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT REG_NOTES.Doug Evans1-0/+8
* combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT REG_NOTES. From-SVN: r13811
1997-03-25Fix typo in comment.Richard Kenner1-1/+1
From-SVN: r13792
1997-03-18(if_then_else_cond): Call copy_rtx to prevent sharing.Jim Wilson1-0/+8
From-SVN: r13736
1997-03-10(simplify_rtx, case SUBREG): Fix direction of test when calling ↵Richard Kenner1-3/+11
operand_subword... (simplify_rtx, case SUBREG): Fix direction of test when calling operand_subword; use inline code intead of subreg_lowpart_p. From-SVN: r13698
1997-03-03combine.c (simplify_rtx): Do nothing with (truncate:mode) if mode is a ↵Jeff Law1-0/+6
partial integer mode. * combine.c (simplify_rtx): Do nothing with (truncate:mode) if mode is a partial integer mode. From-SVN: r13686
1997-02-19combine.c (find_split_point): Don't turn a SIGN_EXTEND into a series of ↵Jeff Law1-0/+8
shifts if... * combine.c (find_split_point): Don't turn a SIGN_EXTEND into a series of shifts if either mode is a partial integer mode. From-SVN: r13665
1997-02-15Update comments.Richard Kenner1-1/+6
From-SVN: r13636
1997-02-02(find_split_point, case SET): Fix error in last change.Richard Kenner1-2/+2
From-SVN: r13579
1997-01-29Add a case where reg_n_refs is clearedIan Lance Taylor1-1/+3
From-SVN: r13561
1997-01-27(simplify_rtx): Don't do anything with if_then_else_cond result if both one ↵Richard Kenner1-52/+56
arm and the input are a comparison. (simplify_rtx): Don't do anything with if_then_else_cond result if both one arm and the input are a comparison. (simplify_{rtx,if_then_else,logical,shift_const}): Don't test STORE_FLAG_VALUE with #if; properly test for just sign bit. (num_sign_bit_copies, if_then_else_cond): Likewise. From-SVN: r13551
1997-01-04(find_split_point, case SET): If SET_SRC is NE and STORE_FLAG_VALUE is -1, ↵Richard Kenner1-3/+26
see if we can convert into NEG of shift. (find_split_point, case SET): If SET_SRC is NE and STORE_FLAG_VALUE is -1, see if we can convert into NEG of shift. (force_to_mode, case NE): Make condition stricter. From-SVN: r13370
1996-12-16(nonzero_bits): Ifdef out calls to num_sign_bit_copies.Jim Wilson1-0/+18
Add dummy define/undef for num_sign_bit_copies. From-SVN: r13314
1996-12-16(simplify_comparison): Use mode_width as shift countJim Wilson1-4/+8
only if it is less than or equal to HOST_BITS_PER_WIDE_INT. From-SVN: r13312
1996-12-13Check SMALL_REGISTER_CLASSES at runtimeIan Lance Taylor1-5/+8
From-SVN: r13302
1996-12-11(try_combine): When splitting an insn, check for the new I2 setting aRichard Kenner1-1/+6
SUBREG. From-SVN: r13286
1996-12-10(combinable_i3pat): Bring back to sync with can_combine_p.Richard Kenner1-2/+6
From-SVN: r13274
1996-11-15(try_combine): Properly copy an rtvec.Richard Kenner1-1/+1
From-SVN: r13166
1996-10-29Add some optimizations for TRUNCATE and ZERO_EXTENDIan Lance Taylor1-0/+121
From-SVN: r13058
1996-10-23(can_combine_p): When SMALL_REGISTER_CLASSES is defined, avoidRichard Kenner1-1/+6
substituting a return register into I3. From-SVN: r13006
1996-09-23(can_combine_p): Even if SMALL_REGISTER_CLASSES, know lifetime notRichard Kenner1-1/+1
extended if all_adjacent set. From-SVN: r12789
1996-08-03combine.c (rtx_equal_for_field_assignment_p): Check for get_last_value ↵Jeff Law1-2/+8
returning (CLOBBER (CONST_INT 0)). * combine.c (rtx_equal_for_field_assignment_p): Check for get_last_value returning (CLOBBER (CONST_INT 0)). From-SVN: r12590
1996-07-22(undo_all): Clear previous_undos field.Jim Wilson1-1/+1
From-SVN: r12544
1996-07-03formatting tweaksMike Stump1-45/+48
From-SVN: r12390
1996-06-28(previous_num_undos): Deleted variable.Richard Kenner1-53/+66
(MAX_UNDO): Deleted macro. (struct undo): New field, next. (struct undobuf): Deleted num_undos and undo. New fields undos, frees, and previous_undos. (SUBST, SUBST_INT): Rework to allocate memory and chain undo entries. (combine_instructions): Initialize undobuf.{undos,previous_undos}, not undobuf.num_undo and previous_num_undos. (try_combine): Likewise. (undo_all, gen_rtx_combine): Rework to use new data structures. From-SVN: r12372
1996-06-27(force_to_mode, case NE): Fix typo and logical error.Richard Kenner1-5/+7
(simplify_comparison): Don't swap args if op1 is CONST_INT. From-SVN: r12339
1996-06-19(move_deaths): New parameter maybe_kill_insn.Richard Kenner1-11/+28
Don't move note if reg killed by maybe_kill_insn. (try_combine): Pass new arg to move_deaths. From-SVN: r12311
1996-06-18(try_combine): Don't use split if dest of new I2 is used between I2Richard Kenner1-2/+5
and I3. From-SVN: r12293
1996-05-23(set_nonzero_bits_and_sign_copies): SetJim Wilson1-2/+2
reg_sign_bit_copies to one not zero to indicate that the value is unknown. From-SVN: r12086
1996-05-22(nonzero_bits): Don't assume arg pointer has sameJim Wilson1-1/+6
alignment as stack pointer. From-SVN: r12079
1996-05-22(init_reg_last_arrays, setup_incoming_promotions): Correct prototypes.Richard Kenner1-2/+2
From-SVN: r12073
1996-05-17(insn_cuid): New function.Richard Kenner1-3/+19
(INSN_CUID): Sometimes call it. From-SVN: r11986
1996-04-16(make_field_assignment): Allow XOR in final case.Richard Kenner1-3/+3
From-SVN: r11820
1996-04-15(expand_field_assignment): Take SUBREG_WORD into account when have ↵Richard Kenner1-8/+10
STRICT_LOW_PART. (expand_field_assignment): Take SUBREG_WORD into account when have STRICT_LOW_PART. (make_extraction): Make a STRICT_LOW_PART at any low-order word. From-SVN: r11775
1996-04-14(try_combine): When substituting in output of I2, ensure dest isn'tRichard Kenner1-1/+2
clobbered in I2. From-SVN: r11773
1996-04-14(combine_instructions): In initial scan of insns, handle a REG_INC note's ↵Richard Kenner1-1/+7
affect on sign bit copies and nonzero bits. (combine_instructions): In initial scan of insns, handle a REG_INC note's affect on sign bit copies and nonzero bits. (set_nonzero_bits_and_sign_copies): Treat a zero SET arg as a CLOBBER. From-SVN: r11762
1996-03-23(make_extraction): In BITS_BIG_ENDIAN correction of POS, need to treatDoug Evans1-6/+15
MEM and REG differently. From-SVN: r11603
1996-03-18(simplify_if_then_else): Allow for case that condition might no longerRichard Kenner1-0/+4
be a condition. From-SVN: r11555
1996-03-17(find_split_point): Handle NULL return from make_extraction.Doug Evans1-9/+23
(make_field_assignment): Likewise. From-SVN: r11552
1996-03-16(make_extraction): Correct typo in force_to_mode call in previous change.Richard Kenner1-6/+16
Return 0 if pos+len out of range of want desired mode. From-SVN: r11544
1996-03-11(make_extraction): Use proper mode for INNER in all cases.Richard Kenner1-36/+31
(simplify_comparison, case ZERO_EXTRACT): For bits big endian and no extzv, use BITS_PER_WORD. From-SVN: r11510
1996-02-19(force_to_mode, case IOR): Fix typo in commuting IOR and LSHIFTRT.Richard Kenner1-1/+2
From-SVN: r11313
1996-02-13(force_to_mode, num_sign_bit_copies, simplify_comparison): FixRichard Kenner1-7/+7
precedence errors. From-SVN: r11251
1996-01-30(nonzero_bits, case REG): Ignore REG_POINTER_ALIGNMENT.Richard Kenner1-6/+11
Restore old code for SP, but use it for all pointers to defined locations in the frame. From-SVN: r11123
1996-01-01(rtx_equal_for_field_assignment_p): New function.Richard Kenner1-24/+61
(make_field_assignment): Use it. Expand compound operations on both sides of an IOR. Properly adjust constand in IOR when computing bit position. From-SVN: r10927
1995-12-27(set_nonzero_bits_and_sign_copies): Handle reg even if only set once and in ↵Richard Kenner1-14/+9
one basic block. (set_nonzero_bits_and_sign_copies): Handle reg even if only set once and in one basic block. (nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of explicit alignment of registers pointing into frame. From-SVN: r10870
1995-12-18(simplify_rtx, case SUBREG): For SUBREG of a constant,Jim Wilson1-1/+5
use <= instead of < when comparing mode sizes. (force_to_mode, case NOT): Use full mask inside the NOT operation. From-SVN: r10814
1995-12-17regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's defined to avoid ↵Jeff Law1-0/+5
useless work. * regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's defined to avoid useless work. * combine.c (find_split_point): Try to split SET_DEST just like we do for SET_SRC. From-SVN: r10790
1995-12-17(try_combine): When checking for two sets of the same register in a split ↵Richard Kenner1-4/+15
insn... (try_combine): When checking for two sets of the same register in a split insn, also test for setting a ZERO_EXTRACT, STRICT_LOW_PART, or SUBREG. From-SVN: r10783