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
2feb9704
Commit
2feb9704
authored
Sep 16, 1999
by
Bernd Schmidt
Committed by
Bernd Schmidt
Sep 16, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bugfix in order_regs_for_reload
From-SVN: r29455
parent
7402eca0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
25 deletions
+21
-25
gcc/ChangeLog
+5
-0
gcc/reload1.c
+16
-25
No files found.
gcc/ChangeLog
View file @
2feb9704
Thu
Sep
16
10
:
53
:
36
1999
Bernd
Schmidt
<
bernds
@cygnus
.
co
.
uk
>
*
reload1
.
c
(
order_regs_for_reload
)
:
Move
hard_reg_n_uses
computation
out
of
loop
over
hard
regs
.
Wed
Sep
15
21
:
37
:
06
1999
Mark
Mitchell
<
mark
@codesourcery
.
com
>
Wed
Sep
15
21
:
37
:
06
1999
Mark
Mitchell
<
mark
@codesourcery
.
com
>
*
function
.
c
(
identify_blocks
)
:
Don
'
t
shadow
a
variable
in
an
*
function
.
c
(
identify_blocks
)
:
Don
'
t
shadow
a
variable
in
an
...
...
gcc/reload1.c
View file @
2feb9704
...
@@ -4109,44 +4109,35 @@ order_regs_for_reload (chain)
...
@@ -4109,44 +4109,35 @@ order_regs_for_reload (chain)
COPY_HARD_REG_SET
(
bad_spill_regs
,
bad_spill_regs_global
);
COPY_HARD_REG_SET
(
bad_spill_regs
,
bad_spill_regs_global
);
for
(
i
=
0
;
i
<
FIRST_PSEUDO_REGISTER
;
i
++
)
{
hard_reg_n_uses
[
i
].
regno
=
i
;
hard_reg_n_uses
[
i
].
uses
=
0
;
}
/* Count number of uses of each hard reg by pseudo regs allocated to it
/* Count number of uses of each hard reg by pseudo regs allocated to it
and then order them by decreasing use. */
and then order them by decreasing use. */
for
(
i
=
0
;
i
<
FIRST_PSEUDO_REGISTER
;
i
++
)
for
(
i
=
0
;
i
<
FIRST_PSEUDO_REGISTER
;
i
++
)
{
{
int
j
;
hard_reg_n_uses
[
i
].
regno
=
i
;
hard_reg_n_uses
[
i
].
uses
=
0
;
/* Test the various reasons why we can't use a register for
/* Test the various reasons why we can't use a register for
spilling in this insn. */
spilling in this insn. */
if
(
fixed_regs
[
i
]
if
(
fixed_regs
[
i
]
||
REGNO_REG_SET_P
(
chain
->
live_before
,
i
)
||
REGNO_REG_SET_P
(
chain
->
live_before
,
i
)
||
REGNO_REG_SET_P
(
chain
->
live_after
,
i
))
||
REGNO_REG_SET_P
(
chain
->
live_after
,
i
))
{
SET_HARD_REG_BIT
(
bad_spill_regs
,
i
);
SET_HARD_REG_BIT
(
bad_spill_regs
,
i
);
}
continue
;
}
/* Now find out which pseudos are allocated to it, and update
/* Now compute hard_reg_n_uses. */
hard_reg_n_uses. */
CLEAR_REG_SET
(
pseudos_counted
);
CLEAR_REG_SET
(
pseudos_counted
);
EXECUTE_IF_SET_IN_REG_SET
EXECUTE_IF_SET_IN_REG_SET
(
chain
->
live_before
,
FIRST_PSEUDO_REGISTER
,
j
,
(
chain
->
live_before
,
FIRST_PSEUDO_REGISTER
,
i
,
{
{
count_pseudo
(
hard_reg_n_uses
,
j
);
count_pseudo
(
hard_reg_n_uses
,
i
);
});
});
EXECUTE_IF_SET_IN_REG_SET
EXECUTE_IF_SET_IN_REG_SET
(
chain
->
live_after
,
FIRST_PSEUDO_REGISTER
,
j
,
(
chain
->
live_after
,
FIRST_PSEUDO_REGISTER
,
i
,
{
{
count_pseudo
(
hard_reg_n_uses
,
j
);
count_pseudo
(
hard_reg_n_uses
,
i
);
});
});
}
FREE_REG_SET
(
pseudos_counted
);
FREE_REG_SET
(
pseudos_counted
);
...
...
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