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
6d8ccdbb
Commit
6d8ccdbb
authored
Dec 15, 1997
by
Jeff Law
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bring over changes from latest gcc-2.8 pre-release.
Mirror sched.c change into haifa-sched.c From-SVN: r17097
parent
7b8dd497
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
118 additions
and
46 deletions
+118
-46
gcc/ChangeLog
+7
-0
gcc/ChangeLog.11
+45
-1
gcc/INSTALL
+1
-1
gcc/SERVICE
+1
-2
gcc/acconfig.h
+3
-0
gcc/collect2.c
+8
-8
gcc/config.in
+3
-0
gcc/config/i386/i386.h
+3
-2
gcc/crtstuff.c
+7
-7
gcc/except.c
+2
-2
gcc/expr.c
+4
-7
gcc/frame.c
+3
-3
gcc/frame.h
+7
-2
gcc/function.c
+2
-2
gcc/haifa-sched.c
+7
-2
gcc/install.texi
+1
-1
gcc/pexecute.c
+5
-4
gcc/sched.c
+9
-2
No files found.
gcc/ChangeLog
View file @
6d8ccdbb
Mon Dec 15 00:04:48 1997 Jeffrey A Law (law@cygnus.com)
* haifa-sched.c (remove_dependencies): Set RTX_INTEGRATED_P on
dependency we delete. Properly update prev for multiple consecutive
deletions.
(priority): Skip deleted dependence.
Fri Dec 12 18:54:23 1997 Per Bothner <bothner@cygnus.com>
Fri Dec 12 18:54:23 1997 Per Bothner <bothner@cygnus.com>
* expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod.
* expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod.
...
...
gcc/ChangeLog.11
View file @
6d8ccdbb
Fri Dec 12 08:01:44 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Sun Dec 14 06:49:05 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* Version 2.8.0 released.
* expr.c (expand_expr, case PLACEHOLDER_EXPR): Use placeholder_list
expression in preference to any other if correct type.
* i386.h (INITIAL_ELIMINATION_OFFSET): Correctly test for PIC
register used.
Sat Dec 13 06:11:32 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* frame.h (__register_frame_info_table): Fix typo in declaration.
Fri Dec 12 07:55:18 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* function.c (purge_addressof_1): For (mem (address (mem ...)),
when collapsing, preserve mode of outer MEM.
* frame.c (__register_frame_info): Renamed from __register_frame.
(__register_frame_info_table, __deregister_frame_info): Similarly.
* frame.h (__{,de}register_frame_info): Likewise.
(__register_frame_info_table): New declaration.
* crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame.
(frame_dummy, __do_global_ctors): Likewise for __register_frame.
* collect2.c (write_c_file_{stat,glob}): Rename __register_frame
to __register_frame_info and similarly for __deregister_frame and
__register_frame_table.
* sched.c (remove_dependencies): Set RTX_INTEGRATED_P on dependency
we delete. Properly update prev for multiple consecutive deletions.
(priority): Skip deleted dependence.
* integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL,
* integrate.c (initialize_for_inline): In DECL_RTL of a PARM_DECL,
look inside a (mem (addressof (mem ...))).
look inside a (mem (addressof (mem ...))).
Fri Dec 12 05:49:58 1997 Paul Eggert <eggert@twinsun.com>
* collect2.c (write_c_file_glob):
Allocate initial frame object in static storage and pass its address.
Thu Dec 11 18:01:31 1997 Philippe De Muyter <phdm@macqel.be>
* acconfig.h (NEED_DECLARATION_GETENV): Define slot added.
Thu Dec 11 17:54:23 1997 Paul Eggert <eggert@twinsun.com>
* crtstuff.c (__do_global_ctors): Fix typo in last change.
Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
Wed Dec 10 18:38:28 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* libgcc2.c (__bb_exit_func): Fix test of return value of fopen.
* libgcc2.c (__bb_exit_func): Fix test of return value of fopen.
...
...
gcc/INSTALL
View file @
6d8ccdbb
...
@@ -164,7 +164,7 @@ and includes all the necessary compilation tools and libraries.
...
@@ -164,7 +164,7 @@ and includes all the necessary compilation tools and libraries.
`--
nfp
' currently has no effect, though perhaps there are
`--
nfp
' currently has no effect, though perhaps there are
other systems where it could usefully make a difference.
other systems where it could usefully make a difference.
`--enable-
objc
threads=TYPE'
`--enable-threads=TYPE'
Certain
systems
,
notably
Linux
-
based
GNU
systems
,
can
't be
Certain
systems
,
notably
Linux
-
based
GNU
systems
,
can
't be
relied on to supply a threads facility for the Objective C
relied on to supply a threads facility for the Objective C
runtime and so will default to single-threaded runtime. They
runtime and so will default to single-threaded runtime. They
...
...
gcc/SERVICE
View file @
6d8ccdbb
...
@@ -693,8 +693,7 @@ My rate varies greatly between $25-$40/hour, depending on the circumstances.
...
@@ -693,8 +693,7 @@ My rate varies greatly between $25-$40/hour, depending on the circumstances.
Rates for non-profit organizations are substantially lower, and possibly free.
Rates for non-profit organizations are substantially lower, and possibly free.
Please note that I have no interest in working with any Micro$oft related
Please note that I have no interest in working with any Micro$oft related
products. I will accept work that involves other non-free, non-Micro$oft
products! I want the primary focus of my work to be contributing
software, but I would want the primary focus of the work to be contributing
to the free software community.
to the free software community.
Updated: 1997-12-04
Updated: 1997-12-04
...
...
gcc/acconfig.h
View file @
6d8ccdbb
...
@@ -18,4 +18,7 @@
...
@@ -18,4 +18,7 @@
/* Whether rindex must be declared even if <stdlib.h> is included. */
/* Whether rindex must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_RINDEX
#undef NEED_DECLARATION_RINDEX
/* Whether getenv must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_GETENV
@
TOP
@
@
TOP
@
gcc/collect2.c
View file @
6d8ccdbb
...
@@ -1790,16 +1790,16 @@ write_c_file_stat (stream, name)
...
@@ -1790,16 +1790,16 @@ write_c_file_stat (stream, name)
fprintf
(
stream
,
" struct object *next;
\n
"
);
fprintf
(
stream
,
" struct object *next;
\n
"
);
fprintf
(
stream
,
"};
\n
"
);
fprintf
(
stream
,
"};
\n
"
);
fprintf
(
stream
,
"extern void __register_frame_table (void *, struct object *);
\n
"
);
fprintf
(
stream
,
"extern void __register_frame_
info_
table (void *, struct object *);
\n
"
);
fprintf
(
stream
,
"extern void __deregister_frame (void *);
\n
"
);
fprintf
(
stream
,
"extern void __deregister_frame
_info
(void *);
\n
"
);
fprintf
(
stream
,
"static void reg_frame () {
\n
"
);
fprintf
(
stream
,
"static void reg_frame () {
\n
"
);
fprintf
(
stream
,
"
\t
static struct object ob;
\n
"
);
fprintf
(
stream
,
"
\t
static struct object ob;
\n
"
);
fprintf
(
stream
,
"
\t
__register_frame_table (frame_table, &ob);
\n
"
);
fprintf
(
stream
,
"
\t
__register_frame_
info_
table (frame_table, &ob);
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
fprintf
(
stream
,
"static void dereg_frame () {
\n
"
);
fprintf
(
stream
,
"static void dereg_frame () {
\n
"
);
fprintf
(
stream
,
"
\t
__deregister_frame (frame_table);
\n
"
);
fprintf
(
stream
,
"
\t
__deregister_frame
_info
(frame_table);
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
}
}
...
@@ -1876,16 +1876,16 @@ write_c_file_glob (stream, name)
...
@@ -1876,16 +1876,16 @@ write_c_file_glob (stream, name)
fprintf
(
stream
,
" struct object *next;
\n
"
);
fprintf
(
stream
,
" struct object *next;
\n
"
);
fprintf
(
stream
,
"};
\n
"
);
fprintf
(
stream
,
"};
\n
"
);
fprintf
(
stream
,
"extern void __register_frame_table (void *, struct object *);
\n
"
);
fprintf
(
stream
,
"extern void __register_frame_
info_
table (void *, struct object *);
\n
"
);
fprintf
(
stream
,
"extern void __deregister_frame (void *);
\n
"
);
fprintf
(
stream
,
"extern void __deregister_frame
_info
(void *);
\n
"
);
fprintf
(
stream
,
"static void reg_frame () {
\n
"
);
fprintf
(
stream
,
"static void reg_frame () {
\n
"
);
fprintf
(
stream
,
"
\t
static struct object ob;
\n
"
);
fprintf
(
stream
,
"
\t
static struct object ob;
\n
"
);
fprintf
(
stream
,
"
\t
__register_frame_table (frame_table, &ob);
\n
"
);
fprintf
(
stream
,
"
\t
__register_frame_
info_
table (frame_table, &ob);
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
fprintf
(
stream
,
"static void dereg_frame () {
\n
"
);
fprintf
(
stream
,
"static void dereg_frame () {
\n
"
);
fprintf
(
stream
,
"
\t
__deregister_frame (frame_table);
\n
"
);
fprintf
(
stream
,
"
\t
__deregister_frame
_info
(frame_table);
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
fprintf
(
stream
,
"
\t
}
\n
"
);
}
}
...
...
gcc/config.in
View file @
6d8ccdbb
...
@@ -20,6 +20,9 @@
...
@@ -20,6 +20,9 @@
/* Whether rindex must be declared even if <stdlib.h> is included. */
/* Whether rindex must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_RINDEX
#undef NEED_DECLARATION_RINDEX
/* Whether getenv must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_GETENV
/* Define if you have the ANSI C header files. */
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
#undef STDC_HEADERS
...
...
gcc/config/i386/i386.h
View file @
6d8ccdbb
...
@@ -1524,8 +1524,9 @@ do { \
...
@@ -1524,8 +1524,9 @@ do { \
\
\
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) \
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) \
if ((regs_ever_live[regno] && ! call_used_regs[regno]) \
if ((regs_ever_live[regno] && ! call_used_regs[regno]) \
|| (current_function_uses_pic_offset_table \
|| ((current_function_uses_pic_offset_table \
&& regno == PIC_OFFSET_TABLE_REGNUM)) \
|| current_function_uses_const_pool) \
&& flag_pic && regno == PIC_OFFSET_TABLE_REGNUM)) \
offset += 4; \
offset += 4; \
\
\
(OFFSET) = offset + get_frame_size (); \
(OFFSET) = offset + get_frame_size (); \
...
...
gcc/crtstuff.c
View file @
6d8ccdbb
...
@@ -142,7 +142,7 @@ __do_global_dtors_aux ()
...
@@ -142,7 +142,7 @@ __do_global_dtors_aux ()
}
}
#ifdef EH_FRAME_SECTION_ASM_OP
#ifdef EH_FRAME_SECTION_ASM_OP
__deregister_frame
(
__EH_FRAME_BEGIN__
);
__deregister_frame
_info
(
__EH_FRAME_BEGIN__
);
#endif
#endif
completed
=
1
;
completed
=
1
;
}
}
...
@@ -162,15 +162,15 @@ fini_dummy ()
...
@@ -162,15 +162,15 @@ fini_dummy ()
}
}
#ifdef EH_FRAME_SECTION_ASM_OP
#ifdef EH_FRAME_SECTION_ASM_OP
/* Stick a call to __register_frame
into the .init section. For some reason
/* Stick a call to __register_frame
_info into the .init section. For some
calls with no arguments work more reliably in .init, so stick the call
reason calls with no arguments work more reliably in .init, so stick the
in another function. */
call
in another function. */
static
void
static
void
frame_dummy
()
frame_dummy
()
{
{
static
struct
object
object
;
static
struct
object
object
;
__register_frame
(
__EH_FRAME_BEGIN__
,
&
object
);
__register_frame
_info
(
__EH_FRAME_BEGIN__
,
&
object
);
}
}
static
void
static
void
...
@@ -254,7 +254,7 @@ __do_global_dtors ()
...
@@ -254,7 +254,7 @@ __do_global_dtors ()
(
*
p
)
();
(
*
p
)
();
#ifdef EH_FRAME_SECTION_ASM_OP
#ifdef EH_FRAME_SECTION_ASM_OP
__deregister_frame
(
__EH_FRAME_BEGIN__
);
__deregister_frame
_info
(
__EH_FRAME_BEGIN__
);
#endif
#endif
}
}
#endif
#endif
...
@@ -395,7 +395,7 @@ __do_global_ctors ()
...
@@ -395,7 +395,7 @@ __do_global_ctors ()
func_ptr
*
p
;
func_ptr
*
p
;
#ifdef EH_FRAME_SECTION_ASM_OP
#ifdef EH_FRAME_SECTION_ASM_OP
static
struct
object
object
;
static
struct
object
object
;
__register_frame
(
__EH_FRAME_BEGIN__
,
&
object
);
__register_frame
_info
(
__EH_FRAME_BEGIN__
,
&
object
);
#endif
#endif
for
(
p
=
__CTOR_END__
-
1
;
*
p
!=
(
func_ptr
)
-
1
;
p
--
)
for
(
p
=
__CTOR_END__
-
1
;
*
p
!=
(
func_ptr
)
-
1
;
p
--
)
(
*
p
)
();
(
*
p
)
();
...
...
gcc/except.c
View file @
6d8ccdbb
...
@@ -97,9 +97,9 @@ Boston, MA 02111-1307, USA. */
...
@@ -97,9 +97,9 @@ Boston, MA 02111-1307, USA. */
On targets that support crtstuff.c, the unwind information
On targets that support crtstuff.c, the unwind information
is stored in a section named .eh_frame and the information for the
is stored in a section named .eh_frame and the information for the
entire shared object or program is registered with a call to
entire shared object or program is registered with a call to
__register_frame. On other targets, the information for each
__register_frame
_info
. On other targets, the information for each
translation unit is registered from the file generated by collect2.
translation unit is registered from the file generated by collect2.
__register_frame is defined in frame.c, and is responsible for
__register_frame
_info
is defined in frame.c, and is responsible for
recording all of the unwind regions into one list (which is kept in a
recording all of the unwind regions into one list (which is kept in a
static variable named unwind_table_list).
static variable named unwind_table_list).
...
...
gcc/expr.c
View file @
6d8ccdbb
...
@@ -5293,7 +5293,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -5293,7 +5293,7 @@ expand_expr (exp, target, tmode, modifier)
tree
placeholder_expr
;
tree
placeholder_expr
;
/* If there is an object on the head of the placeholder list,
/* If there is an object on the head of the placeholder list,
see if some object in it
'
s references is of type TYPE. For
see if some object in its references is of type TYPE. For
further information, see tree.def. */
further information, see tree.def. */
for
(
placeholder_expr
=
placeholder_list
;
for
(
placeholder_expr
=
placeholder_list
;
placeholder_expr
!=
0
;
placeholder_expr
!=
0
;
...
@@ -5310,9 +5310,9 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -5310,9 +5310,9 @@ expand_expr (exp, target, tmode, modifier)
==
need_type
))
==
need_type
))
object
=
TREE_PURPOSE
(
placeholder_expr
);
object
=
TREE_PURPOSE
(
placeholder_expr
);
/* Find the
inn
ermost reference that is of the type we want. */
/* Find the
out
ermost reference that is of the type we want. */
for
(
elt
=
TREE_PURPOSE
(
placeholder_expr
);
for
(
elt
=
TREE_PURPOSE
(
placeholder_expr
);
elt
!=
0
elt
!=
0
&&
object
==
0
&&
(
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'r'
&&
(
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'r'
||
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'1'
||
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'1'
||
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'2'
||
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'2'
...
@@ -5323,10 +5323,7 @@ expand_expr (exp, target, tmode, modifier)
...
@@ -5323,10 +5323,7 @@ expand_expr (exp, target, tmode, modifier)
if
(
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'r'
if
(
TREE_CODE_CLASS
(
TREE_CODE
(
elt
))
==
'r'
&&
(
TYPE_MAIN_VARIANT
(
TREE_TYPE
(
TREE_OPERAND
(
elt
,
0
)))
&&
(
TYPE_MAIN_VARIANT
(
TREE_TYPE
(
TREE_OPERAND
(
elt
,
0
)))
==
need_type
))
==
need_type
))
{
object
=
TREE_OPERAND
(
elt
,
0
);
object
=
TREE_OPERAND
(
elt
,
0
);
break
;
}
if
(
object
!=
0
)
if
(
object
!=
0
)
{
{
...
...
gcc/frame.c
View file @
6d8ccdbb
...
@@ -512,7 +512,7 @@ execute_cfa_insn (void *p, struct frame_state_internal *state,
...
@@ -512,7 +512,7 @@ execute_cfa_insn (void *p, struct frame_state_internal *state,
/* Called from crtbegin.o to register the unwind info for an object. */
/* Called from crtbegin.o to register the unwind info for an object. */
void
void
__register_frame
(
void
*
begin
,
struct
object
*
ob
)
__register_frame
_info
(
void
*
begin
,
struct
object
*
ob
)
{
{
ob
->
fde_begin
=
begin
;
ob
->
fde_begin
=
begin
;
...
@@ -533,7 +533,7 @@ __register_frame (void *begin, struct object *ob)
...
@@ -533,7 +533,7 @@ __register_frame (void *begin, struct object *ob)
collect2. */
collect2. */
void
void
__register_frame_table
(
void
*
begin
,
struct
object
*
ob
)
__register_frame_
info_
table
(
void
*
begin
,
struct
object
*
ob
)
{
{
ob
->
fde_begin
=
begin
;
ob
->
fde_begin
=
begin
;
ob
->
fde_array
=
begin
;
ob
->
fde_array
=
begin
;
...
@@ -552,7 +552,7 @@ __register_frame_table (void *begin, struct object *ob)
...
@@ -552,7 +552,7 @@ __register_frame_table (void *begin, struct object *ob)
/* Called from crtend.o to deregister the unwind info for an object. */
/* Called from crtend.o to deregister the unwind info for an object. */
void
void
__deregister_frame
(
void
*
begin
)
__deregister_frame
_info
(
void
*
begin
)
{
{
struct
object
**
p
;
struct
object
**
p
;
...
...
gcc/frame.h
View file @
6d8ccdbb
...
@@ -37,11 +37,16 @@ struct object {
...
@@ -37,11 +37,16 @@ struct object {
/* Called either from crtbegin.o or a static constructor to register the
/* Called either from crtbegin.o or a static constructor to register the
unwind info for an object or translation unit, respectively. */
unwind info for an object or translation unit, respectively. */
extern
void
__register_frame
(
void
*
,
struct
object
*
);
extern
void
__register_frame_info
(
void
*
,
struct
object
*
);
/* Similar, but BEGIN is actually a pointer to a table of unwind entries
for different translation units. Called from the file generated by
collect2. */
extern
void
__register_frame_info_table
(
void
*
,
struct
object
*
);
/* Called from crtend.o to deregister the unwind info for an object. */
/* Called from crtend.o to deregister the unwind info for an object. */
extern
void
__deregister_frame
(
void
*
);
extern
void
__deregister_frame
_info
(
void
*
);
/* Called from __throw to find the registers to restore for a given
/* Called from __throw to find the registers to restore for a given
PC_TARGET. The caller should allocate a local variable of `struct
PC_TARGET. The caller should allocate a local variable of `struct
...
...
gcc/function.c
View file @
6d8ccdbb
...
@@ -2739,8 +2739,8 @@ purge_addressof_1 (loc, insn, force)
...
@@ -2739,8 +2739,8 @@ purge_addressof_1 (loc, insn, force)
else
if
(
code
==
MEM
&&
GET_CODE
(
XEXP
(
x
,
0
))
==
ADDRESSOF
&&
!
force
)
else
if
(
code
==
MEM
&&
GET_CODE
(
XEXP
(
x
,
0
))
==
ADDRESSOF
&&
!
force
)
{
{
rtx
sub
=
XEXP
(
XEXP
(
x
,
0
),
0
);
rtx
sub
=
XEXP
(
XEXP
(
x
,
0
),
0
);
if
(
GET_CODE
(
sub
)
!=
REG
)
if
(
GET_CODE
(
sub
)
==
MEM
)
sub
=
copy_rtx
(
sub
);
sub
=
gen_rtx
(
MEM
,
GET_MODE
(
x
),
copy_rtx
(
XEXP
(
sub
,
0
))
);
if
(
GET_CODE
(
sub
)
==
REG
&&
GET_MODE
(
x
)
!=
GET_MODE
(
sub
))
if
(
GET_CODE
(
sub
)
==
REG
&&
GET_MODE
(
x
)
!=
GET_MODE
(
sub
))
{
{
if
(
!
BYTES_BIG_ENDIAN
&&
!
WORDS_BIG_ENDIAN
)
if
(
!
BYTES_BIG_ENDIAN
&&
!
WORDS_BIG_ENDIAN
)
...
...
gcc/haifa-sched.c
View file @
6d8ccdbb
...
@@ -884,17 +884,19 @@ remove_dependence (insn, elem)
...
@@ -884,17 +884,19 @@ remove_dependence (insn, elem)
rtx
prev
,
link
;
rtx
prev
,
link
;
int
found
=
0
;
int
found
=
0
;
for
(
prev
=
0
,
link
=
LOG_LINKS
(
insn
);
link
;
for
(
prev
=
0
,
link
=
LOG_LINKS
(
insn
);
link
;
link
=
XEXP
(
link
,
1
))
prev
=
link
,
link
=
XEXP
(
link
,
1
))
{
{
if
(
XEXP
(
link
,
0
)
==
elem
)
if
(
XEXP
(
link
,
0
)
==
elem
)
{
{
RTX_INTEGRATED_P
(
link
)
=
1
;
if
(
prev
)
if
(
prev
)
XEXP
(
prev
,
1
)
=
XEXP
(
link
,
1
);
XEXP
(
prev
,
1
)
=
XEXP
(
link
,
1
);
else
else
LOG_LINKS
(
insn
)
=
XEXP
(
link
,
1
);
LOG_LINKS
(
insn
)
=
XEXP
(
link
,
1
);
found
=
1
;
found
=
1
;
}
}
else
prev
=
link
;
}
}
if
(
!
found
)
if
(
!
found
)
...
@@ -3210,6 +3212,9 @@ priority (insn)
...
@@ -3210,6 +3212,9 @@ priority (insn)
rtx
next
;
rtx
next
;
int
next_priority
;
int
next_priority
;
if
(
RTX_INTEGRATED_P
(
link
))
continue
;
next
=
XEXP
(
link
,
0
);
next
=
XEXP
(
link
,
0
);
/* critical path is meaningful in block boundaries only */
/* critical path is meaningful in block boundaries only */
...
...
gcc/install.texi
View file @
6d8ccdbb
...
@@ -191,7 +191,7 @@ will print out whether the Haifa scheduler is enabled when it is run.
...
@@ -191,7 +191,7 @@ will print out whether the Haifa scheduler is enabled when it is run.
@cindex
Objective
C
threads
@cindex
Objective
C
threads
@cindex
threads
,
Objective
C
@cindex
threads
,
Objective
C
@item
--
enable
-
objc
threads
=
@var
{
type
}
@item
--
enable
-
threads
=
@var
{
type
}
Certain
systems
,
notably
Linux
-
based
GNU
systems
,
can
'
t
be
relied
on
to
Certain
systems
,
notably
Linux
-
based
GNU
systems
,
can
'
t
be
relied
on
to
supply
a
threads
facility
for
the
Objective
C
runtime
and
so
will
supply
a
threads
facility
for
the
Objective
C
runtime
and
so
will
default
to
single
-
threaded
runtime
.
They
may
,
however
,
have
a
library
default
to
single
-
threaded
runtime
.
They
may
,
however
,
have
a
library
...
...
gcc/pexecute.c
View file @
6d8ccdbb
...
@@ -236,7 +236,7 @@ extern int _spawnvp ();
...
@@ -236,7 +236,7 @@ extern int _spawnvp ();
/* This is a kludge to get around the Microsoft C spawn functions' propensity
/* This is a kludge to get around the Microsoft C spawn functions' propensity
to remove the outermost set of double quotes from all arguments. */
to remove the outermost set of double quotes from all arguments. */
c
onst
c
har
*
const
*
char
*
const
*
fix_argv
(
argvec
)
fix_argv
(
argvec
)
char
**
argvec
;
char
**
argvec
;
{
{
...
@@ -267,7 +267,7 @@ fix_argv (argvec)
...
@@ -267,7 +267,7 @@ fix_argv (argvec)
argvec
[
i
]
=
temp
;
argvec
[
i
]
=
temp
;
}
}
return
(
c
onst
c
har
*
const
*
)
argvec
;
return
(
char
*
const
*
)
argvec
;
}
}
#endif
/* ! defined (__CYGWIN32__) */
#endif
/* ! defined (__CYGWIN32__) */
...
@@ -278,7 +278,8 @@ pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
...
@@ -278,7 +278,8 @@ pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
char
*
const
*
argv
;
char
*
const
*
argv
;
const
char
*
this_pname
;
const
char
*
this_pname
;
const
char
*
temp_base
;
const
char
*
temp_base
;
char
**
errmsg_fmt
,
**
errmsg_arg
;
char
**
errmsg_fmt
;
const
char
**
errmsg_arg
;
int
flags
;
int
flags
;
{
{
int
pid
;
int
pid
;
...
@@ -286,7 +287,7 @@ pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
...
@@ -286,7 +287,7 @@ pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
if
((
flags
&
PEXECUTE_ONE
)
!=
PEXECUTE_ONE
)
if
((
flags
&
PEXECUTE_ONE
)
!=
PEXECUTE_ONE
)
abort
();
abort
();
pid
=
(
flags
&
PEXECUTE_SEARCH
?
_spawnvp
:
_spawnv
)
pid
=
(
flags
&
PEXECUTE_SEARCH
?
_spawnvp
:
_spawnv
)
(
_P_NOWAIT
,
program
,
fix_argv
(
argv
));
(
_P_NOWAIT
,
program
,
fix_argv
(
argv
));
if
(
pid
==
-
1
)
if
(
pid
==
-
1
)
{
{
*
errmsg_fmt
=
install_error_msg
;
*
errmsg_fmt
=
install_error_msg
;
...
...
gcc/sched.c
View file @
6d8ccdbb
...
@@ -431,17 +431,19 @@ remove_dependence (insn, elem)
...
@@ -431,17 +431,19 @@ remove_dependence (insn, elem)
rtx
prev
,
link
;
rtx
prev
,
link
;
int
found
=
0
;
int
found
=
0
;
for
(
prev
=
0
,
link
=
LOG_LINKS
(
insn
);
link
;
for
(
prev
=
0
,
link
=
LOG_LINKS
(
insn
);
link
;
link
=
XEXP
(
link
,
1
))
prev
=
link
,
link
=
XEXP
(
link
,
1
))
{
{
if
(
XEXP
(
link
,
0
)
==
elem
)
if
(
XEXP
(
link
,
0
)
==
elem
)
{
{
RTX_INTEGRATED_P
(
link
)
=
1
;
if
(
prev
)
if
(
prev
)
XEXP
(
prev
,
1
)
=
XEXP
(
link
,
1
);
XEXP
(
prev
,
1
)
=
XEXP
(
link
,
1
);
else
else
LOG_LINKS
(
insn
)
=
XEXP
(
link
,
1
);
LOG_LINKS
(
insn
)
=
XEXP
(
link
,
1
);
found
=
1
;
found
=
1
;
}
}
else
prev
=
link
;
}
}
if
(
!
found
)
if
(
!
found
)
...
@@ -919,6 +921,11 @@ priority (insn)
...
@@ -919,6 +921,11 @@ priority (insn)
{
{
rtx
x
=
XEXP
(
prev
,
0
);
rtx
x
=
XEXP
(
prev
,
0
);
/* If this was a duplicate of a dependence we already deleted,
ignore it. */
if
(
RTX_INTEGRATED_P
(
prev
))
continue
;
/* A dependence pointing to a note or deleted insn is always
/* A dependence pointing to a note or deleted insn is always
obsolete, because sched_analyze_insn will have created any
obsolete, because sched_analyze_insn will have created any
necessary new dependences which replace it. Notes and deleted
necessary new dependences which replace it. Notes and deleted
...
...
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