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
112f7223
Commit
112f7223
authored
Feb 01, 2003
by
Ulrich Weigand
Committed by
Ulrich Weigand
Feb 01, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* reload.c: Revert 2003-01-31 change.
From-SVN: r62249
parent
064994a3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
38 deletions
+17
-38
gcc/ChangeLog
+4
-0
gcc/reload.c
+13
-38
No files found.
gcc/ChangeLog
View file @
112f7223
2003
-
02
-
01
Ulrich
Weigand
<
uweigand
@de
.
ibm
.
com
>
*
reload
.
c
:
Revert
2003
-
01
-
31
change
.
Sat
Feb
1
14
:
14
:
40
CET
2003
Jan
Hubicka
<
jh
@suse
.
cz
>
*
combine
.
c
(
combine_simplify_rtx
)
:
Use
reversed_comparison_code_parts
.
...
...
gcc/reload.c
View file @
112f7223
...
...
@@ -274,7 +274,6 @@ static void find_reloads_address_part PARAMS ((rtx, rtx *, enum reg_class,
static
rtx
find_reloads_subreg_address
PARAMS
((
rtx
,
int
,
int
,
enum
reload_type
,
int
,
rtx
));
static
void
copy_replacements_1
PARAMS
((
rtx
*
,
rtx
*
,
int
));
static
bool
have_replacement_p
PARAMS
((
rtx
*
));
static
int
find_inc_amount
PARAMS
((
rtx
,
rtx
));
#ifdef HAVE_SECONDARY_RELOADS
...
...
@@ -2690,10 +2689,6 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
recog_data
.
operand
[
i
]
=
*
recog_data
.
operand_loc
[
i
];
substed_operand
[
i
]
=
recog_data
.
operand
[
i
];
/* Address operands are reloaded in their existing mode,
no matter what is specified in the machine description. */
operand_mode
[
i
]
=
GET_MODE
(
recog_data
.
operand
[
i
]);
}
else
if
(
code
==
MEM
)
{
...
...
@@ -3307,6 +3302,10 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
the address into a base register. */
this_alternative
[
i
]
=
(
int
)
MODE_BASE_REG_CLASS
(
VOIDmode
);
badop
=
0
;
/* Address constraints are reloaded in Pmode, no matter
what mode is given in the machine description. */
operand_mode
[
i
]
=
Pmode
;
break
;
}
...
...
@@ -3877,20 +3876,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
return
0
;
}
}
/* Generate optional reloads only when optimizing, and only
on the last pass through reload. Also, make sure we do not
make an optional reload where we already have a mandatory
one; this can happen in the case of address operands.
To check for mandatory reloads, we use have_replacement_p.
Note that this works only on the last pass through reload. */
else
if
(
!
optimize
||
!
replace
||
have_replacement_p
(
recog_data
.
operand_loc
[
i
]))
;
/* Do nothing. */
else
if
(
goal_alternative_matched
[
i
]
<
0
&&
goal_alternative_matches
[
i
]
<
0
)
&&
goal_alternative_matches
[
i
]
<
0
&&
optimize
)
{
/* For each non-matching operand that's a MEM or a pseudo-register
that didn't get a hard register, make an optional reload.
...
...
@@ -3940,10 +3928,11 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
reload, check if this is actually a pseudo register reference;
we then need to emit a USE and/or a CLOBBER so that reload
inheritance will do the right thing. */
else
if
(
GET_CODE
(
operand
)
==
MEM
||
(
GET_CODE
(
operand
)
==
REG
&&
REGNO
(
operand
)
>=
FIRST_PSEUDO_REGISTER
&&
reg_renumber
[
REGNO
(
operand
)]
<
0
))
else
if
(
replace
&&
(
GET_CODE
(
operand
)
==
MEM
||
(
GET_CODE
(
operand
)
==
REG
&&
REGNO
(
operand
)
>=
FIRST_PSEUDO_REGISTER
&&
reg_renumber
[
REGNO
(
operand
)]
<
0
)))
{
operand
=
*
recog_data
.
operand_loc
[
i
];
...
...
@@ -3966,7 +3955,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
&&
goal_alternative_win
[
goal_alternative_matches
[
i
]]
&&
modified
[
i
]
==
RELOAD_READ
&&
modified
[
goal_alternative_matches
[
i
]]
==
RELOAD_WRITE
&&
!
no_input_reloads
&&
!
no_output_reloads
)
&&
!
no_input_reloads
&&
!
no_output_reloads
&&
optimize
)
{
/* Similarly, make an optional reload for a pair of matching
objects that are in MEM or a pseudo that didn't get a hard reg. */
...
...
@@ -6140,21 +6130,6 @@ find_replacement (loc)
return
*
loc
;
}
/* Return true if some replacement was scheduled at LOC. */
static
bool
have_replacement_p
(
loc
)
rtx
*
loc
;
{
struct
replacement
*
r
;
for
(
r
=
&
replacements
[
0
];
r
<
&
replacements
[
n_replacements
];
r
++
)
if
(
r
->
where
==
loc
)
return
true
;
return
false
;
}
/* Return nonzero if register in range [REGNO, ENDREGNO)
appears either explicitly or implicitly in X
...
...
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