Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
834452d2
Commit
834452d2
authored
May 23, 2001
by
Mark Mitchell
Committed by
Mark Mitchell
May 23, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* jump.c (mark_jump_label): Fix thinko in 2001-05-19 change.
From-SVN: r42491
parent
7cc72e9c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
39 deletions
+32
-39
gcc/ChangeLog
+4
-0
gcc/jump.c
+28
-39
No files found.
gcc/ChangeLog
View file @
834452d2
2001
-
05
-
23
Mark
Mitchell
<
mark
@codesourcery
.
com
>
*
jump
.
c
(
mark_jump_label
)
:
Fix
thinko
in
2001
-
05
-
19
change
.
2001
-
05
-
23
Richard
Henderson
<
rth
@redhat
.
com
>
2001
-
05
-
23
Richard
Henderson
<
rth
@redhat
.
com
>
*
function
.
c
(
expand_function_start
)
:
Always
use
a
pseudo
*
function
.
c
(
expand_function_start
)
:
Always
use
a
pseudo
...
...
gcc/jump.c
View file @
834452d2
...
@@ -2542,47 +2542,36 @@ mark_jump_label (x, insn, cross_jump, in_mem)
...
@@ -2542,47 +2542,36 @@ mark_jump_label (x, insn, cross_jump, in_mem)
{
{
if
(
GET_CODE
(
insn
)
==
JUMP_INSN
)
if
(
GET_CODE
(
insn
)
==
JUMP_INSN
)
JUMP_LABEL
(
insn
)
=
label
;
JUMP_LABEL
(
insn
)
=
label
;
else
/* If we've changed the label, update notes accordingly. */
else
if
(
label
!=
olabel
)
{
{
rtx
note
;
/* If we've changed the label, update notes accordingly. */
if
(
label
!=
olabel
)
/* We may have a REG_LABEL note to indicate that this
{
instruction uses the label. */
rtx
note
;
note
=
find_reg_note
(
insn
,
REG_LABEL
,
olabel
);
if
(
note
)
/* We may have a REG_LABEL note to indicate that this
XEXP
(
note
,
0
)
=
label
;
instruction uses the label. */
note
=
find_reg_note
(
insn
,
REG_LABEL
,
olabel
);
/* We may also have a REG_EQUAL note to indicate that
if
(
note
)
a register is being set to the address of the
XEXP
(
note
,
0
)
=
label
;
label. */
note
=
find_reg_note
(
insn
,
REG_EQUAL
,
NULL_RTX
);
/* We may also have a REG_EQUAL note to indicate that
if
(
note
a register is being set to the address of the
&&
GET_CODE
(
XEXP
(
note
,
0
))
==
LABEL_REF
label. */
&&
XEXP
(
XEXP
(
note
,
0
),
0
)
==
olabel
)
note
=
find_reg_note
(
insn
,
REG_EQUAL
,
NULL_RTX
);
XEXP
(
XEXP
(
note
,
0
),
0
)
=
label
;
if
(
note
}
&&
GET_CODE
(
XEXP
(
note
,
0
))
==
LABEL_REF
&&
XEXP
(
XEXP
(
note
,
0
),
0
)
==
olabel
)
XEXP
(
XEXP
(
note
,
0
),
0
)
=
label
;
}
/* Otherwise, add a REG_LABEL note for LABEL unless there already
/* Add a REG_LABEL note for LABEL unless there already
is one. */
is one. All uses of a label, except for labels
else
if
(
!
find_reg_note
(
insn
,
REG_LABEL
,
label
))
that are the targets of jumps, must have a
{
REG_LABEL note. */
/* This code used to ignore labels which refered to dispatch
if
(
!
find_reg_note
(
insn
,
REG_LABEL
,
label
))
tables to avoid flow.c generating worse code.
REG_NOTES
(
insn
)
=
gen_rtx_INSN_LIST
(
REG_LABEL
,
label
,
REG_NOTES
(
insn
));
However, in the presense of global optimizations like
gcse which call find_basic_blocks without calling
life_analysis, not recording such labels will lead
to compiler aborts because of inconsistencies in the
flow graph. So we go ahead and record the label.
It may also be the case that the optimization argument
is no longer valid because of the more accurate cfg
we build in find_basic_blocks -- it no longer pessimizes
code when it finds a REG_LABEL note. */
REG_NOTES
(
insn
)
=
gen_rtx_INSN_LIST
(
REG_LABEL
,
label
,
REG_NOTES
(
insn
));
}
}
}
}
return
;
return
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment