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
1f9081d1
Commit
1f9081d1
authored
Jun 09, 2011
by
Xinliang David Li
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert r174848,174849
From-SVN: r174864
parent
54466dde
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
33 additions
and
177 deletions
+33
-177
gcc/cgraphunit.c
+0
-3
gcc/common.opt
+0
-4
gcc/cprop.c
+4
-5
gcc/doc/invoke.texi
+1
-8
gcc/except.c
+4
-8
gcc/gcse.c
+10
-13
gcc/passes.c
+6
-100
gcc/testsuite/gcc.dg/dump-pass.c
+0
-14
gcc/tree-complex.c
+3
-6
gcc/tree-eh.c
+3
-10
gcc/tree-pass.h
+0
-1
gcc/tree-stdarg.c
+2
-5
No files found.
gcc/cgraphunit.c
View file @
1f9081d1
...
@@ -1117,9 +1117,6 @@ cgraph_finalize_compilation_unit (void)
...
@@ -1117,9 +1117,6 @@ cgraph_finalize_compilation_unit (void)
fflush
(
stderr
);
fflush
(
stderr
);
}
}
if
(
flag_dump_passes
)
dump_passes
();
/* Gimplify and lower all functions, compute reachability and
/* Gimplify and lower all functions, compute reachability and
remove unreachable nodes. */
remove unreachable nodes. */
cgraph_analyze_functions
();
cgraph_analyze_functions
();
...
...
gcc/common.opt
View file @
1f9081d1
...
@@ -1012,10 +1012,6 @@ fdump-noaddr
...
@@ -1012,10 +1012,6 @@ fdump-noaddr
Common Report Var(flag_dump_noaddr)
Common Report Var(flag_dump_noaddr)
Suppress output of addresses in debugging dumps
Suppress output of addresses in debugging dumps
fdump-passes
Common Var(flag_dump_passes) Init(0)
Dump optimization passes
fdump-unnumbered
fdump-unnumbered
Common Report Var(flag_dump_unnumbered)
Common Report Var(flag_dump_unnumbered)
Suppress output of instruction numbers, line number notes and addresses in debugging dumps
Suppress output of instruction numbers, line number notes and addresses in debugging dumps
...
...
gcc/cprop.c
View file @
1f9081d1
...
@@ -1843,17 +1843,15 @@ one_cprop_pass (void)
...
@@ -1843,17 +1843,15 @@ one_cprop_pass (void)
static
bool
static
bool
gate_rtl_cprop
(
void
)
gate_rtl_cprop
(
void
)
{
{
return
optimize
>
0
&&
flag_gcse
;
return
optimize
>
0
&&
flag_gcse
&&
!
cfun
->
calls_setjmp
&&
dbg_cnt
(
cprop
);
}
}
static
unsigned
int
static
unsigned
int
execute_rtl_cprop
(
void
)
execute_rtl_cprop
(
void
)
{
{
int
changed
;
int
changed
;
if
(
cfun
->
calls_setjmp
||
!
dbg_cnt
(
cprop
))
return
0
;
delete_unreachable_blocks
();
delete_unreachable_blocks
();
df_set_flags
(
DF_LR_RUN_DCE
);
df_set_flags
(
DF_LR_RUN_DCE
);
df_analyze
();
df_analyze
();
...
@@ -1884,3 +1882,4 @@ struct rtl_opt_pass pass_rtl_cprop =
...
@@ -1884,3 +1882,4 @@ struct rtl_opt_pass pass_rtl_cprop =
TODO_verify_flow
|
TODO_ggc_collect
/* todo_flags_finish */
TODO_verify_flow
|
TODO_ggc_collect
/* todo_flags_finish */
}
}
};
};
gcc/doc/invoke.texi
View file @
1f9081d1
...
@@ -291,7 +291,6 @@ Objective-C and Objective-C++ Dialects}.
...
@@ -291,7 +291,6 @@ Objective-C and Objective-C++ Dialects}.
-
fdump
-
translation
-
unit
@
r
{[}-@
var
{
n
}@
r
{]}
@
gol
-
fdump
-
translation
-
unit
@
r
{[}-@
var
{
n
}@
r
{]}
@
gol
-
fdump
-
class
-
hierarchy
@
r
{[}-@
var
{
n
}@
r
{]}
@
gol
-
fdump
-
class
-
hierarchy
@
r
{[}-@
var
{
n
}@
r
{]}
@
gol
-
fdump
-
ipa
-
all
-
fdump
-
ipa
-
cgraph
-
fdump
-
ipa
-
inline
@
gol
-
fdump
-
ipa
-
all
-
fdump
-
ipa
-
cgraph
-
fdump
-
ipa
-
inline
@
gol
-
fdump
-
passes
@
gol
-
fdump
-
statistics
@
gol
-
fdump
-
statistics
@
gol
-
fdump
-
tree
-
all
@
gol
-
fdump
-
tree
-
all
@
gol
-
fdump
-
tree
-
original
@
r
{[}-@
var
{
n
}@
r
{]}
@
gol
-
fdump
-
tree
-
original
@
r
{[}-@
var
{
n
}@
r
{]}
@
gol
...
@@ -5072,8 +5071,7 @@ pair seperated by a colon. The range is inclusive in both ends. If the range
...
@@ -5072,8 +5071,7 @@ pair seperated by a colon. The range is inclusive in both ends. If the range
is
trivial
,
the
number
pair
can
be
simplified
as
a
single
number
.
If
the
is
trivial
,
the
number
pair
can
be
simplified
as
a
single
number
.
If
the
function
's cgraph node'
s
@
var
{
uid
}
is
falling
within
one
of
the
specified
ranges
,
function
's cgraph node'
s
@
var
{
uid
}
is
falling
within
one
of
the
specified
ranges
,
the
@
var
{
pass
}
is
disabled
for
that
function
.
The
@
var
{
uid
}
is
shown
in
the
the
@
var
{
pass
}
is
disabled
for
that
function
.
The
@
var
{
uid
}
is
shown
in
the
function
header
of
a
dump
file
,
and
pass
names
can
be
dumped
by
using
option
function
header
of
a
dump
file
.
@
option
{-
fdump
-
passes
}.
@
item
-
fdisable
-
tree
-@
var
{
pass
}
@
item
-
fdisable
-
tree
-@
var
{
pass
}
@
item
-
fdisable
-
tree
-@
var
{
pass
}=@
var
{
range
-
list
}
@
item
-
fdisable
-
tree
-@
var
{
pass
}=@
var
{
range
-
list
}
...
@@ -5497,11 +5495,6 @@ Dump after function inlining.
...
@@ -5497,11 +5495,6 @@ Dump after function inlining.
@end table
@end table
@item -fdump-passes
@opindex fdump-passes
Dump the list of optimization passes that are turned on and off by
the current command line options.
@item -fdump-statistics-@var{option}
@item -fdump-statistics-@var{option}
@opindex fdump-statistics
@opindex fdump-statistics
Enable and control dumping of pass statistics in a separate file. The
Enable and control dumping of pass statistics in a separate file. The
...
...
gcc/except.c
View file @
1f9081d1
...
@@ -1440,17 +1440,14 @@ finish_eh_generation (void)
...
@@ -1440,17 +1440,14 @@ finish_eh_generation (void)
static
bool
static
bool
gate_handle_eh
(
void
)
gate_handle_eh
(
void
)
{
{
return
true
;
/* Nothing to do if no regions created. */
return
cfun
->
eh
->
region_tree
!=
NULL
;
}
}
/* Complete generation of exception handling code. */
/* Complete generation of exception handling code. */
static
unsigned
int
static
unsigned
int
rest_of_handle_eh
(
void
)
rest_of_handle_eh
(
void
)
{
{
/* Nothing to do if no regions created. */
if
(
cfun
->
eh
->
region_tree
==
NULL
)
return
0
;
finish_eh_generation
();
finish_eh_generation
();
cleanup_cfg
(
CLEANUP_NO_INSN_DEL
);
cleanup_cfg
(
CLEANUP_NO_INSN_DEL
);
return
0
;
return
0
;
...
@@ -2395,9 +2392,6 @@ convert_to_eh_region_ranges (void)
...
@@ -2395,9 +2392,6 @@ convert_to_eh_region_ranges (void)
int
min_labelno
=
0
,
max_labelno
=
0
;
int
min_labelno
=
0
,
max_labelno
=
0
;
int
saved_call_site_base
=
call_site_base
;
int
saved_call_site_base
=
call_site_base
;
if
(
cfun
->
eh
->
region_tree
==
NULL
)
return
0
;
crtl
->
eh
.
action_record_data
=
VEC_alloc
(
uchar
,
gc
,
64
);
crtl
->
eh
.
action_record_data
=
VEC_alloc
(
uchar
,
gc
,
64
);
ar_hash
=
htab_create
(
31
,
action_record_hash
,
action_record_eq
,
free
);
ar_hash
=
htab_create
(
31
,
action_record_hash
,
action_record_eq
,
free
);
...
@@ -2649,6 +2643,8 @@ static bool
...
@@ -2649,6 +2643,8 @@ static bool
gate_convert_to_eh_region_ranges
(
void
)
gate_convert_to_eh_region_ranges
(
void
)
{
{
/* Nothing to do for SJLJ exceptions or if no regions created. */
/* Nothing to do for SJLJ exceptions or if no regions created. */
if
(
cfun
->
eh
->
region_tree
==
NULL
)
return
false
;
if
(
targetm
.
except_unwind_info
(
&
global_options
)
==
UI_SJLJ
)
if
(
targetm
.
except_unwind_info
(
&
global_options
)
==
UI_SJLJ
)
return
false
;
return
false
;
return
true
;
return
true
;
...
...
gcc/gcse.c
View file @
1f9081d1
...
@@ -3713,17 +3713,15 @@ static bool
...
@@ -3713,17 +3713,15 @@ static bool
gate_rtl_pre
(
void
)
gate_rtl_pre
(
void
)
{
{
return
optimize
>
0
&&
flag_gcse
return
optimize
>
0
&&
flag_gcse
&&
optimize_function_for_speed_p
(
cfun
);
&&
!
cfun
->
calls_setjmp
&&
optimize_function_for_speed_p
(
cfun
)
&&
dbg_cnt
(
pre
);
}
}
static
unsigned
int
static
unsigned
int
execute_rtl_pre
(
void
)
execute_rtl_pre
(
void
)
{
{
int
changed
;
int
changed
;
if
(
cfun
->
calls_setjmp
||
!
dbg_cnt
(
pre
))
return
0
;
delete_unreachable_blocks
();
delete_unreachable_blocks
();
df_analyze
();
df_analyze
();
changed
=
one_pre_gcse_pass
();
changed
=
one_pre_gcse_pass
();
...
@@ -3737,20 +3735,18 @@ static bool
...
@@ -3737,20 +3735,18 @@ static bool
gate_rtl_hoist
(
void
)
gate_rtl_hoist
(
void
)
{
{
return
optimize
>
0
&&
flag_gcse
return
optimize
>
0
&&
flag_gcse
/* It does not make sense to run code hoisting unless we are optimizing
&&
!
cfun
->
calls_setjmp
for code size -- it rarely makes programs faster, and can make then
/* It does not make sense to run code hoisting unless we are optimizing
bigger if we did PRE (when optimizing for space, we don't run PRE). */
for code size -- it rarely makes programs faster, and can make then
&&
optimize_function_for_size_p
(
cfun
);
bigger if we did PRE (when optimizing for space, we don't run PRE). */
&&
optimize_function_for_size_p
(
cfun
)
&&
dbg_cnt
(
hoist
);
}
}
static
unsigned
int
static
unsigned
int
execute_rtl_hoist
(
void
)
execute_rtl_hoist
(
void
)
{
{
int
changed
;
int
changed
;
if
(
cfun
->
calls_setjmp
||
!
dbg_cnt
(
hoist
))
return
0
;
delete_unreachable_blocks
();
delete_unreachable_blocks
();
df_analyze
();
df_analyze
();
changed
=
one_code_hoisting_pass
();
changed
=
one_code_hoisting_pass
();
...
@@ -3803,3 +3799,4 @@ struct rtl_opt_pass pass_rtl_hoist =
...
@@ -3803,3 +3799,4 @@ struct rtl_opt_pass pass_rtl_hoist =
};
};
#include "gt-gcse.h"
#include "gt-gcse.h"
gcc/passes.c
View file @
1f9081d1
...
@@ -478,7 +478,7 @@ passr_eq (const void *p1, const void *p2)
...
@@ -478,7 +478,7 @@ passr_eq (const void *p1, const void *p2)
return
!
strcmp
(
s1
->
unique_name
,
s2
->
unique_name
);
return
!
strcmp
(
s1
->
unique_name
,
s2
->
unique_name
);
}
}
static
htab_t
name_to_pass_map
=
NULL
;
static
htab_t
pass_name_tab
=
NULL
;
/* Register PASS with NAME. */
/* Register PASS with NAME. */
...
@@ -488,11 +488,11 @@ register_pass_name (struct opt_pass *pass, const char *name)
...
@@ -488,11 +488,11 @@ register_pass_name (struct opt_pass *pass, const char *name)
struct
pass_registry
**
slot
;
struct
pass_registry
**
slot
;
struct
pass_registry
pr
;
struct
pass_registry
pr
;
if
(
!
name_to_pass_map
)
if
(
!
pass_name_tab
)
name_to_pass_map
=
htab_create
(
256
,
passr_hash
,
passr_eq
,
NULL
);
pass_name_tab
=
htab_create
(
256
,
passr_hash
,
passr_eq
,
NULL
);
pr
.
unique_name
=
name
;
pr
.
unique_name
=
name
;
slot
=
(
struct
pass_registry
**
)
htab_find_slot
(
name_to_pass_map
,
&
pr
,
INSERT
);
slot
=
(
struct
pass_registry
**
)
htab_find_slot
(
pass_name_tab
,
&
pr
,
INSERT
);
if
(
!*
slot
)
if
(
!*
slot
)
{
{
struct
pass_registry
*
new_pr
;
struct
pass_registry
*
new_pr
;
...
@@ -506,101 +506,6 @@ register_pass_name (struct opt_pass *pass, const char *name)
...
@@ -506,101 +506,6 @@ register_pass_name (struct opt_pass *pass, const char *name)
return
;
/* Ignore plugin passes. */
return
;
/* Ignore plugin passes. */
}
}
/* Map from pass id to canonicalized pass name. */
typedef
const
char
*
char_ptr
;
DEF_VEC_P
(
char_ptr
);
DEF_VEC_ALLOC_P
(
char_ptr
,
heap
);
static
VEC
(
char_ptr
,
heap
)
*
pass_tab
=
NULL
;
/* Callback function for traversing NAME_TO_PASS_MAP. */
static
int
pass_traverse
(
void
**
slot
,
void
*
data
ATTRIBUTE_UNUSED
)
{
struct
pass_registry
**
p
=
(
struct
pass_registry
**
)
slot
;
struct
opt_pass
*
pass
=
(
*
p
)
->
pass
;
gcc_assert
(
pass
->
static_pass_number
>
0
);
gcc_assert
(
pass_tab
);
VEC_replace
(
char_ptr
,
pass_tab
,
pass
->
static_pass_number
,
(
*
p
)
->
unique_name
);
return
1
;
}
/* The function traverses NAME_TO_PASS_MAP and creates a pass info
table for dumping purpose. */
static
void
create_pass_tab
(
void
)
{
if
(
!
flag_dump_passes
)
return
;
VEC_safe_grow_cleared
(
char_ptr
,
heap
,
pass_tab
,
passes_by_id_size
+
1
);
htab_traverse
(
name_to_pass_map
,
pass_traverse
,
NULL
);
}
static
bool
override_gate_status
(
struct
opt_pass
*
,
tree
,
bool
);
/* Dump the instantiated name for PASS. IS_ON indicates if PASS
is turned on or not. */
static
void
dump_one_pass
(
struct
opt_pass
*
pass
,
int
pass_indent
)
{
int
indent
=
3
*
pass_indent
;
const
char
*
pn
;
bool
is_on
,
is_really_on
;
is_on
=
(
pass
->
gate
==
NULL
)
?
true
:
pass
->
gate
();
is_really_on
=
override_gate_status
(
pass
,
NULL
,
is_on
);
if
(
pass
->
static_pass_number
<=
0
)
pn
=
pass
->
name
;
else
pn
=
VEC_index
(
char_ptr
,
pass_tab
,
pass
->
static_pass_number
);
fprintf
(
stderr
,
"%*s%-40s%*s:%s%s
\n
"
,
indent
,
" "
,
pn
,
(
15
-
indent
<
0
?
0
:
15
-
indent
),
" "
,
is_on
?
" ON"
:
" OFF"
,
((
!
is_on
)
==
(
!
is_really_on
)
?
""
:
(
is_really_on
?
" (FORCED_ON)"
:
" (FORCED_OFF)"
)));
}
/* Dump pass list PASS with indentation INDENT. */
static
void
dump_pass_list
(
struct
opt_pass
*
pass
,
int
indent
)
{
do
{
dump_one_pass
(
pass
,
indent
);
if
(
pass
->
sub
)
dump_pass_list
(
pass
->
sub
,
indent
+
1
);
pass
=
pass
->
next
;
}
while
(
pass
);
}
/* Dump all optimization passes. */
void
dump_passes
(
void
)
{
create_pass_tab
();
dump_pass_list
(
all_lowering_passes
,
1
);
dump_pass_list
(
all_small_ipa_passes
,
1
);
dump_pass_list
(
all_regular_ipa_passes
,
1
);
dump_pass_list
(
all_lto_gen_passes
,
1
);
dump_pass_list
(
all_passes
,
1
);
}
/* Returns the pass with NAME. */
/* Returns the pass with NAME. */
static
struct
opt_pass
*
static
struct
opt_pass
*
...
@@ -608,8 +513,9 @@ get_pass_by_name (const char *name)
...
@@ -608,8 +513,9 @@ get_pass_by_name (const char *name)
{
{
struct
pass_registry
**
slot
,
pr
;
struct
pass_registry
**
slot
,
pr
;
gcc_assert
(
pass_name_tab
);
pr
.
unique_name
=
name
;
pr
.
unique_name
=
name
;
slot
=
(
struct
pass_registry
**
)
htab_find_slot
(
name_to_pass_map
,
slot
=
(
struct
pass_registry
**
)
htab_find_slot
(
pass_name_tab
,
&
pr
,
NO_INSERT
);
&
pr
,
NO_INSERT
);
if
(
!
slot
||
!*
slot
)
if
(
!
slot
||
!*
slot
)
...
...
gcc/testsuite/gcc.dg/dump-pass.c
View file @
1f9081d1
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-passes" } */
unsigned
res
;
void
foo
(
unsigned
code
,
int
len
)
{
int
i
;
for
(
i
=
0
;
i
<
len
;
i
++
)
res
|=
code
&
1
;
}
/* { dg-prune-output ".*" } */
gcc/tree-complex.c
View file @
1f9081d1
...
@@ -1569,11 +1569,6 @@ tree_lower_complex (void)
...
@@ -1569,11 +1569,6 @@ tree_lower_complex (void)
gimple_stmt_iterator
gsi
;
gimple_stmt_iterator
gsi
;
basic_block
bb
;
basic_block
bb
;
/* With errors, normal optimization passes are not run. If we don't
lower complex operations at all, rtl expansion will abort. */
if
(
cfun
->
curr_properties
&
PROP_gimple_lcx
)
return
0
;
if
(
!
init_dont_simulate_again
())
if
(
!
init_dont_simulate_again
())
return
0
;
return
0
;
...
@@ -1639,7 +1634,9 @@ struct gimple_opt_pass pass_lower_complex =
...
@@ -1639,7 +1634,9 @@ struct gimple_opt_pass pass_lower_complex =
static
bool
static
bool
gate_no_optimization
(
void
)
gate_no_optimization
(
void
)
{
{
return
true
;
/* With errors, normal optimization passes are not run. If we don't
lower complex operations at all, rtl expansion will abort. */
return
!
(
cfun
->
curr_properties
&
PROP_gimple_lcx
);
}
}
struct
gimple_opt_pass
pass_lower_complex_O0
=
struct
gimple_opt_pass
pass_lower_complex_O0
=
...
...
gcc/tree-eh.c
View file @
1f9081d1
...
@@ -3234,9 +3234,6 @@ execute_lower_eh_dispatch (void)
...
@@ -3234,9 +3234,6 @@ execute_lower_eh_dispatch (void)
bool
any_rewritten
=
false
;
bool
any_rewritten
=
false
;
bool
redirected
=
false
;
bool
redirected
=
false
;
if
(
cfun
->
eh
->
region_tree
==
NULL
)
return
0
;
assign_filter_values
();
assign_filter_values
();
FOR_EACH_BB
(
bb
)
FOR_EACH_BB
(
bb
)
...
@@ -3257,7 +3254,7 @@ execute_lower_eh_dispatch (void)
...
@@ -3257,7 +3254,7 @@ execute_lower_eh_dispatch (void)
static
bool
static
bool
gate_lower_eh_dispatch
(
void
)
gate_lower_eh_dispatch
(
void
)
{
{
return
true
;
return
cfun
->
eh
->
region_tree
!=
NULL
;
}
}
struct
gimple_opt_pass
pass_lower_eh_dispatch
=
struct
gimple_opt_pass
pass_lower_eh_dispatch
=
...
@@ -3986,12 +3983,8 @@ execute_cleanup_eh_1 (void)
...
@@ -3986,12 +3983,8 @@ execute_cleanup_eh_1 (void)
static
unsigned
int
static
unsigned
int
execute_cleanup_eh
(
void
)
execute_cleanup_eh
(
void
)
{
{
int
ret
;
int
ret
=
execute_cleanup_eh_1
()
;
if
(
cfun
->
eh
==
NULL
||
cfun
->
eh
->
region_tree
==
NULL
)
return
0
;
ret
=
execute_cleanup_eh_1
();
/* If the function no longer needs an EH personality routine
/* If the function no longer needs an EH personality routine
clear it. This exposes cross-language inlining opportunities
clear it. This exposes cross-language inlining opportunities
and avoids references to a never defined personality routine. */
and avoids references to a never defined personality routine. */
...
@@ -4005,7 +3998,7 @@ execute_cleanup_eh (void)
...
@@ -4005,7 +3998,7 @@ execute_cleanup_eh (void)
static
bool
static
bool
gate_cleanup_eh
(
void
)
gate_cleanup_eh
(
void
)
{
{
return
true
;
return
cfun
->
eh
!=
NULL
&&
cfun
->
eh
->
region_tree
!=
NULL
;
}
}
struct
gimple_opt_pass
pass_cleanup_eh
=
{
struct
gimple_opt_pass
pass_cleanup_eh
=
{
...
...
gcc/tree-pass.h
View file @
1f9081d1
...
@@ -639,6 +639,5 @@ extern void do_per_function_toporder (void (*) (void *), void *);
...
@@ -639,6 +639,5 @@ extern void do_per_function_toporder (void (*) (void *), void *);
extern
void
disable_pass
(
const
char
*
);
extern
void
disable_pass
(
const
char
*
);
extern
void
enable_pass
(
const
char
*
);
extern
void
enable_pass
(
const
char
*
);
extern
void
dump_passes
(
void
);
#endif
/* GCC_TREE_PASS_H */
#endif
/* GCC_TREE_PASS_H */
gcc/tree-stdarg.c
View file @
1f9081d1
...
@@ -627,7 +627,8 @@ check_all_va_list_escapes (struct stdarg_info *si)
...
@@ -627,7 +627,8 @@ check_all_va_list_escapes (struct stdarg_info *si)
static
bool
static
bool
gate_optimize_stdarg
(
void
)
gate_optimize_stdarg
(
void
)
{
{
return
true
;
/* This optimization is only for stdarg functions. */
return
cfun
->
stdarg
!=
0
;
}
}
...
@@ -644,10 +645,6 @@ execute_optimize_stdarg (void)
...
@@ -644,10 +645,6 @@ execute_optimize_stdarg (void)
const
char
*
funcname
=
NULL
;
const
char
*
funcname
=
NULL
;
tree
cfun_va_list
;
tree
cfun_va_list
;
/* This optimization is only for stdarg functions. */
if
(
cfun
->
stdarg
==
0
)
return
0
;
cfun
->
va_list_gpr_size
=
0
;
cfun
->
va_list_gpr_size
=
0
;
cfun
->
va_list_fpr_size
=
0
;
cfun
->
va_list_fpr_size
=
0
;
memset
(
&
si
,
0
,
sizeof
(
si
));
memset
(
&
si
,
0
,
sizeof
(
si
));
...
...
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