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
39ba6ab7
Commit
39ba6ab7
authored
Jul 04, 2009
by
Eric Botcazou
Committed by
Eric Botcazou
Jul 04, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
From-SVN: r149234
parent
93a8ba61
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
20 deletions
+19
-20
gcc/ChangeLog
+4
-0
gcc/postreload.c
+15
-20
No files found.
gcc/ChangeLog
View file @
39ba6ab7
2009-07-04 Eric Botcazou <ebotcazou@adacore.com>
* postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
2009-07-03 Vladimir Makarov <vmakarov@redhat.com>
PR target/40587
...
...
gcc/postreload.c
View file @
39ba6ab7
...
...
@@ -815,22 +815,19 @@ reload_combine (void)
rtx
prev
=
prev_nonnote_insn
(
insn
);
rtx
prev_set
=
prev
?
single_set
(
prev
)
:
NULL_RTX
;
unsigned
int
regno
=
REGNO
(
reg
);
rtx
const
_reg
=
NULL_RTX
;
rtx
index
_reg
=
NULL_RTX
;
rtx
reg_sum
=
NULL_RTX
;
/* Now, we need an index register.
We'll set index_reg to this index register, const_reg to the
register that is to be loaded with the constant
(denoted as REGZ in the substitution illustration above),
and reg_sum to the register-register that we want to use to
substitute uses of REG (typically in MEMs) with.
First check REG and BASE for being index registers;
we can use them even if they are not dead. */
/* Now we need to set INDEX_REG to an index register (denoted as
REGZ in the illustration above) and REG_SUM to the expression
register+register that we want to use to substitute uses of REG
(typically in MEMs) with. First check REG and BASE for being
index registers; we can use them even if they are not dead. */
if
(
TEST_HARD_REG_BIT
(
reg_class_contents
[
INDEX_REG_CLASS
],
regno
)
||
TEST_HARD_REG_BIT
(
reg_class_contents
[
INDEX_REG_CLASS
],
REGNO
(
base
)))
{
const
_reg
=
reg
;
index
_reg
=
reg
;
reg_sum
=
plus
;
}
else
...
...
@@ -847,9 +844,7 @@ reload_combine (void)
&&
reg_state
[
i
].
store_ruid
<=
reg_state
[
regno
].
use_ruid
&&
hard_regno_nregs
[
i
][
GET_MODE
(
reg
)]
==
1
)
{
rtx
index_reg
=
gen_rtx_REG
(
GET_MODE
(
reg
),
i
);
const_reg
=
index_reg
;
index_reg
=
gen_rtx_REG
(
GET_MODE
(
reg
),
i
);
reg_sum
=
gen_rtx_PLUS
(
GET_MODE
(
reg
),
index_reg
,
base
);
break
;
}
...
...
@@ -859,19 +854,19 @@ reload_combine (void)
/* Check that PREV_SET is indeed (set (REGX) (CONST_INT)) and that
(REGY), i.e. BASE, is not clobbered before the last use we'll
create. */
if
(
prev_set
!=
0
if
(
reg_sum
&&
prev_set
&&
CONST_INT_P
(
SET_SRC
(
prev_set
))
&&
rtx_equal_p
(
SET_DEST
(
prev_set
),
reg
)
&&
reg_state
[
regno
].
use_index
>=
0
&&
(
reg_state
[
REGNO
(
base
)].
store_ruid
<=
reg_state
[
regno
].
use_ruid
)
&&
reg_sum
!=
0
)
<=
reg_state
[
regno
].
use_ruid
))
{
int
i
;
/* Change destination register and, if necessary, the
constant
value in PREV, the constant loading instruction. */
validate_change
(
prev
,
&
SET_DEST
(
prev_set
),
const
_reg
,
1
);
/* Change destination register and, if necessary, the
constant
value in PREV, the constant loading instruction. */
validate_change
(
prev
,
&
SET_DEST
(
prev_set
),
index
_reg
,
1
);
if
(
reg_state
[
regno
].
offset
!=
const0_rtx
)
validate_change
(
prev
,
&
SET_SRC
(
prev_set
),
...
...
@@ -900,7 +895,7 @@ reload_combine (void)
remove_reg_equal_equiv_notes
(
prev
);
reg_state
[
regno
].
use_index
=
RELOAD_COMBINE_MAX_USES
;
reg_state
[
REGNO
(
const
_reg
)].
store_ruid
reg_state
[
REGNO
(
index
_reg
)].
store_ruid
=
reload_combine_ruid
;
continue
;
}
...
...
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