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
8fb1e50e
Commit
8fb1e50e
authored
Nov 07, 2001
by
Graham Stott
Committed by
Graham Stott
Nov 07, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* cse.c (cse_insn): Emit BARRIER after unconditional jump.
From-SVN: r46824
parent
b972dd02
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
5 deletions
+17
-5
gcc/ChangeLog
+4
-0
gcc/cse.c
+13
-5
No files found.
gcc/ChangeLog
View file @
8fb1e50e
2001
-
11
-
07
Graham
Stott
<
grahams
@redhat
.
com
>
*
cse
.
c
(
cse_insn
)
:
Emit
BARRIER
after
unconditional
jump
.
Wed
Nov
7
13
:
33
:
34
CET
2001
Jan
Hubicka
<
jh
@suse
.
cz
>
Wed
Nov
7
13
:
33
:
34
CET
2001
Jan
Hubicka
<
jh
@suse
.
cz
>
*
expmed
.
c
(
expand_mult
)
:
Force
operand
to
register
before
computing
*
expmed
.
c
(
expand_mult
)
:
Force
operand
to
register
before
computing
...
...
gcc/cse.c
View file @
8fb1e50e
...
@@ -5767,6 +5767,11 @@ cse_insn (insn, libcall_insn)
...
@@ -5767,6 +5767,11 @@ cse_insn (insn, libcall_insn)
be a conditional or computed branch. */
be a conditional or computed branch. */
else
if
(
dest
==
pc_rtx
&&
GET_CODE
(
src
)
==
LABEL_REF
)
else
if
(
dest
==
pc_rtx
&&
GET_CODE
(
src
)
==
LABEL_REF
)
{
{
/* Now emit a BARRIER after the unconditional jump. */
if
(
NEXT_INSN
(
insn
)
==
0
||
GET_CODE
(
NEXT_INSN
(
insn
))
!=
BARRIER
)
emit_barrier_after
(
insn
);
/* We reemit the jump in as many cases as possible just in
/* We reemit the jump in as many cases as possible just in
case the form of an unconditional jump is significantly
case the form of an unconditional jump is significantly
different than a computed jump or conditional jump.
different than a computed jump or conditional jump.
...
@@ -5777,20 +5782,23 @@ cse_insn (insn, libcall_insn)
...
@@ -5777,20 +5782,23 @@ cse_insn (insn, libcall_insn)
if
(
n_sets
==
1
)
if
(
n_sets
==
1
)
{
{
rtx
new
=
emit_jump_insn_before
(
gen_jump
(
XEXP
(
src
,
0
)),
insn
);
rtx
new
=
emit_jump_insn_before
(
gen_jump
(
XEXP
(
src
,
0
)),
insn
);
JUMP_LABEL
(
new
)
=
XEXP
(
src
,
0
);
JUMP_LABEL
(
new
)
=
XEXP
(
src
,
0
);
LABEL_NUSES
(
XEXP
(
src
,
0
))
++
;
LABEL_NUSES
(
XEXP
(
src
,
0
))
++
;
insn
=
new
;
insn
=
new
;
/* Now emit a BARRIER after the unconditional jump. */
if
(
NEXT_INSN
(
insn
)
==
0
||
GET_CODE
(
NEXT_INSN
(
insn
))
!=
BARRIER
)
emit_barrier_after
(
insn
);
}
}
else
else
INSN_CODE
(
insn
)
=
-
1
;
INSN_CODE
(
insn
)
=
-
1
;
never_reached_warning
(
insn
);
never_reached_warning
(
insn
);
/* Now emit a BARRIER after the unconditional jump. Do not bother
/* Do not bother deleting any unreachable code,
deleting any unreachable code, let jump/flow do that. */
let jump/flow do that. */
if
(
NEXT_INSN
(
insn
)
!=
0
&&
GET_CODE
(
NEXT_INSN
(
insn
))
!=
BARRIER
)
emit_barrier_after
(
insn
);
cse_jumps_altered
=
1
;
cse_jumps_altered
=
1
;
sets
[
i
].
rtl
=
0
;
sets
[
i
].
rtl
=
0
;
...
...
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