gcc/gcc
Jan Hubicka 367c959f03 ipa-inline-analysis.c (do_estimate_edge_time): Relax check for ipa profiles.
* ipa-inline-analysis.c (do_estimate_edge_time): Relax
	check for ipa profiles.

From-SVN: r278179
2019-11-13 22:14:24 +00:00
..
ada introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
brig
c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
c-family Add C2x *_NORM_MAX constants to <float.h>. 2019-11-13 15:25:15 +00:00
common Remove option_default_params and option_validate_param hooks. 2019-11-12 10:10:44 +00:00
config Sanitize the constant argument for rotr<mode>3 2019-11-13 18:50:15 +00:00
cp PR c++/89070 - bogus [[nodiscard]] warning in SFINAE. 2019-11-13 15:59:53 +00:00
d Add C2x *_NORM_MAX constants to <float.h>. 2019-11-13 15:25:15 +00:00
doc Enhance syntax of -fdbg-cnt. 2019-11-13 13:47:29 +00:00
fortran Fortran] Use proper type for hidden is-present argument 2019-11-13 09:09:42 +01:00
ginclude Add C2x *_NORM_MAX constants to <float.h>. 2019-11-13 15:25:15 +00:00
go Use more SET_OPTION_IF_UNSET. 2019-11-12 10:10:58 +00:00
jit
lto Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
objc
objcp
po
testsuite re PR ipa/92421 (ICE in inline_small_functions, at ipa-inline.c:2001 since r277759) 2019-11-13 21:02:11 +00:00
ABOUT-GCC-NLS
acinclude.m4
aclocal.m4
addresses.h
alias.c
alias.h
align.h
alloc-pool.c
alloc-pool.h
array-traits.h
asan.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
asan.h
attribs.c
attribs.h
auto-inc-dec.c
auto-profile.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
auto-profile.h
backend.h
BASE-VER
basic-block.h
bb-reorder.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
bb-reorder.h
bitmap.c
bitmap.h
brig-builtins.def
builtin-attrs.def
builtin-types.def
builtins.c Add C2x *_NORM_MAX constants to <float.h>. 2019-11-13 15:25:15 +00:00
builtins.def
builtins.h
caller-save.c
calls.c introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
calls.h
ccmp.c
ccmp.h
cfg-flags.def
cfg.c
cfg.h
cfganal.c
cfganal.h
cfgbuild.c
cfgbuild.h
cfgcleanup.c Free dominance info at the beginning of pass_jump_after_combine 2019-11-12 14:24:35 +00:00
cfgcleanup.h
cfgexpand.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
cfgexpand.h
cfghooks.c
cfghooks.h
cfgloop.c
cfgloop.h
cfgloopanal.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
cfgloopmanip.c
cfgloopmanip.h
cfgrtl.c
cfgrtl.h
cgraph.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
cgraph.h cgraph.h (struct cgraph_node): Add ipcp_clone flag. 2019-11-10 11:25:38 +00:00
cgraphbuild.c Remove cgraph_global_info. 2019-10-30 07:55:39 +00:00
cgraphclones.c cgraph.h (struct cgraph_node): Add ipcp_clone flag. 2019-11-10 11:25:38 +00:00
cgraphunit.c symtab.c: Fix comment typos. 2019-11-09 00:56:37 +01:00
ChangeLog ipa-inline-analysis.c (do_estimate_edge_time): Relax check for ipa profiles. 2019-11-13 22:14:24 +00:00
ChangeLog-1997
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
cif-code.def Remove gimple_call_types_likely_match_p (PR 70929) 2019-11-07 11:55:43 +01:00
collect2-aix.c
collect2-aix.h
collect2.c
collect2.h
collect-utils.c
collect-utils.h
color-macros.h
combine-stack-adj.c
combine.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
common.md
common.opt Enhance syntax of -fdbg-cnt. 2019-11-13 13:47:29 +00:00
compare-elim.c
conditions.h
config.build
config.gcc Support 64-bit double and 64-bit long double configurations. 2019-11-07 09:19:31 +00:00
config.host
config.in [RS6000] Remove TARGET_TLS_MARKERS and require binutils 2.20 2019-11-12 11:39:47 +10:30
configure [RS6000] Remove TARGET_TLS_MARKERS and require binutils 2.20 2019-11-12 11:39:47 +10:30
configure.ac [RS6000] Remove TARGET_TLS_MARKERS and require binutils 2.20 2019-11-12 11:39:47 +10:30
context.c
context.h
convert.c
convert.h
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
coretypes.h Add a simulate_enum_decl langhook 2019-10-29 08:39:45 +00:00
coverage.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
coverage.h
cppbuiltin.c
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
cse.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
cselib.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
cselib.h
cstamp-h.in
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
DATESTAMP Daily bump. 2019-11-13 00:16:25 +00:00
dbgcnt.c Come up with selftests for dbgcnt. 2019-11-13 15:13:16 +00:00
dbgcnt.def Sort debug counter names. 2019-11-11 15:23:31 +00:00
dbgcnt.h
dbxout.c
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c
debug.h
defaults.h
DEV-PHASE
df-core.c
df-problems.c
df-scan.c
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic-format-json.cc Come up with json::integer_number and use it in GCOV. 2019-10-22 09:58:27 +00:00
diagnostic-show-locus.c
diagnostic-url.h
diagnostic.c
diagnostic.def
diagnostic.h
dojump.c
dojump.h
dominance.c
dominance.h
domwalk.c
domwalk.h
double-int.c
double-int.h
dse.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
dump-context.h
dumpfile.c [dump] small source cleanup 2019-10-24 16:03:26 +00:00
dumpfile.h
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c
dwarf2out.c
dwarf2out.h
early-remat.c
edit-context.c
edit-context.h
emit-rtl.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
emit-rtl.h
errors.c
errors.h
escaped_string.h
et-forest.c
et-forest.h
except.c
except.h
exec-tool.in
explow.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
explow.h
expmed.c Fix conversions for built-in operator overloading candidates. 2019-11-05 18:53:53 -05:00
expmed.h
expr.c Allow libcalls for complex memcpy when optimizing for size. 2019-11-05 14:34:40 -08:00
expr.h
fibonacci_heap.c
fibonacci_heap.h Initialize a field in fibonacci_node. 2019-10-23 11:29:10 +00:00
file-find.c
file-find.h
file-prefix-map.c
file-prefix-map.h
final.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
fixed-value.c
fixed-value.h
flag-types.h Include new generated gcc/params.opt file. 2019-11-12 10:08:04 +00:00
flags.h
fold-const-call.c
fold-const-call.h
fold-const.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
fold-const.h Come up with an abstraction. 2019-10-30 12:01:03 +00:00
fp-test.c
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
function-abi.cc
function-abi.h
function-tests.c
function.c re PR middle-end/92384 (Empty class instances have different equal testing result among GCC versions) 2019-11-08 11:52:50 +01:00
function.h introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
fwprop.c
gcc-ar.c
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h
gcc-symtab.h
gcc.c Remove last leftover usage of params* files. 2019-11-12 10:09:57 +00:00
gcc.h
gcov-counter.def
gcov-dump.c
gcov-io.c
gcov-io.h
gcov-iov.c
gcov-tool.c
gcov.c Come up with json::integer_number and use it in GCOV. 2019-10-22 09:58:27 +00:00
gcse-common.c
gcse-common.h
gcse.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c
genautomata.c
gencfn-macros.c
gencheck.c
genchecksum.c
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c arc.c (hwloop_optimize): Add missing space in string literal. 2019-10-25 00:27:10 +02:00
genenums.c
generic-match-head.c
generic-match.h
genextract.c
genflags.c
gengenrtl.c
gengtype-lex.l
gengtype-parse.c
gengtype-state.c
gengtype.c Move plain value_range things to value-range.[hc]*. 2019-11-13 19:13:40 +00:00
gengtype.h
genhooks.c
genmatch.c genmatch.c (expr::gen_transform): Use the resimplify member function instead of hard-coding the... 2019-11-08 10:21:43 +00:00
genmddeps.c
genmddump.c
genmodes.c
genmultilib
genopinit.c
genoutput.c
genpeep.c
genpreds.c
genrecog.c
gensupport.c
gensupport.h
gentarget-def.c
ggc-common.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ggc-internal.h
ggc-none.c
ggc-page.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ggc-tests.c
ggc.h Come up with ggc_delete. 2019-11-04 09:11:14 +00:00
gimple-builder.c
gimple-builder.h
gimple-expr.c
gimple-expr.h
gimple-fold.c Rewrite value_range constructors to the value_range_kind is at the end, and defaults to VR_RANGE. 2019-11-13 16:03:27 +00:00
gimple-fold.h
gimple-iterator.c
gimple-iterator.h
gimple-laddress.c
gimple-loop-interchange.cc Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-loop-jam.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-loop-versioning.cc Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-low.c
gimple-low.h
gimple-match-head.c re PR tree-optimization/92401 (ICE in fold_ternary_loc, at fold-const.c:11698) 2019-11-09 18:09:44 +01:00
gimple-match.h
gimple-predict.h
gimple-pretty-print.c Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
gimple-pretty-print.h
gimple-ssa-backprop.c
gimple-ssa-evrp-analyze.c Rewrite value_range constructors to the value_range_kind is at the end, and defaults to VR_RANGE. 2019-11-13 16:03:27 +00:00
gimple-ssa-evrp-analyze.h The base class for ranges is currently value_range_base, which is rather long and cumbersome. 2019-11-05 15:39:11 +00:00
gimple-ssa-evrp.c The base class for ranges is currently value_range_base, which is rather long and cumbersome. 2019-11-05 15:39:11 +00:00
gimple-ssa-isolate-paths.c
gimple-ssa-nonnull-compare.c
gimple-ssa-split-paths.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-ssa-sprintf.c PR middle-end/83688 - check if buffers may overlap when copying strings using sprintf 2019-11-12 10:18:37 -07:00
gimple-ssa-store-merging.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-ssa-strength-reduction.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-ssa-warn-alloca.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-ssa-warn-restrict.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
gimple-ssa-warn-restrict.h
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple-walk.c
gimple-walk.h
gimple.c
gimple.def Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
gimple.h Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
gimplify-me.c
gimplify-me.h
gimplify.c Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
gimplify.h gimplify.h (omp_construct_selector_matches): Change return type to int, add a new SCORES argument. 2019-11-02 10:02:21 +01:00
glimits.h
godump.c
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c
graphite-isl-ast-to-gimple.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
graphite-optimize-isl.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
graphite-poly.c
graphite-scop-detection.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
graphite-sese-to-poly.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
graphite.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
graphite.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
hard-reg-set.h
hash-map-tests.c
hash-map-traits.h
hash-map.h
hash-set-tests.c
hash-set.h
hash-table.c
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.c OpenMP] use_device_addr/use_device_ptr with Fortran allocatable/pointer arrays 2019-11-01 08:59:23 +01:00
hooks.h OpenMP] use_device_addr/use_device_ptr with Fortran allocatable/pointer arrays 2019-11-01 08:59:23 +01:00
host-default.c
hosthooks-def.h
hosthooks.h
hsa-brig-format.h
hsa-brig.c hsa-brig.c: Include alloc-pool.h 2019-11-05 10:38:02 +00:00
hsa-builtins.def
hsa-common.c
hsa-common.h
hsa-dump.c hsa-brig.c: Include alloc-pool.h 2019-11-05 10:38:02 +00:00
hsa-gen.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
hsa-regalloc.c hsa-brig.c: Include alloc-pool.h 2019-11-05 10:38:02 +00:00
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ifcvt.h
inchash.c
inchash.h
incpath.c
incpath.h
init-regs.c
input.c
input.h
insn-addr.h
insn-notes.def
int-vector-builder.h
internal-fn.c Generalise gather and scatter optabs 2019-11-08 08:32:19 +00:00
internal-fn.def
internal-fn.h Generalise gather and scatter optabs 2019-11-08 08:32:19 +00:00
intl.c
intl.h
ipa-comdats.c Remove cgraph_global_info. 2019-10-30 07:55:39 +00:00
ipa-cp.c ipa-cp.c (ignore_edge_p): Do not check caller flags. 2019-11-13 19:42:02 +00:00
ipa-devirt.c ipa-utils.c (ipa_merge_profiles): Fix fprintf format string typo - mistmatch -> mismatch. 2019-11-08 00:22:41 +01:00
ipa-fnsummary.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ipa-fnsummary.h cgraphclones.c (cgraph_node::create_version_clone): Do not duplicate summaries. 2019-11-04 14:07:09 +00:00
ipa-hsa.c hsa-brig.c: Include alloc-pool.h 2019-11-05 10:38:02 +00:00
ipa-icf-gimple.c Remove dead code in IPA ICF. 2019-10-31 15:58:06 +00:00
ipa-icf-gimple.h Remove dead code in IPA ICF. 2019-10-31 15:58:06 +00:00
ipa-icf.c Do not overuse push/pop_cfun in IPA ICF. 2019-11-13 13:48:25 +00:00
ipa-icf.h IPA ICF: remove dead code 2019-10-30 12:01:45 +00:00
ipa-inline-analysis.c ipa-inline-analysis.c (do_estimate_edge_time): Relax check for ipa profiles. 2019-11-13 22:14:24 +00:00
ipa-inline-transform.c ipa-inline-transform.c: Include ipa-utils.h 2019-11-04 19:39:52 +00:00
ipa-inline.c re PR ipa/92421 (ICE in inline_small_functions, at ipa-inline.c:2001 since r277759) 2019-11-13 21:02:11 +00:00
ipa-inline.h ipa-inline-analysis.c (do_estimate_growth_1): Add support for capping the growth cumulated. 2019-11-09 17:52:56 +00:00
ipa-param-manipulation.c
ipa-param-manipulation.h
ipa-polymorphic-call.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ipa-predicate.c hsa-brig.c: Include alloc-pool.h 2019-11-05 10:38:02 +00:00
ipa-predicate.h Improve effectivity of ipa_polymorphi_context cache. 2019-11-03 22:32:56 +00:00
ipa-profile.c re PR ipa/92498 (gcc.dg/tree-prof/crossmodule-indircall-1.c fails starting with r278100) 2019-11-13 19:44:35 +00:00
ipa-prop.c re PR ipa/92421 (ICE in inline_small_functions, at ipa-inline.c:2001 since r277759) 2019-11-13 21:02:11 +00:00
ipa-prop.h ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp summary. 2019-11-11 19:11:02 +00:00
ipa-pure-const.c Remove cgraph_global_info. 2019-10-30 07:55:39 +00:00
ipa-ref.c
ipa-ref.h
ipa-reference.c hsa-brig.c: Include alloc-pool.h 2019-11-05 10:38:02 +00:00
ipa-reference.h ipa-reference.c (ipa_reference_optimization_summary_d): Rename statics_not_read and statics_not_written to statics_read and... 2019-10-24 14:19:40 +00:00
ipa-split.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ipa-sra.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ipa-utils.c ipa-utils.c (ipa_merge_profiles): Fix fprintf format string typo - mistmatch -> mismatch. 2019-11-08 00:22:41 +01:00
ipa-utils.h ipa-inline-transform.c: Include ipa-utils.h 2019-11-04 19:39:52 +00:00
ipa-visibility.c Remove cgraph_local_info structure. 2019-10-30 07:56:22 +00:00
ipa.c ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node and target_option_default_node to get... 2019-11-13 09:05:14 +00:00
ira-build.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ira-color.c
ira-conflicts.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
ira-costs.c
ira-emit.c
ira-int.h
ira-lives.c
ira.c Support using multiple registers to hold the frame pointer 2019-11-07 00:07:04 +00:00
ira.h
is-a.h
json.cc Come up with json::integer_number and use it in GCOV. 2019-10-22 09:58:27 +00:00
json.h Come up with json::integer_number and use it in GCOV. 2019-10-22 09:58:27 +00:00
jump.c
langhooks-def.h Fortran] Support absent optional args with use_device_{ptr,addr} 2019-11-11 10:19:29 +01:00
langhooks.c Add a simulate_builin_function_decl langhook 2019-10-29 08:39:33 +00:00
langhooks.h Fortran] Support absent optional args with use_device_{ptr,addr} 2019-11-11 10:19:29 +01:00
LANGUAGES
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh * lock-and-run.sh: Tweak command order. 2019-10-21 23:30:48 -04:00
loop-doloop.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
loop-init.c
loop-invariant.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
loop-iv.c
loop-unroll.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
loop-unroll.h
lower-subreg.c
lower-subreg.h
lra-assigns.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
lra-coalesce.c
lra-constraints.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
lra-eliminations.c
lra-int.h
lra-lives.c
lra-remat.c
lra-spills.c [LRA] Do not use eliminable registers for spilling 2019-11-10 18:22:38 +00:00
lra.c
lra.h
lto-cgraph.c Use symtab_node::order in LTO sections with body. 2019-10-30 10:38:52 +00:00
lto-compress.c
lto-compress.h
lto-opts.c Use symtab_node::order in LTO sections with body. 2019-10-30 10:38:52 +00:00
lto-section-in.c Use symtab_node::order in LTO sections with body. 2019-10-30 10:38:52 +00:00
lto-section-names.h
lto-section-out.c Use symtab_node::order in LTO sections with body. 2019-10-30 10:38:52 +00:00
lto-streamer-in.c lto-streamer-in.c: Include alloc-pool.h. 2019-11-07 17:06:04 +00:00
lto-streamer-out.c Use symtab_node::order in LTO sections with body. 2019-10-30 10:38:52 +00:00
lto-streamer.c Use symtab_node::order in LTO sections with body. 2019-10-30 10:38:52 +00:00
lto-streamer.h lto-streamer-in.c: Include alloc-pool.h. 2019-11-07 17:06:04 +00:00
lto-wrapper.c
machmode.def
machmode.h
main.c
Makefile.in Move plain value_range things to value-range.[hc]*. 2019-11-13 19:13:40 +00:00
match.pd re PR target/92280 (gcc.target/i386/pr83008.c FAILs) 2019-11-05 13:29:52 +00:00
mcf.c
mem-stats-traits.h
mem-stats.h ggc-common.c (ggc_prune_overhead_list): Do not delete surviving allocations. 2019-11-06 19:36:22 +00:00
memmodel.h
memory-block.cc
memory-block.h
mkconfig.sh
mode-classes.def
mode-switching.c
modulo-sched.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
multiple_target.c Remove cgraph_local_info structure. 2019-10-30 07:56:22 +00:00
omp-builtins.def
omp-expand.c Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
omp-expand.h
omp-general.c Fortran] Support absent optional args with use_device_{ptr,addr} 2019-11-11 10:19:29 +01:00
omp-general.h Fortran] Support absent optional args with use_device_{ptr,addr} 2019-11-11 10:19:29 +01:00
omp-grid.c
omp-grid.h
omp-low.c Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
omp-low.h
omp-offload.c
omp-offload.h
omp-simd-clone.c Remove cgraph_local_info structure. 2019-10-30 07:56:22 +00:00
omp-simd-clone.h
ONEWS
opt-functions.awk Param to options conversion. 2019-11-12 10:07:37 +00:00
opt-gather.awk
opt-include.awk
opt-problem.cc
opt-problem.h
opt-read.awk
opt-suggestions.c Remove last leftover usage of params* files. 2019-11-12 10:09:57 +00:00
opt-suggestions.h Remove last leftover usage of params* files. 2019-11-12 10:09:57 +00:00
optabs-libfuncs.c introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
optabs-libfuncs.h
optabs-query.c Generalise gather and scatter optabs 2019-11-08 08:32:19 +00:00
optabs-query.h
optabs-tree.c
optabs-tree.h
optabs.c
optabs.def Generalise gather and scatter optabs 2019-11-08 08:32:19 +00:00
optabs.h
optc-gen.awk
optc-save-gen.awk optc-save-gen.awk: Generate cl_target_option_free and cl_optimization_option_free. 2019-11-07 17:06:43 +00:00
opth-gen.awk optc-save-gen.awk: Generate cl_target_option_free and cl_optimization_option_free. 2019-11-07 17:06:43 +00:00
optinfo-emit-json.cc Come up with json::integer_number and use it in GCOV. 2019-10-22 09:58:27 +00:00
optinfo-emit-json.h
optinfo.cc
optinfo.h
opts-common.c Remove last leftover usage of params* files. 2019-11-12 10:09:57 +00:00
opts-diagnostic.h
opts-global.c
opts.c Update comment in opts.c. 2019-11-13 08:40:46 +00:00
opts.h Remove last leftover usage of params* files. 2019-11-12 10:09:57 +00:00
output.h introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
params.opt Include new generated gcc/params.opt file. 2019-11-12 10:08:04 +00:00
pass_manager.h
passes.c config.in: Regenerate. 2019-11-03 12:48:43 +00:00
passes.def Move jump threading before reload 2019-10-28 10:04:31 +00:00
plugin.c arc.c (hwloop_optimize): Add missing space in string literal. 2019-10-25 00:27:10 +02:00
plugin.def
plugin.h
poly-int-types.h
poly-int.h
postreload-gcse.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
postreload.c
predict.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
predict.def
predict.h
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl-function.c
print-rtl.c
print-rtl.h
print-tree.c introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
print-tree.h introduce -fcallgraph-info option 2019-11-06 10:57:18 +00:00
profile-count.c Short circuit case where profiles are same. 2019-11-10 18:15:34 +00:00
profile-count.h
profile.c
profile.h
range-op.cc Rewrite value_range constructors to the value_range_kind is at the end, and defaults to VR_RANGE. 2019-11-13 16:03:27 +00:00
range-op.h Modify range_operator::fold_range() and wi_fold () to return via reference. 2019-11-08 17:51:40 +00:00
range.cc Rewrite value_range constructors to the value_range_kind is at the end, and defaults to VR_RANGE. 2019-11-13 16:03:27 +00:00
range.h The base class for ranges is currently value_range_base, which is rather long and cumbersome. 2019-11-05 15:39:11 +00:00
read-md.c
read-md.h
read-rtl-function.c
read-rtl-function.h
read-rtl.c
README.Portability
real.c Add C2x *_NORM_MAX constants to <float.h>. 2019-11-13 15:25:15 +00:00
real.h Add C2x *_NORM_MAX constants to <float.h>. 2019-11-13 15:25:15 +00:00
realmpfr.c
realmpfr.h
recog.c
recog.h
ree.c
reg-notes.def
reg-stack.c
regcprop.c
regcprop.h
reginfo.c
regrename.c
regrename.h
regs.h
regset.h
regstat.c
reload1.c
reload.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
reload.h
reorg.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
resource.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
resource.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-tests.c
rtl.c
rtl.def
rtl.h
rtlanal.c
rtlhash.c
rtlhash.h
rtlhooks-def.h
rtlhooks.c
rtx-vector-builder.c
rtx-vector-builder.h
run-rtl-passes.c
run-rtl-passes.h
sancov.c
sanitizer.def
sanopt.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
sbitmap.c
sbitmap.h
sched-deps.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
sched-ebb.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
sched-int.h
sched-rgn.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
sel-sched-ir.h Apply mechanical replacement (generated patch). 2019-11-12 10:08:40 +00:00
sel-sched.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
sel-sched.h
selftest-diagnostic.c
selftest-diagnostic.h
selftest-rtl.c
selftest-rtl.h
selftest-run-tests.c Come up with selftests for dbgcnt. 2019-11-13 15:13:16 +00:00
selftest.c
selftest.h Come up with selftests for dbgcnt. 2019-11-13 15:13:16 +00:00
sese.c
sese.h
shrink-wrap.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
shrink-wrap.h
signop.h
simplify-rtx.c simplify-rtx: simplify_logical_relational_operation 2019-11-07 23:08:49 +01:00
sort.cc
sparseset.c
sparseset.h
spellcheck-tree.c
spellcheck-tree.h
spellcheck.c
spellcheck.h
sreal.c
sreal.h
ssa-iterators.h
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
stmt.h
stor-layout.c
stor-layout.h
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
substring-locations.c
substring-locations.h
symbol-summary.h Use more ggc_delete. 2019-11-05 12:45:04 +00:00
symtab.c symtab.c: Fix comment typos. 2019-11-09 00:56:37 +01:00
sync-builtins.def
system.h system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO. 2019-11-04 14:05:24 +00:00
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def
target.def configure.ac: Compute and substitute omp_device_properties and omp_device_property_deps. 2019-10-31 11:09:43 +01:00
target.h configure.ac: Compute and substitute omp_device_properties and omp_device_property_deps. 2019-10-31 11:09:43 +01:00
targhooks.c PR tree-optimization/92412 - excessive errno aliasing assumption defeats optimization 2019-11-12 11:49:31 -07:00
targhooks.h
timevar.c
timevar.def
timevar.h
toplev.c Remove last leftover usage of params* files. 2019-11-12 10:09:57 +00:00
toplev.h Print header in dump_memory_report. 2019-10-29 08:44:52 +00:00
tracer.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tracer.h
trans-mem.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
trans-mem.h
tree-affine.c
tree-affine.h
tree-call-cdce.c
tree-cfg.c
tree-cfg.h
tree-cfgcleanup.c
tree-cfgcleanup.h
tree-chrec.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-chrec.h
tree-complex.c re PR target/92449 (ICE in extract_insn, at recog.c:2311) 2019-11-12 09:22:29 +01:00
tree-core.h [C] Opt out of GNU vector extensions for built-in SVE types 2019-11-08 08:35:55 +00:00
tree-data-ref.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-data-ref.h
tree-dfa.c
tree-dfa.h
tree-diagnostic.c
tree-diagnostic.h
tree-dump.c tree-dump.c (dequeue_and_dump): Print first tree operand for VIEW_CONVERT_EXPR. 2019-11-13 15:51:30 +00:00
tree-dump.h
tree-eh.c
tree-eh.h
tree-emutls.c
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-if-conv.h
tree-inline.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-inline.h
tree-into-ssa.c
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-nested.c
tree-nested.h
tree-nrv.c
tree-object-size.c
tree-object-size.h
tree-outof-ssa.c
tree-outof-ssa.h
tree-parloops.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-parloops.h
tree-pass.h Move jump threading before reload 2019-10-28 10:04:31 +00:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-pretty-print.c Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
tree-pretty-print.h
tree-profile.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-scalar-evolution.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-scalar-evolution.h
tree-sra.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-sra.h
tree-ssa-address.c
tree-ssa-address.h
tree-ssa-alias.c ipa-reference.c (ipa_reference_optimization_summary_d): Rename statics_not_read and statics_not_written to statics_read and... 2019-10-24 14:19:40 +00:00
tree-ssa-alias.h
tree-ssa-ccp.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-ccp.h
tree-ssa-coalesce.c
tree-ssa-coalesce.h
tree-ssa-copy.c
tree-ssa-dce.c
tree-ssa-dce.h
tree-ssa-dom.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-dom.h
tree-ssa-dse.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-dse.h re PR tree-optimization/92163 (ICE: Segmentation fault (in bitmap_set_bit)) 2019-10-28 15:01:24 +00:00
tree-ssa-forwprop.c re PR target/92280 (gcc.target/i386/pr83008.c FAILs) 2019-11-05 13:29:52 +00:00
tree-ssa-ifcombine.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-live.c
tree-ssa-live.h
tree-ssa-loop-ch.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-im.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-ivcanon.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-ivopts.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-niter.h [vect]PR 88915: Vectorize epilogues when versioning loops 2019-10-29 13:15:46 +00:00
tree-ssa-loop-prefetch.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-split.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop-unswitch.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-loop.c
tree-ssa-loop.h
tree-ssa-math-opts.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-operands.c
tree-ssa-operands.h
tree-ssa-phiopt.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-phiprop.c
tree-ssa-pre.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-propagate.c
tree-ssa-propagate.h
tree-ssa-reassoc.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-sccvn.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-sccvn.h
tree-ssa-scopedtables.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-scopedtables.h
tree-ssa-sink.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-strlen.c PR middle-end/83688 - check if buffers may overlap when copying strings using sprintf 2019-11-12 10:18:37 -07:00
tree-ssa-strlen.h
tree-ssa-structalias.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-tail-merge.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadbackward.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-threadedge.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa-threadedge.h
tree-ssa-threadupdate.c
tree-ssa-threadupdate.h
tree-ssa-uncprop.c
tree-ssa-uninit.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-ssa.c
tree-ssa.h
tree-ssanames.c Rewrite value_range constructors to the value_range_kind is at the end, and defaults to VR_RANGE. 2019-11-13 16:03:27 +00:00
tree-ssanames.h The base class for ranges is currently value_range_base, which is rather long and cumbersome. 2019-11-05 15:39:11 +00:00
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c Remove leftover call to finalize_options_struct. 2019-11-13 08:39:53 +00:00
tree-streamer-out.c
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-switch-conversion.h Apply mechanical replacement (generated patch). 2019-11-12 10:08:40 +00:00
tree-tailcall.c
tree-vect-data-refs.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree-vect-generic.c
tree-vect-loop-manip.c Avoid accounting for non-existent vector loop versioning 2019-11-13 09:05:59 +00:00
tree-vect-loop.c Account for the cost of generating loop masks 2019-11-13 09:12:17 +00:00
tree-vect-patterns.c Generalise gather and scatter optabs 2019-11-08 08:32:19 +00:00
tree-vect-slp.c Don't assign a cost to vectorizable_assignment 2019-11-13 09:03:07 +00:00
tree-vect-stmts.c Don't assign a cost to vectorizable_assignment 2019-11-13 09:03:07 +00:00
tree-vector-builder.c
tree-vector-builder.h
tree-vectorizer.c [vect] Clean up orig_loop_vinfo from vect_analyze_loop 2019-11-04 17:19:23 +00:00
tree-vectorizer.h Avoid accounting for non-existent vector loop versioning 2019-11-13 09:05:59 +00:00
tree-vrp.c Move plain value_range things to value-range.[hc]*. 2019-11-13 19:13:40 +00:00
tree-vrp.h Move plain value_range things to value-range.[hc]*. 2019-11-13 19:13:40 +00:00
tree.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
tree.def Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
tree.h Add OpenACC 2.6 `serial' construct support 2019-11-12 08:45:35 +00:00
treestruct.def
tsan.c
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c
typed-splay-tree.h
ubsan.c
ubsan.h
unique-ptr-tests.cc
valtrack.c
valtrack.h
value-prof.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
value-prof.h
value-range.cc Move plain value_range things to value-range.[hc]*. 2019-11-13 19:13:40 +00:00
value-range.h Move plain value_range things to value-range.[hc]*. 2019-11-13 19:13:40 +00:00
var-tracking.c Remove gcc/params.* files. 2019-11-12 10:09:41 +00:00
varasm.c
varasm.h
varpool.c symtab.c: Fix comment typos. 2019-11-09 00:56:37 +01:00
vec-perm-indices.c
vec-perm-indices.h
vec.c
vec.h
vector-builder.h
version.c
version.h
vmsdbg.h
vmsdbgout.c
vr-values.c Rewrite value_range constructors to the value_range_kind is at the end, and defaults to VR_RANGE. 2019-11-13 16:03:27 +00:00
vr-values.h The base class for ranges is currently value_range_base, which is rather long and cumbersome. 2019-11-05 15:39:11 +00:00
vtable-verify.c
vtable-verify.h
web.c
wide-int-bitmask.h
wide-int-print.cc
wide-int-print.h
wide-int.cc
wide-int.h PR middle-end/91679 - missing -Warray-bounds accessing a member array in a local buffer 2019-11-01 15:09:20 -06:00
xcoff.h
xcoffout.c
xcoffout.h

Copyright (C) 2000-2019 Free Software Foundation, Inc.

This file is intended to contain a few notes about writing C code
within GCC so that it compiles without error on the full range of
compilers GCC needs to be able to compile on.

The problem is that many ISO-standard constructs are not accepted by
either old or buggy compilers, and we keep getting bitten by them.
This knowledge until now has been sparsely spread around, so I
thought I'd collect it in one useful place.  Please add and correct
any problems as you come across them.

I'm going to start from a base of the ISO C90 standard, since that is
probably what most people code to naturally.  Obviously using
constructs introduced after that is not a good idea.

For the complete coding style conventions used in GCC, please read
http://gcc.gnu.org/codingconventions.html


String literals
---------------

Some compilers like MSVC++ have fairly low limits on the maximum
length of a string literal; 509 is the lowest we've come across.  You
may need to break up a long printf statement into many smaller ones.


Empty macro arguments
---------------------

ISO C (6.8.3 in the 1990 standard) specifies the following:

If (before argument substitution) any argument consists of no
preprocessing tokens, the behavior is undefined.

This was relaxed by ISO C99, but some older compilers emit an error,
so code like

#define foo(x, y) x y
foo (bar, )

needs to be coded in some other way.


Avoid unnecessary test before free
----------------------------------

Since SunOS 4 stopped being a reasonable portability target,
(which happened around 2007) there has been no need to guard
against "free (NULL)".  Thus, any guard like the following
constitutes a redundant test:

  if (P)
    free (P);

It is better to avoid the test.[*]
Instead, simply free P, regardless of whether it is NULL.

[*] However, if your profiling exposes a test like this in a
performance-critical loop, say where P is nearly always NULL, and
the cost of calling free on a NULL pointer would be prohibitively
high, consider using __builtin_expect, e.g., like this:

  if (__builtin_expect (ptr != NULL, 0))
    free (ptr);



Trigraphs
---------

You weren't going to use them anyway, but some otherwise ISO C
compliant compilers do not accept trigraphs.


Suffixes on Integer Constants
-----------------------------

You should never use a 'l' suffix on integer constants ('L' is fine),
since it can easily be confused with the number '1'.


			Common Coding Pitfalls
			======================

errno
-----

errno might be declared as a macro.


Implicit int
------------

In C, the 'int' keyword can often be omitted from type declarations.
For instance, you can write

  unsigned variable;

as shorthand for

  unsigned int variable;

There are several places where this can cause trouble.  First, suppose
'variable' is a long; then you might think

  (unsigned) variable

would convert it to unsigned long.  It does not.  It converts to
unsigned int.  This mostly causes problems on 64-bit platforms, where
long and int are not the same size.

Second, if you write a function definition with no return type at
all:

  operate (int a, int b)
  {
    ...
  }

that function is expected to return int, *not* void.  GCC will warn
about this.

Implicit function declarations always have return type int.  So if you
correct the above definition to

  void
  operate (int a, int b)
  ...

but operate() is called above its definition, you will get an error
about a "type mismatch with previous implicit declaration".  The cure
is to prototype all functions at the top of the file, or in an
appropriate header.

Char vs unsigned char vs int
----------------------------

In C, unqualified 'char' may be either signed or unsigned; it is the
implementation's choice.  When you are processing 7-bit ASCII, it does
not matter.  But when your program must handle arbitrary binary data,
or fully 8-bit character sets, you have a problem.  The most obvious
issue is if you have a look-up table indexed by characters.

For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
true.  But if you read '\341' from a file and store it in a plain
char, isalpha(c) may look up character 225, or it may look up
character -31.  And the ctype table has no entry at offset -31, so
your program will crash.  (If you're lucky.)

It is wise to use unsigned char everywhere you possibly can.  This
avoids all these problems.  Unfortunately, the routines in <string.h>
take plain char arguments, so you have to remember to cast them back
and forth - or avoid the use of strxxx() functions, which is probably
a good idea anyway.

Another common mistake is to use either char or unsigned char to
receive the result of getc() or related stdio functions.  They may
return EOF, which is outside the range of values representable by
char.  If you use char, some legal character value may be confused
with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
The correct choice is int.

A more subtle version of the same mistake might look like this:

  unsigned char pushback[NPUSHBACK];
  int pbidx;
  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
  ...
  unget(EOF);

which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
WITH UMLAUT.


Other common pitfalls
---------------------

o Expecting 'plain' char to be either sign or unsigned extending.

o Shifting an item by a negative amount or by greater than or equal to
  the number of bits in a type (expecting shifts by 32 to be sensible
  has caused quite a number of bugs at least in the early days).

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

o Host vs. target floating point representation, including emitting NaNs
  and Infinities in a form that the assembler handles.

o qsort being an unstable sort function (unstable in the sense that
  multiple items that sort the same may be sorted in different orders
  by different qsort functions).

o Passing incorrect types to fprintf and friends.

o Adding a function declaration for a module declared in another file to
  a .c file instead of to a .h file.