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
fb6754f0
Commit
fb6754f0
authored
Jan 11, 2001
by
Bernd Schmidt
Committed by
Bernd Schmidt
Jan 11, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Partially undo a previous patch
From-SVN: r38908
parent
d2796d4e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
30 additions
and
37 deletions
+30
-37
gcc/ChangeLog
+9
-0
gcc/alias.c
+17
-18
gcc/basic-block.h
+0
-1
gcc/flow.c
+1
-15
gcc/sched-deps.c
+3
-3
No files found.
gcc/ChangeLog
View file @
fb6754f0
2001-01-11 Bernd Schmidt <bernds@redhat.com>
* alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO.
* sched-deps.c (deps_may_trap_p): Likewise.
* basic-block.h: Remove a comment.
* flow.c (PROP_POSTRELOAD): Remove.
(update_life_info): Don't add it to prop_flags.
(mark_set_1): Lose the code that was enabled by it.
2001-01-11 Michael Hayes <mhayes@redhat.com>
* flow.c (flow_call_edges_add): New.
...
...
gcc/alias.c
View file @
fb6754f0
...
...
@@ -148,8 +148,8 @@ static rtx *new_reg_base_value;
static
unsigned
int
reg_base_value_size
;
/* size of reg_base_value array */
#define REG_BASE_VALUE(X) \
(
ORIGINAL_
REGNO (X) < reg_base_value_size \
? reg_base_value[
ORIGINAL_
REGNO (X)] : 0)
(REGNO (X) < reg_base_value_size \
? reg_base_value[REGNO (X)] : 0)
/* Vector of known invariant relationships between registers. Set in
loop unrolling. Indexed by register number, if nonzero the value
...
...
@@ -668,7 +668,7 @@ find_base_value (src)
return
src
;
case
REG
:
regno
=
ORIGINAL_
REGNO
(
src
);
regno
=
REGNO
(
src
);
/* At the start of a function, argument registers have known base
values which may be lost later. Returning an ADDRESS
expression here allows optimization based on argument values
...
...
@@ -792,7 +792,7 @@ record_set (dest, set, data)
if
(
GET_CODE
(
dest
)
!=
REG
)
return
;
regno
=
ORIGINAL_
REGNO
(
dest
);
regno
=
REGNO
(
dest
);
if
(
regno
>=
reg_base_value_size
)
abort
();
...
...
@@ -873,8 +873,8 @@ record_base_value (regno, val, invariant)
if
(
GET_CODE
(
val
)
==
REG
)
{
if
(
ORIGINAL_
REGNO
(
val
)
<
reg_base_value_size
)
reg_base_value
[
regno
]
=
reg_base_value
[
ORIGINAL_
REGNO
(
val
)];
if
(
REGNO
(
val
)
<
reg_base_value_size
)
reg_base_value
[
regno
]
=
reg_base_value
[
REGNO
(
val
)];
return
;
}
...
...
@@ -892,10 +892,10 @@ canon_rtx (x)
rtx
x
;
{
/* Recursively look for equivalences. */
if
(
GET_CODE
(
x
)
==
REG
&&
ORIGINAL_
REGNO
(
x
)
>=
FIRST_PSEUDO_REGISTER
&&
ORIGINAL_
REGNO
(
x
)
<
reg_known_value_size
)
return
reg_known_value
[
ORIGINAL_
REGNO
(
x
)]
==
x
?
x
:
canon_rtx
(
reg_known_value
[
ORIGINAL_
REGNO
(
x
)]);
if
(
GET_CODE
(
x
)
==
REG
&&
REGNO
(
x
)
>=
FIRST_PSEUDO_REGISTER
&&
REGNO
(
x
)
<
reg_known_value_size
)
return
reg_known_value
[
REGNO
(
x
)]
==
x
?
x
:
canon_rtx
(
reg_known_value
[
REGNO
(
x
)]);
else
if
(
GET_CODE
(
x
)
==
PLUS
)
{
rtx
x0
=
canon_rtx
(
XEXP
(
x
,
0
));
...
...
@@ -2114,7 +2114,6 @@ init_alias_analysis ()
reg_base_value_size
*
sizeof
(
rtx
));
memset
((
char
*
)
alias_invariant
,
0
,
reg_base_value_size
*
sizeof
(
rtx
));
}
/* The basic idea is that each pass through this loop will use the
"constant" information from the previous pass to propagate alias
...
...
@@ -2211,9 +2210,9 @@ init_alias_analysis ()
if
(
set
!=
0
&&
GET_CODE
(
SET_DEST
(
set
))
==
REG
&&
ORIGINAL_
REGNO
(
SET_DEST
(
set
))
>=
FIRST_PSEUDO_REGISTER
)
&&
REGNO
(
SET_DEST
(
set
))
>=
FIRST_PSEUDO_REGISTER
)
{
unsigned
int
regno
=
ORIGINAL_
REGNO
(
SET_DEST
(
set
));
unsigned
int
regno
=
REGNO
(
SET_DEST
(
set
));
rtx
src
=
SET_SRC
(
set
);
if
(
REG_NOTES
(
insn
)
!=
0
...
...
@@ -2229,13 +2228,13 @@ init_alias_analysis ()
else
if
(
REG_N_SETS
(
regno
)
==
1
&&
GET_CODE
(
src
)
==
PLUS
&&
GET_CODE
(
XEXP
(
src
,
0
))
==
REG
&&
ORIGINAL_
REGNO
(
XEXP
(
src
,
0
))
>=
FIRST_PSEUDO_REGISTER
&&
(
reg_known_value
[
ORIGINAL_
REGNO
(
XEXP
(
src
,
0
))])
&&
REGNO
(
XEXP
(
src
,
0
))
>=
FIRST_PSEUDO_REGISTER
&&
(
reg_known_value
[
REGNO
(
XEXP
(
src
,
0
))])
&&
GET_CODE
(
XEXP
(
src
,
1
))
==
CONST_INT
)
{
rtx
op0
=
XEXP
(
src
,
0
);
if
(
reg_known_value
[
ORIGINAL_
REGNO
(
op0
)])
op0
=
reg_known_value
[
ORIGINAL_
REGNO
(
op0
)];
if
(
reg_known_value
[
REGNO
(
op0
)])
op0
=
reg_known_value
[
REGNO
(
op0
)];
reg_known_value
[
regno
]
=
plus_constant_for_output
(
op0
,
INTVAL
(
XEXP
(
src
,
1
)));
...
...
@@ -2293,7 +2292,7 @@ init_alias_analysis ()
rtx
base
=
reg_base_value
[
ui
];
if
(
base
&&
GET_CODE
(
base
)
==
REG
)
{
unsigned
int
base_regno
=
ORIGINAL_
REGNO
(
base
);
unsigned
int
base_regno
=
REGNO
(
base
);
if
(
base_regno
==
ui
)
/* register set from itself */
reg_base_value
[
ui
]
=
0
;
else
...
...
gcc/basic-block.h
View file @
fb6754f0
...
...
@@ -481,7 +481,6 @@ enum update_life_extent
#define PROP_SCAN_DEAD_CODE 16
/* Scan for dead code. */
#define PROP_AUTOINC 32
/* Create autoinc mem references. */
#define PROP_FINAL 63
/* All of the above. */
/* Flag number 64 is used internally in flow.c. */
/* Flags for loop discovery. */
...
...
gcc/flow.c
View file @
fb6754f0
...
...
@@ -168,10 +168,6 @@ Boston, MA 02111-1307, USA. */
#define EPILOGUE_USES(REGNO) 0
#endif
/* Not in basic-block.h, since it is private to this file. When set, it
causes us to keep REG_N_SETS uptodate for original pseudo registers. */
#define PROP_POSTRELOAD 64
/* The obstack on which the flow graph components are allocated. */
struct
obstack
flow_obstack
;
...
...
@@ -3066,9 +3062,6 @@ update_life_info (blocks, extent, prop_flags)
tmp
=
INITIALIZE_REG_SET
(
tmp_head
);
if
(
reload_completed
)
prop_flags
|=
PROP_POSTRELOAD
;
/* For a global update, we go through the relaxation process again. */
if
(
extent
!=
UPDATE_LIFE_LOCAL
)
{
...
...
@@ -4643,7 +4636,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
rtx
reg
,
cond
,
insn
;
int
flags
;
{
int
orig_regno
=
-
1
;
int
regno_first
=
-
1
,
regno_last
=
-
1
;
int
not_dead
=
0
;
int
i
;
...
...
@@ -4681,7 +4673,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
/* Fall through. */
case
REG
:
orig_regno
=
ORIGINAL_REGNO
(
reg
);
regno_last
=
regno_first
=
REGNO
(
reg
);
if
(
regno_first
<
FIRST_PSEUDO_REGISTER
)
regno_last
+=
HARD_REGNO_NREGS
(
regno_first
,
GET_MODE
(
reg
))
-
1
;
...
...
@@ -4826,7 +4817,7 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
/* Additional data to record if this is the final pass. */
if
(
flags
&
(
PROP_LOG_LINKS
|
PROP_REG_INFO
|
PROP_DEATH_NOTES
|
PROP_AUTOINC
|
PROP_POSTRELOAD
))
|
PROP_DEATH_NOTES
|
PROP_AUTOINC
))
{
register
rtx
y
;
register
int
blocknum
=
pbi
->
bb
->
index
;
...
...
@@ -4841,11 +4832,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
pbi
->
reg_next_use
[
i
]
=
0
;
}
/* After reload has completed, try to keep REG_N_SETS uptodate for
the original pseudos. */
if
((
flags
&
PROP_POSTRELOAD
)
&&
orig_regno
>=
FIRST_PSEUDO_REGISTER
)
REG_N_SETS
(
orig_regno
)
+=
1
;
if
(
flags
&
PROP_REG_INFO
)
{
for
(
i
=
regno_first
;
i
<=
regno_last
;
++
i
)
...
...
gcc/sched-deps.c
View file @
fb6754f0
...
...
@@ -96,9 +96,9 @@ deps_may_trap_p (mem)
rtx
addr
=
XEXP
(
mem
,
0
);
if
(
REG_P
(
addr
)
&&
ORIGINAL_
REGNO
(
addr
)
>=
FIRST_PSEUDO_REGISTER
&&
reg_known_value
[
ORIGINAL_
REGNO
(
addr
)])
addr
=
reg_known_value
[
ORIGINAL_
REGNO
(
addr
)];
&&
REGNO
(
addr
)
>=
FIRST_PSEUDO_REGISTER
&&
reg_known_value
[
REGNO
(
addr
)])
addr
=
reg_known_value
[
REGNO
(
addr
)];
return
rtx_addr_can_trap_p
(
addr
);
}
...
...
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