gcse.c (117395) | gcse.c (119256) |
---|---|
1/* Global common subexpression elimination/Partial redundancy elimination 2 and global constant/copy propagation for GNU compiler. 3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 4 Free Software Foundation, Inc. 5 6This file is part of GCC. 7 8GCC is free software; you can redistribute it and/or modify it under --- 3940 unchanged lines hidden (view full) --- 3949 the set given our substitution. We could perhaps try this for multiple 3950 SETs, but it probably won't buy us anything. */ 3951 src = simplify_replace_rtx (SET_SRC (set), from, to); 3952 3953 if (!rtx_equal_p (src, SET_SRC (set)) 3954 && validate_change (insn, &SET_SRC (set), src, 0)) 3955 success = 1; 3956 | 1/* Global common subexpression elimination/Partial redundancy elimination 2 and global constant/copy propagation for GNU compiler. 3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 4 Free Software Foundation, Inc. 5 6This file is part of GCC. 7 8GCC is free software; you can redistribute it and/or modify it under --- 3940 unchanged lines hidden (view full) --- 3949 the set given our substitution. We could perhaps try this for multiple 3950 SETs, but it probably won't buy us anything. */ 3951 src = simplify_replace_rtx (SET_SRC (set), from, to); 3952 3953 if (!rtx_equal_p (src, SET_SRC (set)) 3954 && validate_change (insn, &SET_SRC (set), src, 0)) 3955 success = 1; 3956 |
3957 /* If we've failed to do replacement, have a single SET, and don't already 3958 have a note, add a REG_EQUAL note to not lose information. */ 3959 if (!success && note == 0 && set != 0) | 3957 /* If we've failed to do replacement, have a single SET, don't already 3958 have a note, and have no special SET, add a REG_EQUAL note to not 3959 lose information. */ 3960 if (!success && note == 0 && set != 0 3961 && GET_CODE (XEXP (set, 0)) != ZERO_EXTRACT 3962 && GET_CODE (XEXP (set, 0)) != SIGN_EXTRACT) |
3960 note = set_unique_reg_note (insn, REG_EQUAL, copy_rtx (src)); 3961 } 3962 3963 /* If there is already a NOTE, update the expression in it with our 3964 replacement. */ 3965 else if (note != 0) 3966 XEXP (note, 0) = simplify_replace_rtx (XEXP (note, 0), from, to); 3967 --- 3507 unchanged lines hidden --- | 3963 note = set_unique_reg_note (insn, REG_EQUAL, copy_rtx (src)); 3964 } 3965 3966 /* If there is already a NOTE, update the expression in it with our 3967 replacement. */ 3968 else if (note != 0) 3969 XEXP (note, 0) = simplify_replace_rtx (XEXP (note, 0), from, to); 3970 --- 3507 unchanged lines hidden --- |