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
e3258cef
Commit
e3258cef
authored
Feb 13, 1998
by
J"orn Rennecke
Committed by
Joern Rennecke
Feb 13, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* combine.c (can_combine_p): Handle USEs in PARALLELs.
From-SVN: r17899
parent
2dbfb418
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
0 deletions
+41
-0
gcc/ChangeLog
+4
-0
gcc/combine.c
+37
-0
No files found.
gcc/ChangeLog
View file @
e3258cef
Fri Feb 13 10:21:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* combine.c (can_combine_p): Handle USEs in PARALLELs.
Fri Feb 13 01:34:14 1998 H.J. Lu (hjl@gnu.org)
* config/linux.h (LIB_SPEC): Add -lc for -shared if
...
...
gcc/combine.c
View file @
e3258cef
...
...
@@ -860,6 +860,43 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc)
switch
(
GET_CODE
(
elt
))
{
/* This is important to combine floating point insns
for the SH4 port. */
case
USE
:
/* Combining an isolated USE doesn't make sense.
We depend here on combinable_i3_pat to reject them. */
/* The code below this loop only verifies that the inputs of
the SET in INSN do not change. We call reg_set_between_p
to verify that the REG in the USE does not change betweeen
I3 and INSN.
If the USE in INSN was for a pseudo register, the matching
insn pattern will likely match any register; combining this
with any other USE would only be safe if we knew that the
used registers have identical values, or if there was
something to tell them apart, e.g. different modes. For
now, we forgo such compilcated tests and simply disallow
combining of USES of pseudo registers with any other USE. */
if
(
GET_CODE
(
XEXP
(
elt
,
0
))
==
REG
&&
GET_CODE
(
PATTERN
(
i3
))
==
PARALLEL
)
{
rtx
i3pat
=
PATTERN
(
i3
);
int
i
=
XVECLEN
(
i3pat
,
0
)
-
1
;
int
regno
=
REGNO
(
XEXP
(
elt
,
0
));
do
{
rtx
i3elt
=
XVECEXP
(
i3pat
,
0
,
i
);
if
(
GET_CODE
(
i3elt
)
==
USE
&&
GET_CODE
(
XEXP
(
i3elt
,
0
))
==
REG
&&
(
REGNO
(
XEXP
(
i3elt
,
0
))
==
regno
?
reg_set_between_p
(
XEXP
(
elt
,
0
),
PREV_INSN
(
insn
),
i3
)
:
regno
>=
FIRST_PSEUDO_REGISTER
))
return
0
;
}
while
(
--
i
>=
0
);
}
break
;
/* We can ignore CLOBBERs. */
case
CLOBBER
:
break
;
...
...
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