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
3cc82eea
Commit
3cc82eea
authored
Mar 28, 2006
by
Maxim Kuvyrkov
Committed by
Maxim Kuvyrkov
Mar 28, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
Revert my 2006-03-27 patches. From-SVN: r112456
parent
e8206491
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
34 additions
and
53 deletions
+34
-53
gcc/ChangeLog
+4
-0
gcc/haifa-sched.c
+13
-35
gcc/lists.c
+4
-4
gcc/rtl.def
+4
-3
gcc/rtl.h
+2
-3
gcc/sched-int.h
+5
-5
gcc/target.h
+2
-3
No files found.
gcc/ChangeLog
View file @
3cc82eea
2006
-
03
-
28
Maxim
Kuvyrkov
<
mkuvyrkov
@ispras
.
ru
>
Revert
my
2006
-
03
-
27
patches
.
2006
-
03
-
28
Roger
Sayle
<
roger
@eyesopen
.
com
>
*
fold
-
const
.
c
(
fold_unary
)
<
NOP_EXPR
>:
Fold
(
T1
)(
~
(
T2
)
X
)
as
...
...
gcc/haifa-sched.c
View file @
3cc82eea
/* Instruction scheduling pass.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by,
and currently maintained by, Jim Wilson (wilson@cygnus.com)
...
...
@@ -3056,6 +3055,16 @@ try_ready (rtx next)
||
!
RECOVERY_BLOCK
(
next
)
||
RECOVERY_BLOCK
(
next
)
==
EXIT_BLOCK_PTR
);
if
(
*
ts
==
0
&&
ORIG_PAT
(
next
)
&&
!
RECOVERY_BLOCK
(
next
))
/* We should change pattern of every previously speculative
instruction - and we determine if NEXT was speculative by using
ORIG_PAT field. Except one case - simple checks have ORIG_PAT
pat too, hence we also check for the RECOVERY_BLOCK. */
{
change_pattern
(
next
,
ORIG_PAT
(
next
));
ORIG_PAT
(
next
)
=
0
;
}
if
(
*
ts
&
HARD_DEP
)
{
/* We can't assert (QUEUE_INDEX (next) == QUEUE_NOWHERE) here because
...
...
@@ -3066,15 +3075,6 @@ try_ready (rtx next)
change_queue_index
(
next
,
QUEUE_NOWHERE
);
return
-
1
;
}
else
if
(
!
(
*
ts
&
BEGIN_SPEC
)
&&
ORIG_PAT
(
next
)
&&
!
RECOVERY_BLOCK
(
next
))
/* We should change pattern of every previously speculative
instruction - and we determine if NEXT was speculative by using
ORIG_PAT field. Except one case - simple checks have ORIG_PAT
pat too, hence we also check for the RECOVERY_BLOCK. */
{
change_pattern
(
next
,
ORIG_PAT
(
next
));
ORIG_PAT
(
next
)
=
0
;
}
if
(
sched_verbose
>=
2
)
{
...
...
@@ -3312,30 +3312,8 @@ process_insn_depend_be_in_spec (rtx link, rtx twin, ds_t fs)
ds
=
DEP_STATUS
(
link
);
if
(
/* If we want to create speculative dep. */
fs
/* And we can do that because this is a true dep. */
&&
(
ds
&
DEP_TYPES
)
==
DEP_TRUE
)
{
gcc_assert
(
!
(
ds
&
BE_IN_SPEC
));
if
(
/* If this dep can be overcomed with 'begin speculation'. */
ds
&
BEGIN_SPEC
)
/* Then we have a choice: keep the dep 'begin speculative'
or transform it into 'be in speculative'. */
{
if
(
/* In try_ready we assert that if insn once became ready
it can be removed from the ready (or queue) list only
due to backend decision. Hence we can't let the
probability of the speculative dep to decrease. */
dep_weak
(
ds
)
<=
dep_weak
(
fs
))
/* Transform it to be in speculative. */
ds
=
(
ds
&
~
BEGIN_SPEC
)
|
fs
;
}
else
/* Mark the dep as 'be in speculative'. */
ds
|=
fs
;
}
if
(
fs
&&
(
ds
&
DEP_TYPES
)
==
DEP_TRUE
)
ds
=
(
ds
&
~
BEGIN_SPEC
)
|
fs
;
add_back_forw_dep
(
consumer
,
twin
,
REG_NOTE_KIND
(
link
),
ds
);
}
...
...
gcc/lists.c
View file @
3cc82eea
/* List management for the GCC expander.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2003, 2004
, 2005, 2006
Free Software Foundation, Inc.
1999, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
...
...
@@ -159,7 +159,7 @@ alloc_EXPR_LIST (int kind, rtx val, rtx next)
node available, we'll use it, otherwise a call to gen_rtx_DEPS_LIST
is made. */
rtx
alloc_DEPS_LIST
(
rtx
val
,
rtx
next
,
int
ds
)
alloc_DEPS_LIST
(
rtx
val
,
rtx
next
,
HOST_WIDE_INT
ds
)
{
rtx
r
;
...
...
@@ -169,7 +169,7 @@ alloc_DEPS_LIST (rtx val, rtx next, int ds)
unused_deps_list
=
XEXP
(
r
,
1
);
XEXP
(
r
,
0
)
=
val
;
XEXP
(
r
,
1
)
=
next
;
XINT
(
r
,
2
)
=
ds
;
X
W
INT
(
r
,
2
)
=
ds
;
PUT_REG_NOTE_KIND
(
r
,
VOIDmode
);
gcc_assert
(
GET_CODE
(
r
)
==
DEPS_LIST
);
...
...
@@ -257,7 +257,7 @@ copy_DEPS_LIST_list (rtx list)
while
(
list
)
{
*
resp
=
alloc_DEPS_LIST
(
XEXP
(
list
,
0
),
0
,
XINT
(
list
,
2
));
*
resp
=
alloc_DEPS_LIST
(
XEXP
(
list
,
0
),
0
,
X
W
INT
(
list
,
2
));
PUT_REG_NOTE_KIND
(
*
resp
,
REG_NOTE_KIND
(
list
));
resp
=
&
XEXP
(
*
resp
,
1
);
list
=
XEXP
(
list
,
1
);
...
...
gcc/rtl.def
View file @
3cc82eea
...
...
@@ -2,7 +2,7 @@
Register Transfer Expressions (rtx's) that make up the
Register Transfer Language (rtl) used in the Back End of the GNU compiler.
Copyright (C) 1987, 1988, 1992, 1994, 1995, 1997, 1998, 1999, 2000, 2004,
2005
, 2006
2005
Free Software Foundation, Inc.
This file is part of GCC.
...
...
@@ -95,8 +95,9 @@ DEF_RTL_EXPR(INSN_LIST, "insn_list", "ue", RTX_EXTRA)
/* a linked list of dependencies.
The insns are represented in print by their uids.
Operand 2 is the status of a dependence (see sched-int.h for more). */
DEF_RTL_EXPR(DEPS_LIST, "deps_list", "uei", RTX_EXTRA)
Operand 2 is a degree of speculativeness of the dependence.
Operand 3 is a degree of weakness of the dependence. */
DEF_RTL_EXPR(DEPS_LIST, "deps_list", "uew", RTX_EXTRA)
/* SEQUENCE appears in the result of a `gen_...' function
for a DEFINE_EXPAND that wants to make several insns.
...
...
gcc/rtl.h
View file @
3cc82eea
/* Register Transfer Language (RTL) definitions for GCC
Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
...
...
@@ -1758,7 +1757,7 @@ void free_INSN_LIST_node (rtx);
rtx
alloc_INSN_LIST
(
rtx
,
rtx
);
rtx
alloc_EXPR_LIST
(
int
,
rtx
,
rtx
);
void
free_DEPS_LIST_list
(
rtx
*
);
rtx
alloc_DEPS_LIST
(
rtx
,
rtx
,
int
);
rtx
alloc_DEPS_LIST
(
rtx
,
rtx
,
HOST_WIDE_INT
);
void
remove_free_DEPS_LIST_elem
(
rtx
,
rtx
*
);
void
remove_free_INSN_LIST_elem
(
rtx
,
rtx
*
);
rtx
remove_list_elem
(
rtx
,
rtx
*
);
...
...
gcc/sched-int.h
View file @
3cc82eea
/* Instruction scheduling pass. This file contains definitions used
internally in the scheduler.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2003, 2004
, 2005, 2006
Free Software Foundation, Inc.
1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
...
...
@@ -36,8 +36,8 @@ extern state_t curr_state;
/* Forward declaration. */
struct
ready_list
;
/* Type to represent status of a dependence. */
typedef
int
ds_t
;
/* Type to represent status of a dependence.
A convinient short alias.
*/
typedef
HOST_WIDE_INT
ds_t
;
/* Type to represent weakness of speculative dependence. */
typedef
int
dw_t
;
...
...
@@ -377,10 +377,10 @@ extern regset *glat_start, *glat_end;
for using to describe instruction's status. It is set whenever instuction
has at least one dependence, that cannot be overcome.
See also: check_dep_status () in sched-deps.c . */
#define DEP_STATUS(LINK) XINT (LINK, 2)
#define DEP_STATUS(LINK) X
W
INT (LINK, 2)
/* We exclude sign bit. */
#define BITS_PER_DEP_STATUS (HOST_BITS_PER_INT - 1)
#define BITS_PER_DEP_STATUS (HOST_BITS_PER_
WIDE_
INT - 1)
/* First '4' stands for 3 dep type bits and HARD_DEP bit.
Second '4' stands for BEGIN_{DATA, CONTROL}, BE_IN_{DATA, CONTROL}
...
...
gcc/target.h
View file @
3cc82eea
/* Data structure definitions for a generic GCC target.
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
...
...
@@ -330,7 +329,7 @@ struct gcc_target
0, if current pattern satisfies the requested speculation type,
1, if pattern of the instruction should be changed to the newly
generated one. */
int
(
*
speculate_insn
)
(
rtx
,
int
,
rtx
*
);
int
(
*
speculate_insn
)
(
rtx
,
HOST_WIDE_INT
,
rtx
*
);
/* The following member value is a pointer to a function called
by the insn scheduler. It should return true if the check instruction
...
...
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