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
7dbe6ae9
Commit
7dbe6ae9
authored
24 years ago
by
Bernd Schmidt
Committed by
Bernd Schmidt
24 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Re-apply an earlier fix, with a small update
From-SVN: r37794
parent
76e57b45
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
15 deletions
+26
-15
gcc/ChangeLog
+5
-0
gcc/loop.c
+21
-15
No files found.
gcc/ChangeLog
View file @
7dbe6ae9
...
...
@@ -12,6 +12,11 @@
htab_find_slot_with_hash.
(cselib_lookup): Likewise.
Based on a patch from Geoff Keating <geoffk@redhat.com>:
* loop.c (basic_induction_var): If a REG is set from something
that is not a biv, then the REG is not a biv. Even if it is
earlier set from something that is a biv.
2000-11-27 Alexandre Oliva <aoliva@redhat.com>
* configure.in (extra_objs): Enclose extra_headers in quotes.
...
...
This diff is collapsed.
Click to expand it.
gcc/loop.c
View file @
7dbe6ae9
...
...
@@ -5467,6 +5467,7 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
insn
=
p
;
while
(
1
)
{
rtx
dest
;
do
{
insn
=
PREV_INSN
(
insn
);
...
...
@@ -5479,21 +5480,26 @@ basic_induction_var (loop, x, mode, dest_reg, p, inc_val, mult_val, location)
set
=
single_set
(
insn
);
if
(
set
==
0
)
break
;
if
((
SET_DEST
(
set
)
==
x
||
(
GET_CODE
(
SET_DEST
(
set
))
==
SUBREG
&&
(
GET_MODE_SIZE
(
GET_MODE
(
SET_DEST
(
set
)))
<=
UNITS_PER_WORD
)
&&
(
GET_MODE_CLASS
(
GET_MODE
(
SET_DEST
(
set
)))
==
MODE_INT
)
&&
SUBREG_REG
(
SET_DEST
(
set
))
==
x
))
&&
basic_induction_var
(
loop
,
SET_SRC
(
set
),
(
GET_MODE
(
SET_SRC
(
set
))
==
VOIDmode
?
GET_MODE
(
x
)
:
GET_MODE
(
SET_SRC
(
set
))),
dest_reg
,
insn
,
inc_val
,
mult_val
,
location
))
return
1
;
dest
=
SET_DEST
(
set
);
if
(
dest
==
x
||
(
GET_CODE
(
dest
)
==
SUBREG
&&
(
GET_MODE_SIZE
(
GET_MODE
(
dest
))
<=
UNITS_PER_WORD
)
&&
(
GET_MODE_CLASS
(
GET_MODE
(
dest
))
==
MODE_INT
)
&&
SUBREG_REG
(
dest
)
==
x
))
return
basic_induction_var
(
loop
,
SET_SRC
(
set
),
(
GET_MODE
(
SET_SRC
(
set
))
==
VOIDmode
?
GET_MODE
(
x
)
:
GET_MODE
(
SET_SRC
(
set
))),
dest_reg
,
insn
,
inc_val
,
mult_val
,
location
);
while
(
GET_CODE
(
dest
)
==
SIGN_EXTRACT
||
GET_CODE
(
dest
)
==
ZERO_EXTRACT
||
GET_CODE
(
dest
)
==
SUBREG
||
GET_CODE
(
dest
)
==
STRICT_LOW_PART
)
dest
=
XEXP
(
dest
,
0
);
if
(
dest
==
x
)
break
;
}
/* Fall through. */
...
...
This diff is collapsed.
Click to expand it.
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