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>
2001-01-11 Michael Hayes <mhayes@redhat.com>
* flow.c (flow_call_edges_add): New.
* flow.c (flow_call_edges_add): New.
...
...
gcc/alias.c
View file @
fb6754f0
...
@@ -148,8 +148,8 @@ static rtx *new_reg_base_value;
...
@@ -148,8 +148,8 @@ static rtx *new_reg_base_value;
static
unsigned
int
reg_base_value_size
;
/* size of reg_base_value array */
static
unsigned
int
reg_base_value_size
;
/* size of reg_base_value array */
#define REG_BASE_VALUE(X) \
#define REG_BASE_VALUE(X) \
(
ORIGINAL_
REGNO (X) < reg_base_value_size \
(REGNO (X) < reg_base_value_size \
? reg_base_value[
ORIGINAL_
REGNO (X)] : 0)
? reg_base_value[REGNO (X)] : 0)
/* Vector of known invariant relationships between registers. Set in
/* Vector of known invariant relationships between registers. Set in
loop unrolling. Indexed by register number, if nonzero the value
loop unrolling. Indexed by register number, if nonzero the value
...
@@ -668,7 +668,7 @@ find_base_value (src)
...
@@ -668,7 +668,7 @@ find_base_value (src)
return
src
;
return
src
;
case
REG
:
case
REG
:
regno
=
ORIGINAL_
REGNO
(
src
);
regno
=
REGNO
(
src
);
/* At the start of a function, argument registers have known base
/* At the start of a function, argument registers have known base
values which may be lost later. Returning an ADDRESS
values which may be lost later. Returning an ADDRESS
expression here allows optimization based on argument values
expression here allows optimization based on argument values
...
@@ -792,7 +792,7 @@ record_set (dest, set, data)
...
@@ -792,7 +792,7 @@ record_set (dest, set, data)
if
(
GET_CODE
(
dest
)
!=
REG
)
if
(
GET_CODE
(
dest
)
!=
REG
)
return
;
return
;
regno
=
ORIGINAL_
REGNO
(
dest
);
regno
=
REGNO
(
dest
);
if
(
regno
>=
reg_base_value_size
)
if
(
regno
>=
reg_base_value_size
)
abort
();
abort
();
...
@@ -873,8 +873,8 @@ record_base_value (regno, val, invariant)
...
@@ -873,8 +873,8 @@ record_base_value (regno, val, invariant)
if
(
GET_CODE
(
val
)
==
REG
)
if
(
GET_CODE
(
val
)
==
REG
)
{
{
if
(
ORIGINAL_
REGNO
(
val
)
<
reg_base_value_size
)
if
(
REGNO
(
val
)
<
reg_base_value_size
)
reg_base_value
[
regno
]
=
reg_base_value
[
ORIGINAL_
REGNO
(
val
)];
reg_base_value
[
regno
]
=
reg_base_value
[
REGNO
(
val
)];
return
;
return
;
}
}
...
@@ -892,10 +892,10 @@ canon_rtx (x)
...
@@ -892,10 +892,10 @@ canon_rtx (x)
rtx
x
;
rtx
x
;
{
{
/* Recursively look for equivalences. */
/* Recursively look for equivalences. */
if
(
GET_CODE
(
x
)
==
REG
&&
ORIGINAL_
REGNO
(
x
)
>=
FIRST_PSEUDO_REGISTER
if
(
GET_CODE
(
x
)
==
REG
&&
REGNO
(
x
)
>=
FIRST_PSEUDO_REGISTER
&&
ORIGINAL_
REGNO
(
x
)
<
reg_known_value_size
)
&&
REGNO
(
x
)
<
reg_known_value_size
)
return
reg_known_value
[
ORIGINAL_
REGNO
(
x
)]
==
x
return
reg_known_value
[
REGNO
(
x
)]
==
x
?
x
:
canon_rtx
(
reg_known_value
[
ORIGINAL_
REGNO
(
x
)]);
?
x
:
canon_rtx
(
reg_known_value
[
REGNO
(
x
)]);
else
if
(
GET_CODE
(
x
)
==
PLUS
)
else
if
(
GET_CODE
(
x
)
==
PLUS
)
{
{
rtx
x0
=
canon_rtx
(
XEXP
(
x
,
0
));
rtx
x0
=
canon_rtx
(
XEXP
(
x
,
0
));
...
@@ -2114,7 +2114,6 @@ init_alias_analysis ()
...
@@ -2114,7 +2114,6 @@ init_alias_analysis ()
reg_base_value_size
*
sizeof
(
rtx
));
reg_base_value_size
*
sizeof
(
rtx
));
memset
((
char
*
)
alias_invariant
,
0
,
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
/* The basic idea is that each pass through this loop will use the
"constant" information from the previous pass to propagate alias
"constant" information from the previous pass to propagate alias
...
@@ -2211,9 +2210,9 @@ init_alias_analysis ()
...
@@ -2211,9 +2210,9 @@ init_alias_analysis ()
if
(
set
!=
0
if
(
set
!=
0
&&
GET_CODE
(
SET_DEST
(
set
))
==
REG
&&
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
);
rtx
src
=
SET_SRC
(
set
);
if
(
REG_NOTES
(
insn
)
!=
0
if
(
REG_NOTES
(
insn
)
!=
0
...
@@ -2229,13 +2228,13 @@ init_alias_analysis ()
...
@@ -2229,13 +2228,13 @@ init_alias_analysis ()
else
if
(
REG_N_SETS
(
regno
)
==
1
else
if
(
REG_N_SETS
(
regno
)
==
1
&&
GET_CODE
(
src
)
==
PLUS
&&
GET_CODE
(
src
)
==
PLUS
&&
GET_CODE
(
XEXP
(
src
,
0
))
==
REG
&&
GET_CODE
(
XEXP
(
src
,
0
))
==
REG
&&
ORIGINAL_
REGNO
(
XEXP
(
src
,
0
))
>=
FIRST_PSEUDO_REGISTER
&&
REGNO
(
XEXP
(
src
,
0
))
>=
FIRST_PSEUDO_REGISTER
&&
(
reg_known_value
[
ORIGINAL_
REGNO
(
XEXP
(
src
,
0
))])
&&
(
reg_known_value
[
REGNO
(
XEXP
(
src
,
0
))])
&&
GET_CODE
(
XEXP
(
src
,
1
))
==
CONST_INT
)
&&
GET_CODE
(
XEXP
(
src
,
1
))
==
CONST_INT
)
{
{
rtx
op0
=
XEXP
(
src
,
0
);
rtx
op0
=
XEXP
(
src
,
0
);
if
(
reg_known_value
[
ORIGINAL_
REGNO
(
op0
)])
if
(
reg_known_value
[
REGNO
(
op0
)])
op0
=
reg_known_value
[
ORIGINAL_
REGNO
(
op0
)];
op0
=
reg_known_value
[
REGNO
(
op0
)];
reg_known_value
[
regno
]
reg_known_value
[
regno
]
=
plus_constant_for_output
(
op0
,
=
plus_constant_for_output
(
op0
,
INTVAL
(
XEXP
(
src
,
1
)));
INTVAL
(
XEXP
(
src
,
1
)));
...
@@ -2293,7 +2292,7 @@ init_alias_analysis ()
...
@@ -2293,7 +2292,7 @@ init_alias_analysis ()
rtx
base
=
reg_base_value
[
ui
];
rtx
base
=
reg_base_value
[
ui
];
if
(
base
&&
GET_CODE
(
base
)
==
REG
)
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 */
if
(
base_regno
==
ui
)
/* register set from itself */
reg_base_value
[
ui
]
=
0
;
reg_base_value
[
ui
]
=
0
;
else
else
...
...
gcc/basic-block.h
View file @
fb6754f0
...
@@ -481,7 +481,6 @@ enum update_life_extent
...
@@ -481,7 +481,6 @@ enum update_life_extent
#define PROP_SCAN_DEAD_CODE 16
/* Scan for dead code. */
#define PROP_SCAN_DEAD_CODE 16
/* Scan for dead code. */
#define PROP_AUTOINC 32
/* Create autoinc mem references. */
#define PROP_AUTOINC 32
/* Create autoinc mem references. */
#define PROP_FINAL 63
/* All of the above. */
#define PROP_FINAL 63
/* All of the above. */
/* Flag number 64 is used internally in flow.c. */
/* Flags for loop discovery. */
/* Flags for loop discovery. */
...
...
gcc/flow.c
View file @
fb6754f0
...
@@ -168,10 +168,6 @@ Boston, MA 02111-1307, USA. */
...
@@ -168,10 +168,6 @@ Boston, MA 02111-1307, USA. */
#define EPILOGUE_USES(REGNO) 0
#define EPILOGUE_USES(REGNO) 0
#endif
#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. */
/* The obstack on which the flow graph components are allocated. */
struct
obstack
flow_obstack
;
struct
obstack
flow_obstack
;
...
@@ -3066,9 +3062,6 @@ update_life_info (blocks, extent, prop_flags)
...
@@ -3066,9 +3062,6 @@ update_life_info (blocks, extent, prop_flags)
tmp
=
INITIALIZE_REG_SET
(
tmp_head
);
tmp
=
INITIALIZE_REG_SET
(
tmp_head
);
if
(
reload_completed
)
prop_flags
|=
PROP_POSTRELOAD
;
/* For a global update, we go through the relaxation process again. */
/* For a global update, we go through the relaxation process again. */
if
(
extent
!=
UPDATE_LIFE_LOCAL
)
if
(
extent
!=
UPDATE_LIFE_LOCAL
)
{
{
...
@@ -4643,7 +4636,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
...
@@ -4643,7 +4636,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
rtx
reg
,
cond
,
insn
;
rtx
reg
,
cond
,
insn
;
int
flags
;
int
flags
;
{
{
int
orig_regno
=
-
1
;
int
regno_first
=
-
1
,
regno_last
=
-
1
;
int
regno_first
=
-
1
,
regno_last
=
-
1
;
int
not_dead
=
0
;
int
not_dead
=
0
;
int
i
;
int
i
;
...
@@ -4681,7 +4673,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
...
@@ -4681,7 +4673,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
/* Fall through. */
/* Fall through. */
case
REG
:
case
REG
:
orig_regno
=
ORIGINAL_REGNO
(
reg
);
regno_last
=
regno_first
=
REGNO
(
reg
);
regno_last
=
regno_first
=
REGNO
(
reg
);
if
(
regno_first
<
FIRST_PSEUDO_REGISTER
)
if
(
regno_first
<
FIRST_PSEUDO_REGISTER
)
regno_last
+=
HARD_REGNO_NREGS
(
regno_first
,
GET_MODE
(
reg
))
-
1
;
regno_last
+=
HARD_REGNO_NREGS
(
regno_first
,
GET_MODE
(
reg
))
-
1
;
...
@@ -4826,7 +4817,7 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
...
@@ -4826,7 +4817,7 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
/* Additional data to record if this is the final pass. */
/* Additional data to record if this is the final pass. */
if
(
flags
&
(
PROP_LOG_LINKS
|
PROP_REG_INFO
if
(
flags
&
(
PROP_LOG_LINKS
|
PROP_REG_INFO
|
PROP_DEATH_NOTES
|
PROP_AUTOINC
|
PROP_POSTRELOAD
))
|
PROP_DEATH_NOTES
|
PROP_AUTOINC
))
{
{
register
rtx
y
;
register
rtx
y
;
register
int
blocknum
=
pbi
->
bb
->
index
;
register
int
blocknum
=
pbi
->
bb
->
index
;
...
@@ -4841,11 +4832,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
...
@@ -4841,11 +4832,6 @@ mark_set_1 (pbi, code, reg, cond, insn, flags)
pbi
->
reg_next_use
[
i
]
=
0
;
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
)
if
(
flags
&
PROP_REG_INFO
)
{
{
for
(
i
=
regno_first
;
i
<=
regno_last
;
++
i
)
for
(
i
=
regno_first
;
i
<=
regno_last
;
++
i
)
...
...
gcc/sched-deps.c
View file @
fb6754f0
...
@@ -96,9 +96,9 @@ deps_may_trap_p (mem)
...
@@ -96,9 +96,9 @@ deps_may_trap_p (mem)
rtx
addr
=
XEXP
(
mem
,
0
);
rtx
addr
=
XEXP
(
mem
,
0
);
if
(
REG_P
(
addr
)
if
(
REG_P
(
addr
)
&&
ORIGINAL_
REGNO
(
addr
)
>=
FIRST_PSEUDO_REGISTER
&&
REGNO
(
addr
)
>=
FIRST_PSEUDO_REGISTER
&&
reg_known_value
[
ORIGINAL_
REGNO
(
addr
)])
&&
reg_known_value
[
REGNO
(
addr
)])
addr
=
reg_known_value
[
ORIGINAL_
REGNO
(
addr
)];
addr
=
reg_known_value
[
REGNO
(
addr
)];
return
rtx_addr_can_trap_p
(
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