summaryrefslogtreecommitdiffstats
path: root/gcc/cse.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Update comments.kenner1995-01-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8811 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation): Cast constant 1 to HOST_WIDE_INTwilson1994-12-291-1/+1
| | | | | | | before shifting left to form mask. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8707 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation): Do (x - (x & y)) -> (x & ~y).tege1994-11-171-0/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8494 138bc75d-0d04-0410-961f-82ee72b054a4
* Check target endianness at run time, not compile timeian1994-11-161-15/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8470 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation, case TRUNCATE): Set LV and HV.kenner1994-11-011-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8375 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Don't record a DEST a paradoxical SUBREG and SRC is akenner1994-10-281-1/+11
| | | | | | | SIGN_EXTEND or ZERO_EXTEND. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8354 138bc75d-0d04-0410-961f-82ee72b054a4
* (merge_equiv_classes, cse_insn): Call rehash_using_regwilson1994-10-201-18/+22
| | | | | | | | | after insert_regs. (canon_hash): Don't use qty_const to compute hash code for a register. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8319 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Don't call force_const_mem on (const (truncate)).kenner1994-10-061-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8231 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix prototype for invalidate.wilson1994-09-231-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8127 138bc75d-0d04-0410-961f-82ee72b054a4
* (invalidate): New parameter FULL_MODE. All callers changed.wilson1994-09-231-27/+38
| | | | | | | | | (set_nonvarying_address_components): Modify initial comment. (cse_insn): When call invalidate for dest, use the actual dest not inner_dest. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8124 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_around_loop): Don't invalidate SUBREG unless it's a SUBREG of akenner1994-09-151-1/+2
| | | | | | | REG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8085 138bc75d-0d04-0410-961f-82ee72b054a4
* (invalidate_for_call): Properly set IN_TABLE.kenner1994-09-101-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8073 138bc75d-0d04-0410-961f-82ee72b054a4
* (record_jump_cond): Don't do anything if OP0 and OP1 are alreadykenner1994-08-251-0/+7
| | | | | | | equivalent. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7984 138bc75d-0d04-0410-961f-82ee72b054a4
* (fold_rtx): When folding tablejump, allow LABEL_REF to be in arg0;kenner1994-08-171-2/+25
| | | | | | | also allow other arg to be MINUS, not just be equivalent to it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7939 138bc75d-0d04-0410-961f-82ee72b054a4
* (set_nonvarying_address_components): If BASE is CONST_INT, add value to startkenner1994-08-121-7/+6
| | | | | | | | and set BASE to const0_rtx. (refers_to_mem_p): Don't do it here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7911 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation): Clean up some mode and size checks withkenner1994-08-021-6/+6
| | | | | | | CONST_DOUBLEs; TRUNCATE should do nothing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7853 138bc75d-0d04-0410-961f-82ee72b054a4
* (fold_rtx, case MEM): Surround TRUNCATE for jump table entry with a CONST.kenner1994-07-301-8/+32
| | | | | | | | (fold_rtx, case '1'): Handle operand 0 of a CONST. (fold_rtx, case PLUS): Handle (const (minus (label_ref) (label_ref))). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7832 138bc75d-0d04-0410-961f-82ee72b054a4
* (canon_hash, exp_equiv_p): Refer to string in SYMBOL_REF with XSTR,kenner1994-07-041-2/+4
| | | | | | | not XEXP. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7650 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation, case UNSIGNED_FLOAT): Add missing cast tokenner1994-06-231-1/+1
| | | | | | | unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7547 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation, case MINUS): Check mode of op0,erich1994-06-171-1/+1
| | | | | | | instead of op1, before calling plus_constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7510 138bc75d-0d04-0410-961f-82ee72b054a4
* (set_nonvarying_address_components): Rework and also handle an ANDkenner1994-06-161-13/+51
| | | | | | | used for non-aligned accesses. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7503 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation): Fix typo in last change.kenner1994-06-151-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7495 138bc75d-0d04-0410-961f-82ee72b054a4
* Cast pointer operands to bzero, bcopy, and bcmp to (char *).kenner1994-06-141-8/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7472 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation): Correctly and consistently handlekenner1994-06-141-36/+33
| | | | | | | CONST_INT cases for FLOAT and UNSIGNED_FLOAT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7470 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Correctly check for two modes being the same number ofkenner1994-05-131-2/+3
| | | | | | | words. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7292 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Set src_eqv if the dest is a STRICT_LOW_PART.wilson1994-05-111-2/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7278 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Invalidate CLOBBERed registers.kenner1994-05-061-8/+20
| | | | | | | (count_reg_usage): Count registers in USE rtls on CALL_INSNs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7237 138bc75d-0d04-0410-961f-82ee72b054a4
* Use CONST_DOUBLE_FROM_REAL_VALUE macro for immed_real_const_1.kenner1994-04-211-5/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7113 138bc75d-0d04-0410-961f-82ee72b054a4
* No longer handle LSHIFT.kenner1994-04-101-8/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7020 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Add missing definition of var TEM; clean up shadowed uses.kenner1994-03-301-9/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6920 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Remove decl of unused variable TEM.kenner1994-03-251-1/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6877 138bc75d-0d04-0410-961f-82ee72b054a4
* (FIXED_REGNO_P): Treate global regs as fixed.kenner1994-03-211-5/+12
| | | | | | | | | | (CHEAP_REGNO): Renamed from CHEAP_REG. (CHEAP_REG): New macro; user var in hard reg is cheap. (COST): Pass RTL to CHEAP_REG, not regno. (rtx_cost, case REG): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6836 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation): Protect real_value_truncate insidekenner1994-03-131-1/+1
| | | | | | | handler. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6767 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_relational_operation): Fix typos; usekenner1994-03-091-2/+2
| | | | | | | ARG_POINTER_REGNUM and FRAME_POINTER_REGNUM in condtionals. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6730 138bc75d-0d04-0410-961f-82ee72b054a4
* (count_reg_usage, case SET): If SRC has side-effects, count a usage ofkenner1994-02-261-1/+10
| | | | | | | DEST in it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6631 138bc75d-0d04-0410-961f-82ee72b054a4
* Conditionalize special treatment oftege1994-02-121-1/+1
| | | | | | | PIC_OFFSET_TABLE_REGNUM on PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6539 138bc75d-0d04-0410-961f-82ee72b054a4
* (canon_hash, case LABEL_REF, SYMBOL_REF): Avoid warning on 64-bitkenner1994-02-061-3/+4
| | | | | | | machines. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6487 138bc75d-0d04-0410-961f-82ee72b054a4
* (memory_extend_rtx): New variable.kenner1994-02-051-1/+60
| | | | | | | | (cse_main): Initialize it. (cse_insn): See if we have already loaded a MEM in a wider mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6484 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_best_addr): Limit number of cse_gen_binary calls towilson1994-02-011-1/+9
| | | | | | | 20 per iteration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6449 138bc75d-0d04-0410-961f-82ee72b054a4
* (HASHBITS): Removed.kenner1994-01-251-98/+92
| | | | | | | | | | | | | (HASH, struct set, canon_hash, safe_hash, remove_from_table): Generate and use unsigned hash values, to avoid potential trouble with signed shift/overflow. Also name variables consistently: "hash", not "hash_code". (lookup, lookup_for_remove, insert, merge_equiv_classes): Likewise. (invalidate, rehash_using_reg, invalidate_for_call): Likewise. (find_best_addr, record_jump_cond, cse_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6431 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_relational_operation): Don't do anything with CC0 inkenner1994-01-111-3/+7
| | | | | | | addition to MODE_CC values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6376 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_relational_operation): Correct declaration of variableskenner1994-01-021-2/+3
| | | | | | | holding parts of constants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6351 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_relational_operation): Rewrite and simplify.kenner1993-12-311-201/+143
| | | | | | | Add case when we can simplify A-B for compare of A and B. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6344 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation, case MULT): Don't convert to ASHIFT ifkenner1993-12-291-2/+6
| | | | | | | still generating RTL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6340 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation, fold_rtx): Allow some FP simplicationskenner1993-12-271-22/+27
| | | | | | | | | with -ffast-math. (simplify_relational_operation): FP comparisons can be reversed if -ffast-math is specified. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6334 138bc75d-0d04-0410-961f-82ee72b054a4
* (count_reg_usage): Don't count a register used within a SET that sets it.kenner1993-12-261-14/+20
| | | | | | | (delete_dead_from_cse): Pass new parm to count_reg_usage. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6327 138bc75d-0d04-0410-961f-82ee72b054a4
* (fold_rtx, case PLUS): If we have (plus A B), A is equivalent to akenner1993-12-261-0/+21
| | | | | | | | negative constant, and the negated constant is in register, convert to (minus A C) where C is the register containing the negated constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6326 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operations): Check that operations really arekenner1993-12-251-1/+1
| | | | | | | double-word before doing them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6310 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation): Fix typo in CONST_DOUBLE change.kenner1993-12-251-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6309 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation, case PLUS, MINUS):kenner1993-12-251-0/+108
| | | | | | | Simplify such things as (X >> 1) - X. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6308 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud