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
9e3a9cf2
Commit
9e3a9cf2
authored
Jan 12, 2000
by
Bernd Schmidt
Committed by
Bernd Schmidt
Jan 12, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix suboptimal code generation bug in reload
From-SVN: r31352
parent
02368d6d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
7 deletions
+14
-7
gcc/ChangeLog
+8
-0
gcc/reload1.c
+6
-7
No files found.
gcc/ChangeLog
View file @
9e3a9cf2
2000
-
01
-
12
Bernd
Schmidt
<
bernds
@cygnus
.
co
.
uk
>
*
reload1
.
c
(
reload_reg_unavailable
)
:
New
static
variable
.
(
reload_reg_free_p
)
:
Test
it
.
(
reload_reg_free_for_value_p
)
:
Test
it
instead
of
reload_reg_used
.
(
choose_reload_regs_init
)
:
Compute
it
.
Wed
Jan
12
03
:
24
:
41
2000
Toshiyasu
Morita
(
toshi
.
morita
@sega
.
com
)
*
reorg
.
c
(
fill_slots_from_thread
)
:
Check
modified_in_p
...
...
gcc/reload1.c
View file @
9e3a9cf2
...
...
@@ -3990,6 +3990,8 @@ forget_old_reloads_1 (x, ignored, data)
/* The following HARD_REG_SETs indicate when each hard register is
used for a reload of various parts of the current insn. */
/* If reg is unavailable for all reloads. */
static
HARD_REG_SET
reload_reg_unavailable
;
/* If reg is in use as a reload reg for a RELOAD_OTHER reload. */
static
HARD_REG_SET
reload_reg_used
;
/* If reg is in use for a RELOAD_FOR_INPUT_ADDRESS reload for operand I. */
...
...
@@ -4213,7 +4215,8 @@ reload_reg_free_p (regno, opnum, type)
int
i
;
/* In use for a RELOAD_OTHER means it's not available for anything. */
if
(
TEST_HARD_REG_BIT
(
reload_reg_used
,
regno
))
if
(
TEST_HARD_REG_BIT
(
reload_reg_used
,
regno
)
||
TEST_HARD_REG_BIT
(
reload_reg_unavailable
,
regno
))
return
0
;
switch
(
type
)
...
...
@@ -4617,11 +4620,7 @@ reload_reg_free_for_value_p (regno, opnum, type, value, out, reloadnum,
int
i
;
int
copy
=
0
;
/* ??? reload_reg_used is abused to hold the registers that are not
available as spill registers, including hard registers that are
earlyclobbered in asms. As a temporary measure, reject anything
in reload_reg_used. */
if
(
TEST_HARD_REG_BIT
(
reload_reg_used
,
regno
))
if
(
TEST_HARD_REG_BIT
(
reload_reg_unavailable
,
regno
))
return
0
;
if
(
out
==
const0_rtx
)
...
...
@@ -5064,7 +5063,7 @@ choose_reload_regs_init (chain, save_reload_reg_rtx)
CLEAR_HARD_REG_SET
(
reload_reg_used_in_outaddr_addr
[
i
]);
}
IOR_COMPL_HARD_REG_SET
(
reload_reg_used
,
chain
->
used_spill_regs
);
COMPL_HARD_REG_SET
(
reload_reg_unavailable
,
chain
->
used_spill_regs
);
CLEAR_HARD_REG_SET
(
reload_reg_used_for_inherit
);
...
...
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