diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-20 11:30:13 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-20 11:30:13 +0000 |
commit | d82dc0a7b0acf3d13281ce651cb28a47e4fdf3df (patch) | |
tree | 68a78b6db80ae50443d9150291420d446bb9de23 /gcc/integrate.c | |
parent | 102971760a9ac3115d1e9120f5cda6f2c2d02110 (diff) | |
download | gcc-d82dc0a7b0acf3d13281ce651cb28a47e4fdf3df.tar.gz |
* integrate.c (copy_insn_list): handle
NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL.
(copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL
identically as to CODE_LABEL.
* fold-const (fold): Convert A/B/C to A/(B*C) and
A/(B/C) to (A/B)*C
* except.c (connect_post_landing_pads): Delete the RESX insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44193 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r-- | gcc/integrate.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index cfab58a6f6e..83d3819b832 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1555,6 +1555,14 @@ copy_insn_list (insns, map, static_chain_value) break; case NOTE: + if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED_LABEL) + { + copy = emit_label (get_label_from_map (map, + CODE_LABEL_NUMBER (insn))); + map->const_age++; + break; + } + /* NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG are discarded because it is important to have only one of each in the current function. @@ -1992,18 +2000,18 @@ copy_rtx_and_substitute (orig, map, for_lhs) copy = SUBREG_REG (copy); return gen_rtx_fmt_e (code, VOIDmode, copy); + /* We need to handle "deleted" labels that appear in the DECL_RTL + of a LABEL_DECL. */ + case NOTE: + if (NOTE_LINE_NUMBER (orig) != NOTE_INSN_DELETED_LABEL) + break; + + /* ... FALLTHRU ... */ case CODE_LABEL: LABEL_PRESERVE_P (get_label_from_map (map, CODE_LABEL_NUMBER (orig))) = LABEL_PRESERVE_P (orig); return get_label_from_map (map, CODE_LABEL_NUMBER (orig)); - /* We need to handle "deleted" labels that appear in the DECL_RTL - of a LABEL_DECL. */ - case NOTE: - if (NOTE_LINE_NUMBER (orig) == NOTE_INSN_DELETED_LABEL) - return map->insn_map[INSN_UID (orig)]; - break; - case LABEL_REF: copy = gen_rtx_LABEL_REF |