gcc/gcc
GCC Administrator 69d3015ad1 Daily bump. 2023-07-01 00:18:32 +00:00
..
ada Daily bump. 2023-06-30 00:17:51 +00:00
analyzer Daily bump. 2023-06-30 00:17:51 +00:00
c Daily bump. 2023-06-30 00:17:51 +00:00
c-family Daily bump. 2023-06-30 00:17:51 +00:00
common x86: Update model values for Alderlake, Rocketlake and Raptorlake. 2023-06-29 03:10:35 +00:00
config AArch64: New RTL for ABDL 2023-06-30 12:28:45 +01:00
cp Daily bump. 2023-07-01 00:18:32 +00:00
d Daily bump. 2023-06-29 00:17:55 +00:00
doc Mid engine setup [SU]ABDL 2023-06-30 12:28:45 +01:00
fortran Daily bump. 2023-06-29 00:17:55 +00:00
ginclude
go Daily bump. 2023-06-27 00:18:16 +00:00
jit
lto Daily bump. 2023-06-30 00:17:51 +00:00
m2 Daily bump. 2023-07-01 00:18:32 +00:00
objc Daily bump. 2023-05-19 00:17:43 +00:00
objcp
po Daily bump. 2023-05-10 00:17:49 +00:00
rtl-ssa Machine_Mode: Extend machine_mode from 8 to 16 bits 2023-05-18 17:15:10 +08:00
rust Daily bump. 2023-06-23 00:16:38 +00:00
testsuite Daily bump. 2023-07-01 00:18:32 +00:00
text-art text-art: remove explicit #include of C++ standard library headers 2023-06-23 21:18:15 -04:00
ABOUT-GCC-NLS
BASE-VER
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog Daily bump. 2023-07-01 00:18:32 +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-2019
ChangeLog-2020
ChangeLog-2021
ChangeLog-2022
ChangeLog.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
DATESTAMP Daily bump. 2023-07-01 00:18:32 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in analyzer: add text-art visualizations of out-of-bounds accesses [PR106626] 2023-06-21 21:49:00 -04:00
ONEWS
README.Portability
acinclude.m4
aclocal.m4
addresses.h
adjust-alignment.cc
alias.cc alias: Change return type of predicate functions from int to bool 2023-05-31 16:14:22 +02:00
alias.h alias: Change return type of predicate functions from int to bool 2023-05-31 16:14:22 +02:00
align.h
alloc-pool.cc
alloc-pool.h
array-traits.h
asan.cc
asan.h
attr-fnspec.h tree-optimization/109609 - correctly interpret arg size in fnspec 2023-04-25 16:53:06 +02:00
attribs.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
attribs.h
auto-inc-dec.cc
auto-profile.cc Fix cfg maintenance after inlining in AutoFDO 2023-05-08 15:12:17 -07:00
auto-profile.h
backend.h
basic-block.h
bb-reorder.cc
bb-reorder.h
bitmap.cc
bitmap.h
btfout.cc btf: fix bootstrap -Wformat errors [PR110073] 2023-06-02 09:28:32 -07:00
builtin-attrs.def
builtin-types.def uiltins: Add support for clang compatible __builtin_{add,sub}c{,l,ll} [PR79173] 2023-06-16 19:47:28 +02:00
builtins.cc uiltins: Add support for clang compatible __builtin_{add,sub}c{,l,ll} [PR79173] 2023-06-16 19:47:28 +02:00
builtins.def uiltins: Add support for clang compatible __builtin_{add,sub}c{,l,ll} [PR79173] 2023-06-16 19:47:28 +02:00
builtins.h
caller-save.cc
calls.cc calls: Change return type of predicate function from int to bool 2023-06-20 19:44:14 +02:00
calls.h calls: Change return type of predicate function from int to bool 2023-06-20 19:44:14 +02:00
ccmp.cc
ccmp.h
cfg-flags.def
cfg.cc
cfg.h
cfganal.cc
cfganal.h
cfgbuild.cc
cfgbuild.h
cfgcleanup.cc Avoid repeated forwarder_block_p calls in CFG cleanup 2023-04-24 09:24:49 +02:00
cfgcleanup.h
cfgexpand.cc Remove widen_plus/minus_expr tree codes 2023-06-05 17:56:22 +01:00
cfgexpand.h
cfghooks.cc
cfghooks.h
cfgloop.cc
cfgloop.h
cfgloopanal.cc
cfgloopmanip.cc VECT: Add tree_code into "creat_iv" and allow it can handle MINUS_EXPR IV 2023-05-11 19:06:44 +08:00
cfgloopmanip.h Unloop loops that no longer loops in tree-ssa-loop-ch 2023-04-27 15:49:37 +02:00
cfgrtl.cc
cfgrtl.h
cgraph.cc c++: make initializer_list array static again [PR110070] 2023-06-02 10:54:39 -04:00
cgraph.h gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
cgraphbuild.cc
cgraphclones.cc
cgraphunit.cc
cif-code.def
collect-utils.cc
collect-utils.h
collect2-aix.cc
collect2-aix.h
collect2.cc
collect2.h
color-macros.h diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
combine-stack-adj.cc
combine.cc rtlanal: Change return type of predicate functions from int to bool 2023-05-30 07:27:08 +02:00
common.md
common.opt diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
compare-elim.cc
conditions.h
config.build
config.gcc gcc: Fix nonportable shell syntax in "test" and "[" commands [PR105831] 2023-05-18 14:01:35 +01:00
config.host
config.in Remove DEFAULT_MATCHPD_PARTITIONS macro 2023-06-12 14:06:08 +01:00
configure configure: Implement --enable-host-bind-now 2023-06-22 13:43:32 -04:00
configure.ac configure: Implement --enable-host-bind-now 2023-06-22 13:43:32 -04:00
context.cc
context.h
convert.cc
convert.h
coretypes.h
coroutine-builtins.def
coroutine-passes.cc
coverage.cc
coverage.h
cppbuiltin.cc
cppbuiltin.h
cppdefault.cc
cppdefault.h
cprop.cc
cse.cc Check SCALAR_INT_MODE_P in try_const_anchors 2023-06-19 10:44:39 +08:00
cselib.cc cselib+expr+bitmap: Change return type of predicate functions from int to bool 2023-06-29 17:29:47 +02:00
cselib.h cselib+expr+bitmap: Change return type of predicate functions from int to bool 2023-06-29 17:29:47 +02:00
cstamp-h.in
ctfc.cc
ctfc.h
ctfout.cc
data-streamer-in.cc Stream out NANs correctly. 2023-05-25 07:24:52 +02:00
data-streamer-out.cc Stream out NANs correctly. 2023-05-25 07:24:52 +02:00
data-streamer.cc
data-streamer.h Add support for vrange streaming. 2023-05-17 16:08:48 +02:00
dbgcnt.cc
dbgcnt.def
dbgcnt.h
dce.cc
dce.h
ddg.cc
ddg.h
debug.cc
debug.h
defaults.h
df-core.cc
df-problems.cc
df-scan.cc
df.h
dfp.cc
dfp.h
diagnostic-client-data-hooks.h
diagnostic-color.cc
diagnostic-color.h
diagnostic-core.h
diagnostic-diagram.h diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
diagnostic-event-id.h
diagnostic-format-json.cc diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
diagnostic-format-sarif.cc text-art: remove explicit #include of C++ standard library headers 2023-06-23 21:18:15 -04:00
diagnostic-metadata.h
diagnostic-path.h
diagnostic-show-locus.cc
diagnostic-spec.cc
diagnostic-spec.h
diagnostic-text-art.h diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
diagnostic-url.h
diagnostic.cc text-art: remove explicit #include of C++ standard library headers 2023-06-23 21:18:15 -04:00
diagnostic.def
diagnostic.h diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
digraph.cc
digraph.h
dojump.cc
dojump.h
dominance.cc
dominance.h
domwalk.cc
domwalk.h
double-int.cc
double-int.h
dse.cc rtl-optimization: [PR102733] DSE removing address which only differ by address space. 2023-06-02 19:45:17 +00:00
dump-context.h
dumpfile.cc
dumpfile.h
dwarf2asm.cc
dwarf2asm.h
dwarf2cfi.cc
dwarf2ctf.cc
dwarf2ctf.h
dwarf2out.cc c++: Add support for -std={c,gnu}++2{c,6} 2023-06-23 16:46:29 -04:00
dwarf2out.h
early-remat.cc RTL: Change return type of predicate and callback functions from int to bool 2023-06-18 22:10:19 +02:00
edit-context.cc
edit-context.h
emit-rtl.cc emit-rtl: Change return type of predicate functions from int to bool 2023-05-31 16:14:22 +02:00
emit-rtl.h emit-rtl: Change return type of predicate functions from int to bool 2023-05-31 16:14:22 +02:00
errors.cc
errors.h
escaped_string.h
et-forest.cc
et-forest.h
except.cc
except.h c++: use __cxa_call_terminate for MUST_NOT_THROW [PR97720] 2023-06-03 21:49:00 -04:00
exec-tool.in
explow.cc
explow.h
expmed.cc
expmed.h
expr.cc cselib+expr+bitmap: Change return type of predicate functions from int to bool 2023-06-29 17:29:47 +02:00
expr.h cselib+expr+bitmap: Change return type of predicate functions from int to bool 2023-06-29 17:29:47 +02:00
fibonacci_heap.cc
fibonacci_heap.h
file-find.cc
file-find.h
file-prefix-map.cc
file-prefix-map.h
final.cc final+varasm: Change return type of predicate functions from int to bool 2023-06-28 16:30:26 +02:00
fixed-value.cc
fixed-value.h
flag-types.h Add leafy mode for zero-call-used-regs 2023-06-28 01:28:47 -03:00
flags.h
fold-const-call.cc middle-end, i386: Pattern recognize add/subtract with carry [PR79173] 2023-06-15 09:12:40 +02:00
fold-const-call.h
fold-const.cc fold-const+optabs: Change return type of predicate functions from int to bool 2023-06-30 16:04:02 +02:00
fold-const.h fold-const+optabs: Change return type of predicate functions from int to bool 2023-06-30 16:04:02 +02:00
fp-test.cc
function-abi.cc
function-abi.h
function-tests.cc
function.cc Add leafy mode for zero-call-used-regs 2023-06-28 01:28:47 -03:00
function.h function: Change return type of predicate function from int to bool 2023-06-21 21:56:14 +02:00
fwprop.cc
gcc-ar.cc gcc-ar: Remove code duplication. 2023-06-17 14:37:01 -06:00
gcc-main.cc
gcc-plugin.h
gcc-rich-location.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
gcc-rich-location.h
gcc-symtab.h
gcc.cc diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
gcc.h
gcov-counter.def
gcov-dump.cc
gcov-io.cc
gcov-io.h
gcov-tool.cc
gcov.cc gcov: add GCOV format version to gcov -v 2023-05-04 10:27:55 +02:00
gcse-common.cc
gcse-common.h
gcse.cc
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk
genattr-common.cc
genattr.cc
genattrtab.cc
genautomata.cc
gencfn-macros.cc
gencheck.cc
genchecksum.cc
gencodes.cc
genconditions.cc
genconfig.cc
genconstants.cc
genemit.cc recog: Change return type of predicate functions from int to bool 2023-06-19 16:41:51 +02:00
genenums.cc
generic-match-head.cc
generic-match.h
genextract.cc
genflags.cc
gengenrtl.cc
gengtype-lex.l
gengtype-parse.cc gengtype: Handle braced initialisers in structs 2023-06-27 08:54:20 +01:00
gengtype-state.cc
gengtype.cc
gengtype.h
genhooks.cc
genmatch.cc middle-end/110200 - genmatch force-leaf and convert interaction 2023-06-12 11:01:26 +02:00
genmddeps.cc
genmddump.cc
genmodes.cc Machine_Mode: Extend machine_mode from 8 to 16 bits 2023-05-18 17:15:10 +08:00
genmultilib Use CONFIG_SHELL-/bin/sh in genmultilib 2023-04-27 09:00:14 -03:00
genopinit.cc VECT: Support LEN_MASK_{LOAD,STORE} ifn && optabs 2023-06-19 10:11:55 +02:00
genoutput.cc New compact syntax for insn and insn_split in Machine Descriptions. 2023-06-19 15:56:50 +01:00
genpeep.cc
genpreds.cc
genrecog.cc Fix type error of 'switch (SUBREG_BYTE (op)).' 2023-05-17 15:48:39 -06:00
gensupport.cc gensupport: drop suppport for define_cond_exec from compact syntac 2023-06-20 23:31:40 +01:00
gensupport.h New compact syntax for insn and insn_split in Machine Descriptions. 2023-06-19 15:56:50 +01:00
gentarget-def.cc
genversion.cc
ggc-common.cc
ggc-internal.h
ggc-none.cc
ggc-page.cc
ggc-tests.cc
ggc.h
gimple-array-bounds.cc Convert users of legacy API to get_legacy_range() function. 2023-04-26 10:35:53 +02:00
gimple-array-bounds.h Remove range_query::get_value_range. 2023-04-26 10:28:12 +02:00
gimple-builder.cc
gimple-builder.h
gimple-expr.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
gimple-expr.h gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
gimple-fold.cc Fix couple of endianness issues in fold_ctor_reference 2023-06-30 18:12:21 +02:00
gimple-fold.h
gimple-harden-conditionals.cc harden-conditionals: detach values before compares 2023-04-28 01:39:40 -03:00
gimple-if-to-switch.cc
gimple-isel.cc
gimple-iterator.cc
gimple-iterator.h
gimple-laddress.cc
gimple-loop-interchange.cc VECT: Add tree_code into "creat_iv" and allow it can handle MINUS_EXPR IV 2023-05-11 19:06:44 +08:00
gimple-loop-jam.cc
gimple-loop-versioning.cc Conversion to irange wide_int API. 2023-05-01 08:33:12 +02:00
gimple-low.cc
gimple-low.h
gimple-match-exports.cc genmatch: split shared code to gimple-match-exports.cc 2023-05-05 13:47:35 +01:00
gimple-match-head.cc genmatch: split shared code to gimple-match-exports.cc 2023-05-05 13:47:35 +01:00
gimple-match.h
gimple-predicate-analysis.cc tree-optimization/110392 - ICE with predicate analysis 2023-06-26 12:59:06 +02:00
gimple-predicate-analysis.h
gimple-predict.h
gimple-pretty-print.cc Remove widen_plus/minus_expr tree codes 2023-06-05 17:56:22 +01:00
gimple-pretty-print.h
gimple-range-cache.cc Make ssa_cache a range_query. 2023-05-24 16:40:11 -04:00
gimple-range-cache.h Gimple range PHI analyzer and testcases 2023-05-24 16:40:11 -04:00
gimple-range-edge.cc Conversion to irange wide_int API. 2023-05-01 08:33:12 +02:00
gimple-range-edge.h vrange_storage overhaul 2023-05-01 08:29:24 +02:00
gimple-range-fold.cc Check for integer only complex. 2023-06-15 12:37:08 -04:00
gimple-range-fold.h Provide relation queries for a stmt. 2023-05-24 16:40:11 -04:00
gimple-range-gori.cc Avoid redundant GORI calcuations. 2023-06-26 09:26:39 -04:00
gimple-range-gori.h Don't save ssa-name pointer in dependency cache. 2023-04-26 15:17:08 -04:00
gimple-range-infer.cc vrange_storage overhaul 2023-05-01 08:29:24 +02:00
gimple-range-infer.h vrange_storage overhaul 2023-05-01 08:29:24 +02:00
gimple-range-op.cc Provide interface for non-standard operators. 2023-06-12 10:51:09 -04:00
gimple-range-op.h Provide a new dispatch mechanism for range-ops. 2023-06-08 14:52:04 -04:00
gimple-range-path.cc Create a lazy ssa_cache. 2023-04-26 15:17:08 -04:00
gimple-range-path.h Create a lazy ssa_cache. 2023-04-26 15:17:08 -04:00
gimple-range-phi.cc Gimple range PHI analyzer and testcases 2023-05-24 16:40:11 -04:00
gimple-range-phi.h Gimple range PHI analyzer and testcases 2023-05-24 16:40:11 -04:00
gimple-range-tests.cc Conversion to irange wide_int API. 2023-05-01 08:33:12 +02:00
gimple-range-trace.cc
gimple-range-trace.h
gimple-range.cc Make ssa_cache a range_query. 2023-05-24 16:40:11 -04:00
gimple-range.h Make ssa_cache a range_query. 2023-05-24 16:40:11 -04:00
gimple-ssa-backprop.cc
gimple-ssa-isolate-paths.cc
gimple-ssa-nonnull-compare.cc
gimple-ssa-split-paths.cc This replaces uses of last_stmt where we do not require debug skipping 2023-04-24 09:35:38 +02:00
gimple-ssa-sprintf.cc
gimple-ssa-store-merging.cc tree-optimization/110496 - TYPE_PRECISION issue with store-merging 2023-06-30 12:59:36 +02:00
gimple-ssa-strength-reduction.cc
gimple-ssa-warn-access.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
gimple-ssa-warn-access.h
gimple-ssa-warn-alloca.cc Cleanup irange::set. 2023-05-01 08:33:16 +02:00
gimple-ssa-warn-restrict.cc Convert users of legacy API to get_legacy_range() function. 2023-04-26 10:35:53 +02:00
gimple-ssa-warn-restrict.h
gimple-ssa.h
gimple-streamer-in.cc
gimple-streamer-out.cc
gimple-streamer.h
gimple-walk.cc
gimple-walk.h
gimple-warn-recursion.cc
gimple.cc
gimple.def
gimple.h
gimplify-me.cc
gimplify-me.h
gimplify.cc Mark asm goto with outputs as volatile 2023-06-27 09:26:22 -07:00
gimplify.h
glimits.h
godump.cc
graph.cc
graph.h
graphds.cc
graphds.h
graphite-dependences.cc
graphite-isl-ast-to-gimple.cc
graphite-optimize-isl.cc
graphite-poly.cc
graphite-scop-detection.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
graphite-sese-to-poly.cc
graphite.cc
graphite.h
graphviz.cc
graphviz.h
gsstruct.def
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.cc
hard-reg-set.h
hash-map-tests.cc
hash-map-traits.h
hash-map.h
hash-set-tests.cc
hash-set.h
hash-table.cc
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.cc
hooks.h
host-default.cc
hosthooks-def.h
hosthooks.h
hw-doloop.cc
hw-doloop.h
hwint.cc
hwint.h
ifcvt.cc Fix PR 110042: ifcvt regression due to paradoxical subregs 2023-06-02 19:22:13 +00:00
ifcvt.h
inchash.cc
inchash.h
incpath.cc
incpath.h
init-regs.cc
input.cc
input.h
insn-addr.h
insn-notes.def
int-vector-builder.h
internal-fn.cc internal-fn: Fix bug of BIAS argument index 2023-06-25 21:49:16 +08:00
internal-fn.def Mid engine setup [SU]ABDL 2023-06-30 12:28:45 +01:00
internal-fn.h internal-fn,vect: Refactor widen_plus as internal_fn 2023-06-05 17:53:10 +01:00
intl.cc
intl.h
ipa-comdats.cc
ipa-cp.cc Convert remaining uses of value_range in ipa-*.cc to Value_Range. 2023-06-27 11:25:48 +02:00
ipa-devirt.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
ipa-fnsummary.cc Compute ipa-predicates for conditionals involving __builtin_expect_p 2023-06-29 22:46:20 +02:00
ipa-fnsummary.h Enable early inlining into always_inline functions 2023-06-28 23:06:18 +02:00
ipa-free-lang-data.cc
ipa-icf-gimple.cc
ipa-icf-gimple.h
ipa-icf.cc
ipa-icf.h
ipa-inline-analysis.cc
ipa-inline-transform.cc
ipa-inline.cc Enable early inlining into always_inline functions 2023-06-28 23:06:18 +02:00
ipa-inline.h
ipa-modref-tree.cc
ipa-modref-tree.h
ipa-modref.cc
ipa-modref.h
ipa-param-manipulation.cc ipa/109652 - ICE in modification phase of IPA SRA 2023-04-28 13:35:22 +02:00
ipa-param-manipulation.h ipa/109607 - properly gimplify conversions introduced by IPA param manipulation 2023-04-27 12:29:47 +02:00
ipa-polymorphic-call.cc
ipa-predicate.cc Analyze SRA candidates in ipa-fnsummary 2023-06-18 18:58:26 +02:00
ipa-predicate.h Analyze SRA candidates in ipa-fnsummary 2023-06-18 18:58:26 +02:00
ipa-profile.cc
ipa-prop.cc Enable ranger for ipa-prop 2023-06-28 09:35:26 +02:00
ipa-prop.h Convert ipa_jump_func to use ipa_vr instead of a value_range. 2023-06-27 11:25:48 +02:00
ipa-pure-const.cc More last_stmt removal 2023-04-26 08:39:58 +02:00
ipa-ref.cc
ipa-ref.h
ipa-reference.cc
ipa-reference.h
ipa-split.cc
ipa-sra.cc ipa-sra: Disable candidates with no known callers (PR 110276) 2023-06-20 18:16:29 +02:00
ipa-utils.cc Enable early inlining into always_inline functions 2023-06-28 23:06:18 +02:00
ipa-utils.h
ipa-visibility.cc
ipa.cc
ira-build.cc
ira-color.cc
ira-conflicts.cc ira: Don't create copies for earlyclobbered pairs 2023-05-09 07:40:41 +01:00
ira-costs.cc RA: Constrain class of pic offset table pseudo to general regs 2023-06-07 11:34:28 -04:00
ira-emit.cc
ira-int.h Machine_Mode: Extend machine_mode from 8 to 16 bits 2023-05-18 17:15:10 +08:00
ira-lives.cc RA: Ignore conflicts for some pseudos from insns throwing a final exception 2023-06-16 11:16:35 -04:00
ira.cc
ira.h
is-a.h
iterator-utils.h
json.cc
json.h
jump.cc jump: Change return type of predicate functions from int to bool 2023-05-30 20:42:48 +02:00
langhooks-def.h
langhooks.cc
langhooks.h
lcm.cc
lcm.h
libfuncs.h
limitx.h
limity.h
lists.cc
lock-and-run.sh
logical-location.h
loop-doloop.cc
loop-init.cc
loop-invariant.cc
loop-iv.cc RISC-V: Eliminate extension after for *w instructions 2023-06-07 13:58:57 -06:00
loop-unroll.cc
loop-unroll.h
lower-subreg.cc Don't call emit_clobber in lower-subreg.cc's resolve_simple_move. 2023-05-07 07:52:15 +01:00
lower-subreg.h
lra-assigns.cc
lra-coalesce.cc
lra-constraints.cc
lra-eliminations.cc LRA: Update insn sp offset if its input reload changes SP 2023-05-30 15:57:18 -04:00
lra-int.h LRA: Update insn sp offset if its input reload changes SP 2023-05-30 15:57:18 -04:00
lra-lives.cc
lra-remat.cc
lra-spills.cc
lra.cc LRA: Update insn sp offset if its input reload changes SP 2023-05-30 15:57:18 -04:00
lra.h
lto-cgraph.cc LTO: Fix writing of toplevel asm with offloading [PR109816] 2023-05-12 16:29:43 +02:00
lto-compress.cc
lto-compress.h
lto-opts.cc
lto-section-in.cc
lto-section-names.h
lto-section-out.cc
lto-streamer-in.cc lto: use _P() defines from tree.h 2023-05-18 21:49:52 +02:00
lto-streamer-out.cc Prevent TYPE_PRECISION on VECTOR_TYPEs 2023-06-28 08:15:48 +02:00
lto-streamer.cc
lto-streamer.h
lto-wrapper.cc
machmode.def
machmode.h Machine_Mode: Extend machine_mode from 8 to 16 bits 2023-05-18 17:15:10 +08:00
main.cc
make-unique.h
match.pd middle-end/110461 - pattern applying wrongly to vectors 2023-06-29 10:10:51 +02:00
mcf.cc
mem-stats-traits.h
mem-stats.h
memmodel.h
memory-block.cc
memory-block.h
mkconfig.sh
mode-classes.def
mode-switching.cc Mode-Switching: Fix local array maybe uninitialized warning 2023-05-20 17:58:23 +08:00
modulo-sched.cc
multiple_target.cc
mux-utils.h Var-Tracking: Typedef pointer_mux<tree_node, rtx_def> as decl_or_value 2023-05-12 09:40:24 +08:00
obstack-utils.h
omp-builtins.def
omp-expand.cc Rename last_stmt to last_nondebug_stmt 2023-05-04 09:42:43 +02:00
omp-expand.h
omp-general.cc
omp-general.h
omp-low.cc OpenMP: Cleanups related to the 'present' modifier 2023-06-12 18:15:28 +02:00
omp-low.h
omp-oacc-kernels-decompose.cc
omp-oacc-neuter-broadcast.cc omp: use _P() defines from tree.h 2023-05-18 21:50:46 +02:00
omp-offload.cc omp: use _P() defines from tree.h 2023-05-18 21:50:46 +02:00
omp-offload.h
omp-simd-clone.cc omp: use _P() defines from tree.h 2023-05-18 21:50:46 +02:00
omp-simd-clone.h
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-problem.cc
opt-problem.h
opt-read.awk
opt-suggestions.cc
opt-suggestions.h
optabs-libfuncs.cc
optabs-libfuncs.h
optabs-query.cc Move can_vec_mask_load_store_p and get_len_load_store_mode from "optabs-query" into "optabs-tree" 2023-06-21 20:29:10 +08:00
optabs-query.h Move can_vec_mask_load_store_p and get_len_load_store_mode from "optabs-query" into "optabs-tree" 2023-06-21 20:29:10 +08:00
optabs-tree.cc VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer 2023-06-24 08:49:29 +08:00
optabs-tree.h VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer 2023-06-24 08:49:29 +08:00
optabs.cc fold-const+optabs: Change return type of predicate functions from int to bool 2023-06-30 16:04:02 +02:00
optabs.def Mid engine setup [SU]ABDL 2023-06-30 12:28:45 +01:00
optabs.h fold-const+optabs: Change return type of predicate functions from int to bool 2023-06-30 16:04:02 +02:00
optc-gen.awk
optc-save-gen.awk
opth-gen.awk
optinfo-emit-json.cc
optinfo-emit-json.h
optinfo.cc
optinfo.h
opts-common.cc diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
opts-diagnostic.h
opts-global.cc Allow plugin dumps 2023-05-19 18:48:43 -04:00
opts-jobserver.h
opts.cc Add leafy mode for zero-call-used-regs 2023-06-28 01:28:47 -03:00
opts.h Allow plugin dumps 2023-05-19 18:48:43 -04:00
ordered-hash-map-tests.cc
ordered-hash-map.h
output.h final+varasm: Change return type of predicate functions from int to bool 2023-06-28 16:30:26 +02:00
params.opt Fix ICE in rewrite_expr_tree_parallel 2023-05-31 07:51:14 +00:00
pass_manager.h
passes.cc
passes.def optimize std::max early 2023-06-19 18:28:17 +02:00
plugin.cc
plugin.def
plugin.h
pointer-query.cc Convert users of legacy API to get_legacy_range() function. 2023-04-26 10:35:53 +02:00
pointer-query.h
poly-int-types.h
poly-int.h
postreload-gcse.cc
postreload.cc [committed] [PR rtl-optimization/101188] Fix reload_cse_move2add ignoring clobbers 2023-06-12 12:52:10 -06:00
predict.cc Fix handling of __builtin_expect_with_probability and improve first-match heuristics 2023-06-30 16:27:27 +02:00
predict.def Fix handling of __builtin_expect_with_probability and improve first-match heuristics 2023-06-30 16:27:27 +02:00
predict.h Fix handling of __builtin_expect_with_probability and improve first-match heuristics 2023-06-30 16:27:27 +02:00
prefix.cc
prefix.h
pretty-print.cc diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
pretty-print.h diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
print-rtl-function.cc
print-rtl.cc print-rtl: Change return type of two print functions from int to void 2023-06-05 16:32:41 +02:00
print-rtl.h print-rtl: Change return type of two print functions from int to void 2023-06-05 16:32:41 +02:00
print-tree.cc Introduce IR bit TYPE_INCLUDES_FLEXARRAY for the GCC extension 2023-06-29 17:13:09 +00:00
print-tree.h apply debug-remap to file names in .su files 2023-05-01 10:16:00 +02:00
profile-count.cc
profile-count.h
profile.cc
profile.h
range-op-float.cc fix frange_nextafter odr violation 2023-06-13 05:52:22 -03:00
range-op-mixed.h Add some overrides. 2023-06-12 11:30:51 -04:00
range-op-ptr.cc Add a hybrid MAX_EXPR operator for integer and pointer. 2023-06-12 10:48:42 -04:00
range-op.cc Add some overrides. 2023-06-12 11:30:51 -04:00
range-op.h Add some overrides. 2023-06-12 11:30:51 -04:00
range.cc Conversion to irange wide_int API. 2023-05-01 08:33:12 +02:00
range.h Conversion to irange wide_int API. 2023-05-01 08:33:12 +02:00
read-md.cc
read-md.h
read-rtl-function.cc
read-rtl-function.h
read-rtl.cc md: Allow <FOO> to refer to the value of int iterator FOO 2023-05-23 11:34:41 +01:00
real.cc gimple-range-op: Improve handling of sin/cos ranges 2023-05-06 10:58:50 +02:00
real.h gimple-range-op: Improve handling of sin/cos ranges 2023-05-06 10:58:50 +02:00
realmpfr.cc
realmpfr.h
recog.cc recog: Change return type of predicate functions from int to bool 2023-06-19 16:41:51 +02:00
recog.h recog: Change return type of predicate functions from int to bool 2023-06-19 16:41:51 +02:00
ree.cc Machine_Mode: Extend machine_mode from 8 to 16 bits 2023-05-18 17:15:10 +08:00
reg-notes.def
reg-stack.cc reg-stack: Change return type of predicate functions from int to bool 2023-06-02 16:17:46 +02:00
regcprop.cc cprop_hardreg: fix ORIGINAL_REGNO/REG_ATTRS/REG_POINTER handling 2023-06-28 16:05:55 +02:00
regcprop.h
reginfo.cc reginfo: Change return type of predicate functions from int to bool 2023-06-05 16:32:31 +02:00
regrename.cc
regrename.h
regs.h
regset.h
regstat.cc
reload.cc
reload.h
reload1.cc reload1: Change return type of predicate function from int to bool 2023-06-06 19:16:54 +02:00
reorg.cc
resource.cc
resource.h
rtl-error.cc
rtl-error.h
rtl-iter.h
rtl-ssa.h
rtl-tests.cc
rtl.cc RTL: Change return type of predicate and callback functions from int to bool 2023-06-18 22:10:19 +02:00
rtl.def Add RTX codes for BITREVERSE and COPYSIGN. 2023-06-07 00:32:51 +01:00
rtl.h final+varasm: Change return type of predicate functions from int to bool 2023-06-28 16:30:26 +02:00
rtlanal.cc rtlanal: Change return type of predicate functions from int to bool 2023-05-30 07:27:08 +02:00
rtlanal.h Machine_Mode: Extend machine_mode from 8 to 16 bits 2023-05-18 17:15:10 +08:00
rtlhash.cc
rtlhash.h
rtlhooks-def.h
rtlhooks.cc
rtx-vector-builder.cc
rtx-vector-builder.h
run-rtl-passes.cc
run-rtl-passes.h
sancov.cc
sanitizer.def
sanopt.cc
sbitmap.cc cselib+expr+bitmap: Change return type of predicate functions from int to bool 2023-06-29 17:29:47 +02:00
sbitmap.h cselib+expr+bitmap: Change return type of predicate functions from int to bool 2023-06-29 17:29:47 +02:00
sched-deps.cc In pipeline scheduling, insns should not be fusion in different BB blocks. 2023-05-25 11:55:26 -06:00
sched-ebb.cc
sched-int.h
sched-rgn.cc
sel-sched-dump.cc
sel-sched-dump.h
sel-sched-ir.cc RTL: Change return type of predicate and callback functions from int to bool 2023-06-18 22:10:19 +02:00
sel-sched-ir.h
sel-sched.cc
sel-sched.h
selftest-diagnostic.cc
selftest-diagnostic.h
selftest-rtl.cc
selftest-rtl.h
selftest-run-tests.cc diagnostics: add support for "text art" diagrams 2023-06-21 21:49:00 -04:00
selftest.cc
selftest.h
sese.cc More last_stmt removal 2023-04-26 08:39:58 +02:00
sese.h
shortest-paths.h
shrink-wrap.cc
shrink-wrap.h
signop.h
simplify-rtx.cc Improved SUBREG simplifications in simplify-rtx.cc's simplify_subreg. 2023-06-23 15:23:20 +01:00
sort.cc
sparseset.cc
sparseset.h
spellcheck-tree.cc
spellcheck-tree.h
spellcheck.cc
spellcheck.h
splay-tree-utils.cc
splay-tree-utils.h
splay-tree-utils.tcc
sreal.cc
sreal.h
ssa-iterators.h
ssa.h
stack-ptr-mod.cc
statistics.cc middle-end/110489 - avoid useless work on statistics 2023-06-30 10:38:14 +02:00
statistics.h
stmt.cc
stmt.h
stor-layout.cc stor-layout, aarch64: Express SRA intrinsics with RTL codes 2023-05-30 09:56:29 +01:00
stor-layout.h
store-motion.cc
streamer-hooks.cc
streamer-hooks.h
stringpool.cc
stringpool.h
substring-locations.cc
substring-locations.h
symbol-summary.h
symtab-clones.cc
symtab-clones.h
symtab-thunks.cc
symtab-thunks.h
symtab.cc
sync-builtins.def
system.h
target-def.h
target-globals.cc
target-globals.h
target-hooks-macros.h
target-insns.def
target.def stor-layout, aarch64: Express SRA intrinsics with RTL codes 2023-05-30 09:56:29 +01:00
target.h
targhooks.cc Add targetm.libm_function_max_error 2023-04-28 08:59:29 +02:00
targhooks.h Add targetm.libm_function_max_error 2023-04-28 08:59:29 +02:00
timevar.cc
timevar.def
timevar.h
toplev.cc Allow plugin dumps 2023-05-19 18:48:43 -04:00
toplev.h
tracer.cc
tracer.h
trans-mem.cc c-family: implement -ffp-contract=on 2023-06-21 21:31:25 +03:00
trans-mem.h
tree-affine.cc Remove some uses of deprecated irange API. 2023-04-26 11:46:06 +02:00
tree-affine.h
tree-call-cdce.cc
tree-cfg.cc Remove widen_plus/minus_expr tree codes 2023-06-05 17:56:22 +01:00
tree-cfg.h Move copy_phi_arg_into_existing_phi to common location and use it 2023-05-04 04:25:27 -07:00
tree-cfgcleanup.cc Move copy_phi_arg_into_existing_phi to common location and use it 2023-05-04 04:25:27 -07:00
tree-cfgcleanup.h
tree-chrec.cc
tree-chrec.h
tree-complex.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-core.h Introduce IR bit TYPE_INCLUDES_FLEXARRAY for the GCC extension 2023-06-29 17:13:09 +00:00
tree-data-ref.cc Remove type from range_op_handler table selection 2023-06-12 10:50:30 -04:00
tree-data-ref.h
tree-dfa.cc Remove some uses of deprecated irange API. 2023-04-26 11:46:06 +02:00
tree-dfa.h
tree-diagnostic-client-data-hooks.cc
tree-diagnostic-path.cc
tree-diagnostic.cc
tree-diagnostic.h
tree-dump.cc
tree-dump.h
tree-eh.cc c++: use __cxa_call_terminate for MUST_NOT_THROW [PR97720] 2023-06-03 21:49:00 -04:00
tree-eh.h
tree-emutls.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-hash-traits.h
tree-hasher.h
tree-if-conv.cc Move can_vec_mask_load_store_p and get_len_load_store_mode from "optabs-query" into "optabs-tree" 2023-06-21 20:29:10 +08:00
tree-if-conv.h
tree-inline.cc Remove widen_plus/minus_expr tree codes 2023-06-05 17:56:22 +01:00
tree-inline.h
tree-into-ssa.cc
tree-into-ssa.h
tree-iterator.cc
tree-iterator.h
tree-logical-location.cc
tree-logical-location.h
tree-loop-distribution.cc Hide IVOPTs strip_offset 2023-06-21 13:38:02 +02:00
tree-nested.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-nested.h
tree-nrv.cc tree-optimization/110434 - avoid <retval> ={v} {CLOBBER} from NRV 2023-06-28 15:52:16 +02:00
tree-object-size.cc Use TYPE_INCLUDES_FLEXARRAY in __builtin_object_size [PR tree-optimization/101832] 2023-06-30 18:24:34 +00:00
tree-object-size.h
tree-outof-ssa.cc
tree-outof-ssa.h
tree-parloops.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-parloops.h
tree-pass.h
tree-phinodes.cc
tree-phinodes.h
tree-predcom.cc
tree-pretty-print.cc openmp: Add support for the 'present' modifier 2023-06-06 16:49:22 +02:00
tree-pretty-print.h
tree-profile.cc
tree-scalar-evolution.cc Remove some uses of deprecated irange API. 2023-04-26 11:46:06 +02:00
tree-scalar-evolution.h
tree-sra.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-sra.h
tree-ssa-address.cc
tree-ssa-address.h
tree-ssa-alias-compare.h
tree-ssa-alias.cc SSA ALIAS: Apply LEN_MASK_STORE to 'ref_maybe_used_by_call_p_1' 2023-06-25 09:31:28 +08:00
tree-ssa-alias.h
tree-ssa-ccp.cc Refactor wi::bswap as a function (instead of a method). 2023-05-31 23:40:11 +01:00
tree-ssa-ccp.h
tree-ssa-coalesce.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa-coalesce.h
tree-ssa-copy.cc
tree-ssa-dce.cc Fix profile of forwarders produced by cd-dce 2023-06-26 18:29:39 +02:00
tree-ssa-dce.h Move substitute_and_fold over to use simple_dce_from_worklist 2023-05-07 23:16:06 -07:00
tree-ssa-dom.cc Move maybe_set_nonzero_bits() to its only user. 2023-06-29 18:49:27 +02:00
tree-ssa-dom.h
tree-ssa-dse.cc DSE: Add LEN_MASK_STORE analysis into DSE and fix LEN_STORE 2023-06-26 22:07:22 +08:00
tree-ssa-dse.h
tree-ssa-forwprop.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa-ifcombine.cc More last_stmt removal 2023-04-26 08:39:58 +02:00
tree-ssa-live.cc
tree-ssa-live.h
tree-ssa-loop-ch.cc Fix memory leak in loop header copying 2023-06-13 14:19:31 +02:00
tree-ssa-loop-im.cc tree-optimization/110451 - hoist invariant compare after interchange 2023-06-28 15:02:33 +02:00
tree-ssa-loop-ivcanon.cc tree-optimization/110298 - CFG cleanup and stale nb_iterations 2023-06-19 12:59:47 +02:00
tree-ssa-loop-ivopts.cc LOOP IVOPTS: Apply LEN_MASK_{LOAD,STORE} 2023-06-24 21:08:12 +08:00
tree-ssa-loop-ivopts.h Hide IVOPTs strip_offset 2023-06-21 13:38:02 +02:00
tree-ssa-loop-manip.cc Fix incorrect SLOC inherited by induction variable increment 2023-05-29 11:13:42 +02:00
tree-ssa-loop-manip.h VECT: Add tree_code into "creat_iv" and allow it can handle MINUS_EXPR IV 2023-05-11 19:06:44 +08:00
tree-ssa-loop-niter.cc Rename last_stmt to last_nondebug_stmt 2023-05-04 09:42:43 +02:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.cc
tree-ssa-loop-split.cc Rename last_stmt to last_nondebug_stmt 2023-05-04 09:42:43 +02:00
tree-ssa-loop-unswitch.cc Remove type from range_op_handler table selection 2023-06-12 10:50:30 -04:00
tree-ssa-loop.cc
tree-ssa-loop.h
tree-ssa-math-opts.cc tree-ssa-math-opts: Use element_precision. 2023-06-29 13:02:19 +02:00
tree-ssa-math-opts.h
tree-ssa-operands.cc
tree-ssa-operands.h
tree-ssa-phiopt.cc PHIOPT: factor out unary operations instead of just conversions 2023-05-08 00:36:19 -07:00
tree-ssa-phiprop.cc Tiny phiprop compile time optimization 2023-06-23 18:45:42 +02:00
tree-ssa-pre.cc tree-optimization/109849 - fix fallout of PRE hoisting change 2023-05-24 13:17:10 +02:00
tree-ssa-propagate.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa-propagate.h
tree-ssa-reassoc.cc Avoid adding loop-carried ops to long chains 2023-06-29 09:30:19 +00:00
tree-ssa-reassoc.h
tree-ssa-sccvn.cc SCCVN: Fix repeating variable name "len" 2023-06-26 17:35:27 +08:00
tree-ssa-sccvn.h
tree-ssa-scopedtables.cc Fix TYPE_PRECISION use in hashable_expr_equal_p 2023-06-26 13:02:35 +02:00
tree-ssa-scopedtables.h
tree-ssa-sink.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa-strlen.cc Remove range_int_cst_p. 2023-04-26 13:49:42 +02:00
tree-ssa-strlen.h
tree-ssa-structalias.cc tree-optimization/109143 - improve PTA compile time 2023-06-06 09:19:35 +02:00
tree-ssa-tail-merge.cc
tree-ssa-ter.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa-ter.h
tree-ssa-threadbackward.cc Conversion to irange wide_int API. 2023-05-01 08:33:12 +02:00
tree-ssa-threadedge.cc This replaces uses of last_stmt where we do not require debug skipping 2023-04-24 09:35:38 +02:00
tree-ssa-threadedge.h
tree-ssa-threadupdate.cc Move copy_phi_arg_into_existing_phi to common location and use it 2023-05-04 04:25:27 -07:00
tree-ssa-threadupdate.h
tree-ssa-uncprop.cc
tree-ssa-uninit.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-ssa.h
tree-ssanames.cc Convert internal representation of irange to wide_ints. 2023-05-01 08:33:16 +02:00
tree-ssanames.h Convert internal representation of irange to wide_ints. 2023-05-01 08:33:16 +02:00
tree-stdarg.cc
tree-stdarg.h
tree-streamer-in.cc Introduce IR bit TYPE_INCLUDES_FLEXARRAY for the GCC extension 2023-06-29 17:13:09 +00:00
tree-streamer-out.cc Introduce IR bit TYPE_INCLUDES_FLEXARRAY for the GCC extension 2023-06-29 17:13:09 +00:00
tree-streamer.cc
tree-streamer.h
tree-switch-conversion.cc Remove some uses of deprecated irange API. 2023-04-26 11:46:06 +02:00
tree-switch-conversion.h
tree-tailcall.cc This replaces uses of last_stmt where we do not require debug skipping 2023-04-24 09:35:38 +02:00
tree-vect-data-refs.cc Remove widen_plus/minus_expr tree codes 2023-06-05 17:56:22 +01:00
tree-vect-generic.cc vect: vectorize via libfuncs 2023-06-19 12:35:34 +01:00
tree-vect-loop-manip.cc vect: Restore aarch64 bootstrap 2023-06-19 09:43:36 +01:00
tree-vect-loop.cc AVX512 fully masked vectorization 2023-06-19 09:28:46 +02:00
tree-vect-patterns.cc Mid engine setup [SU]ABDL 2023-06-30 12:28:45 +01:00
tree-vect-slp-patterns.cc
tree-vect-slp.cc tree-optimization/110443 - prevent SLP splat of gathers 2023-06-28 11:09:53 +02:00
tree-vect-stmts.cc tree-optimization/110460 - fend off vector types from vectorizer 2023-06-29 11:54:05 +02:00
tree-vector-builder.cc
tree-vector-builder.h gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
tree-vectorizer.cc This replaces uses of last_stmt where we do not require debug skipping 2023-04-24 09:35:38 +02:00
tree-vectorizer.h AVX512 fully masked vectorization 2023-06-19 09:28:46 +02:00
tree-vrp.cc Move maybe_set_nonzero_bits() to its only user. 2023-06-29 18:49:27 +02:00
tree-vrp.h Move maybe_set_nonzero_bits() to its only user. 2023-06-29 18:49:27 +02:00
tree.cc Prevent TYPE_PRECISION on VECTOR_TYPEs 2023-06-28 08:15:48 +02:00
tree.def Remove widen_plus/minus_expr tree codes 2023-06-05 17:56:22 +01:00
tree.h Introduce IR bit TYPE_INCLUDES_FLEXARRAY for the GCC extension 2023-06-29 17:13:09 +00:00
treestruct.def
tristate.cc
tristate.h
tsan.cc
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.cc
typed-splay-tree.h
ubsan.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
ubsan.h
valtrack.cc
valtrack.h
value-pointer-equiv.cc More last_stmt removal 2023-05-03 14:58:56 +02:00
value-pointer-equiv.h
value-prof.cc
value-prof.h
value-query.cc Remove type from range_op_handler table selection 2023-06-12 10:50:30 -04:00
value-query.h Remove range_query::get_value_range. 2023-04-26 10:28:12 +02:00
value-range-pretty-print.cc Replace ad-hoc value_range dumpers with irange::dump. 2023-04-26 11:45:22 +02:00
value-range-pretty-print.h
value-range-storage.cc Remove type from vrange_storage::equal_p. 2023-05-06 07:42:00 +02:00
value-range-storage.h Remove type from vrange_storage::equal_p. 2023-05-06 07:42:00 +02:00
value-range.cc Tidy up the range normalization code. 2023-06-29 18:49:27 +02:00
value-range.h Tidy up the range normalization code. 2023-06-29 18:49:27 +02:00
value-relation.cc Remove type from range_op_handler table selection 2023-06-12 10:50:30 -04:00
value-relation.h Quicker relation check. 2023-04-26 15:17:08 -04:00
var-tracking.cc gcc: use _P() defines from tree.h 2023-05-18 21:50:47 +02:00
varasm.cc final+varasm: Change return type of predicate functions from int to bool 2023-06-28 16:30:26 +02:00
varasm.h final+varasm: Change return type of predicate functions from int to bool 2023-06-28 16:30:26 +02:00
varpool.cc
vec-perm-indices.cc
vec-perm-indices.h
vec.cc
vec.h A couple of va_gc_atomic tweaks 2023-06-29 08:48:17 +01:00
vector-builder.h
vmsdbg.h
vmsdbgout.cc
vr-values.cc Remove type from range_op_handler table selection 2023-06-12 10:50:30 -04:00
vr-values.h Rewrite bounds_of_var_in_loop() to use ranges. 2023-05-01 08:33:15 +02:00
vtable-verify.cc
vtable-verify.h
warning-control.cc
web.cc
wide-int-bitmask.h
wide-int-print.cc
wide-int-print.h
wide-int.cc [Committed] Bug fix to new wi::bitreverse_large function. 2023-06-07 23:40:56 +01:00
wide-int.h New wi::bitreverse function. 2023-06-05 17:28:51 +01:00
xcoff.h

README.Portability

Copyright (C) 2000-2023 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.