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
6b67ec08
Commit
6b67ec08
authored
May 06, 1994
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(flow_analysis, find_basic_blocks): Change from USE and CLOBBER insns
to using CALL_INSN_FUNCTION_USAGE. From-SVN: r7242
parent
8c99eaf6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
21 deletions
+13
-21
gcc/flow.c
+13
-21
No files found.
gcc/flow.c
View file @
6b67ec08
...
...
@@ -347,17 +347,10 @@ flow_analysis (f, nregs, file)
||
(
GET_RTX_CLASS
(
code
)
==
'i'
&&
(
prev_code
==
JUMP_INSN
||
(
prev_code
==
CALL_INSN
&&
nonlocal_label_list
!=
0
/* Ignore a CLOBBER after a CALL_INSN here. */
&&
!
(
code
==
INSN
&&
GET_CODE
(
PATTERN
(
insn
))
==
CLOBBER
))
&&
nonlocal_label_list
!=
0
)
||
prev_code
==
BARRIER
)))
i
++
;
if
(
code
!=
NOTE
/* Skip a CLOBBER after a CALL_INSN. See similar code in
find_basic_blocks. */
&&
!
(
prev_code
==
CALL_INSN
&&
code
==
INSN
&&
GET_CODE
(
PATTERN
(
insn
))
==
CLOBBER
))
if
(
code
!=
NOTE
)
prev_code
=
code
;
}
}
...
...
@@ -443,11 +436,7 @@ find_basic_blocks (f, nonlocal_label_list)
||
(
GET_RTX_CLASS
(
code
)
==
'i'
&&
(
prev_code
==
JUMP_INSN
||
(
prev_code
==
CALL_INSN
&&
nonlocal_label_list
!=
0
/* Ignore if CLOBBER since we consider this
part of the CALL. See below. */
&&
!
(
code
==
INSN
&&
GET_CODE
(
PATTERN
(
insn
))
==
CLOBBER
))
&&
nonlocal_label_list
!=
0
)
||
prev_code
==
BARRIER
)))
{
basic_block_head
[
++
i
]
=
insn
;
...
...
@@ -481,13 +470,7 @@ find_basic_blocks (f, nonlocal_label_list)
BLOCK_NUM
(
insn
)
=
i
;
/* Don't separate a CALL_INSN from following CLOBBER insns. This is a
kludge that will go away when each CALL_INSN records its USE and
CLOBBERs. */
if
(
code
!=
NOTE
&&
!
(
prev_code
==
CALL_INSN
&&
code
==
INSN
&&
GET_CODE
(
PATTERN
(
insn
))
==
CLOBBER
))
if
(
code
!=
NOTE
)
prev_code
=
code
;
}
...
...
@@ -1494,6 +1477,15 @@ propagate_block (old, first, last, final, significant, bnum)
{
register
int
i
;
rtx
note
;
for
(
note
=
CALL_INSN_FUNCTION_USAGE
(
insn
);
note
;
note
=
XEXP
(
note
,
1
))
if
(
GET_CODE
(
XEXP
(
note
,
0
))
==
USE
)
mark_used_regs
(
old
,
live
,
SET_DEST
(
XEXP
(
note
,
0
)),
final
,
insn
);
/* Each call clobbers all call-clobbered regs that are not
global. Note that the function-value reg is a
call-clobbered reg, and mark_set_regs has already had
...
...
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