gcc/gcc
Bin Cheng b662250c1f AArch64: use stable sorting in generating ldp/stp
In some corner cases, we have code as below:
  [base + 0x310] = A
  [base + 0x320] = B
  [base + 0x330] = C
  [base + 0x320] = D
unstable sorting could result in wrong value in offset 0x320.  The
patch fixes it by using gcc_stablesort.

2021-07-28  Bin Cheng  <bin.cheng@linux.alibaba.com>

	* config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use
	gcc_stablesort.
2021-07-28 17:50:59 +08:00
..
ada Daily bump. 2021-07-26 00:16:23 +00:00
analyzer Daily bump. 2021-07-27 00:16:27 +00:00
c Daily bump. 2021-07-22 00:16:46 +00:00
c-family Daily bump. 2021-07-28 00:16:25 +00:00
common x86: Enable the GPR only instructions for -mgeneral-regs-only 2021-07-18 12:37:48 -07:00
config AArch64: use stable sorting in generating ldp/stp 2021-07-28 17:50:59 +08:00
cp Daily bump. 2021-07-28 00:16:25 +00:00
d Daily bump. 2021-07-04 00:16:25 +00:00
doc debug: Allow means for targets to opt out of CTF/BTF support 2021-07-19 10:34:39 -07:00
fortran Daily bump. 2021-07-27 00:16:27 +00:00
ginclude
go compiler: avoid aliases in receiver types 2021-07-19 16:47:40 -07:00
jit Daily bump. 2021-07-19 00:16:24 +00:00
lto Daily bump. 2021-06-01 00:16:37 +00:00
objc Daily bump. 2021-06-29 00:16:42 +00:00
objcp Fix my e-mail in the ChangeLog 2021-06-09 12:59:52 +02:00
po Daily bump. 2021-07-27 00:16:27 +00:00
rtl-ssa rtl-ssa: Fix -fcompare-debug failure [PR100303] 2021-04-29 17:24:57 +01:00
testsuite i386: Improve AVX2 expansion of vector >> vector DImode arithm. shifts [PR101611] 2021-07-28 10:52:51 +02:00
ABOUT-GCC-NLS
acinclude.m4
aclocal.m4
addresses.h
adjust-alignment.c
alias.c Don't skip prologue/epilogue when initializing alias. 2021-07-28 17:44:35 +08:00
alias.h
align.h
alloc-pool.c
alloc-pool.h
array-traits.h
asan.c
asan.h Add no_sanitize_coverage attribute. 2021-05-25 14:56:28 +02:00
attr-fnspec.h
attribs.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
attribs.h
auto-inc-dec.c
auto-profile.c autofdo: Bump AUTO_PROFILE_VERSION. 2021-06-22 08:54:34 +02:00
auto-profile.h
backend.h
BASE-VER
basic-block.h
bb-reorder.c
bb-reorder.h
bitmap.c Implement multi-bit aligned accessors for sparse bitmap. 2021-06-07 17:31:01 -04:00
bitmap.h Implement multi-bit aligned accessors for sparse bitmap. 2021-06-07 17:31:01 -04:00
btfout.c BTF: Support for BTF_KIND_FLOAT 2021-07-02 08:32:44 -07:00
builtin-attrs.def
builtin-types.def
builtins.c Correct stpcpy offset computation for -Warray-bounds et al. [PR101397]. 2021-07-20 13:50:16 -06:00
builtins.def Remove BRIG front-end. 2021-05-11 15:03:57 +02:00
builtins.h Correct handling of variable offset minus constant in -Warray-bounds [PR100137] 2021-07-07 14:06:59 -06:00
caller-save.c Remove CC0 2021-05-04 13:53:50 +00:00
calls.c Correct a mistake in a warnung for -Wnonnull. 2021-07-28 08:48:30 +02:00
calls.h
ccmp.c
ccmp.h
cfg-flags.def
cfg.c
cfg.h
cfganal.c First do add_noreturn_fake_exit_edges in connect_infinite_loops_to_exit 2021-04-23 12:05:42 +02:00
cfganal.h
cfgbuild.c
cfgbuild.h
cfgcleanup.c return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
cfgcleanup.h
cfgexpand.c pass location to md_asm_adjust 2021-07-15 01:10:47 -04:00
cfgexpand.h
cfghooks.c
cfghooks.h
cfgloop.c Handle multiple latches in irreducible region mark 2021-06-15 10:31:16 +02:00
cfgloop.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
cfgloopanal.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
cfgloopmanip.c middle-end/101291 - set loop copy of versioned loop 2021-07-05 12:51:52 +02:00
cfgloopmanip.h
cfgrtl.c Remove CC0 2021-05-04 13:53:50 +00:00
cfgrtl.h
cgraph.c ipa-sra: Restructure how cloning and call redirection communicate (PR 93385) 2021-06-28 18:24:34 +02:00
cgraph.h ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
cgraphbuild.c
cgraphclones.c ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
cgraphunit.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
ChangeLog Daily bump. 2021-07-28 00:16:25 +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.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
cif-code.def
collect2-aix.c
collect2-aix.h
collect2.c Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
collect2.h
collect-utils.c
collect-utils.h
color-macros.h
combine-stack-adj.c
combine.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
common.md
common.opt add -fmove-loop-stores option to control GIMPLE loop store-motion 2021-07-06 11:56:47 +02:00
compare-elim.c Minor improvement to compare elimination 2021-06-15 12:43:42 -04:00
conditions.h Remove CC0 2021-05-04 13:53:50 +00:00
config.build
config.gcc Revert "RISC-V: Detect python and pick best one for calling multilib-generator" 2021-07-21 16:31:21 +08:00
config.host
config.in Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
configure Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
configure.ac Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
context.c
context.h
convert.c
convert.h
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
coretypes.h
coroutine-builtins.def
coroutine-passes.cc
coverage.c gcov: Fix use of profile info section 2021-07-21 11:39:30 +02:00
coverage.h
cppbuiltin.c
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c Remove CC0 2021-05-04 13:53:50 +00:00
cse.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
cselib.c Remove CC0 2021-05-04 13:53:50 +00:00
cselib.h
cstamp-h.in
ctfc.c CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
ctfc.h CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
ctfout.c bootstrap: Include memmodel.h in btfout.c and ctfout.c before tm_p.h 2021-06-29 15:10:17 +00:00
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
DATESTAMP Daily bump. 2021-07-28 00:16:25 +00:00
dbgcnt.c
dbgcnt.def Fix 101256: Wrong code due to range incorrect from PHI-OPT 2021-07-06 00:32:40 -07:00
dbgcnt.h
dbxout.c dwarf: new dwarf_debuginfo_p predicate 2021-05-20 12:39:33 -07:00
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
debug.h Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
defaults.h Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
DEV-PHASE
df-core.c
df-problems.c Remove CC0 2021-05-04 13:53:50 +00:00
df-scan.c df: Fix up handling of paradoxical subregs in debug insns [PR101170] 2021-06-24 12:24:48 +02:00
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic-event-id.h
diagnostic-format-json.cc
diagnostic-metadata.h
diagnostic-path.h
diagnostic-show-locus.c diagnostic-show-locus: tweak rejection logic 2021-06-03 10:32:40 -04:00
diagnostic-spec.c Add support for per-location warning groups. 2021-06-24 19:23:42 -06:00
diagnostic-spec.h Add support for per-location warning groups. 2021-06-24 19:23:42 -06:00
diagnostic-url.h
diagnostic.c Improve warning suppression for inlined functions [PR98512]. 2021-07-02 16:19:35 -06:00
diagnostic.def
diagnostic.h Improve warning suppression for inlined functions [PR98512]. 2021-07-02 16:19:35 -06:00
digraph.cc
digraph.h
dojump.c
dojump.h
dominance.c return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
dominance.h return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
domwalk.c
domwalk.h
double-int.c
double-int.h
dse.c
dump-context.h produce simple DOT graphs from SLP trees 2021-07-12 16:47:45 +02:00
dumpfile.c produce simple DOT graphs from SLP trees 2021-07-12 16:47:45 +02:00
dumpfile.h
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
dwarf2ctf.c dwarf2ctf: the unit of sou field location is bits [PR101283] 2021-07-06 14:07:39 -07:00
dwarf2ctf.h CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
dwarf2out.c debug/101473 - apply debug prefix maps before checksumming DIEs 2021-07-20 12:49:59 +02:00
dwarf2out.h debug/101473 - apply debug prefix maps before checksumming DIEs 2021-07-20 12:49:59 +02:00
early-remat.c early-remat.c: Fix new/delete mismatch [PR100230] 2021-04-23 14:09:15 +01:00
edit-context.c
edit-context.h
emit-rtl.c Remove CC0 2021-05-04 13:53:50 +00:00
emit-rtl.h
errors.c
errors.h
escaped_string.h
et-forest.c
et-forest.h
except.c except: remove dwarf2out.h dependency 2021-06-26 00:17:43 -04:00
except.h
exec-tool.in Darwin, configury : Allow for specification and detection of dsymutil. 2021-07-05 20:40:45 +01:00
explow.c
explow.h
expmed.c expmed: Fix store_integral_bit_field [PR101562] 2021-07-23 19:55:16 +02:00
expmed.h
expr.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
expr.h introduce try store by multiple pieces 2021-05-03 22:48:47 -03:00
fibonacci_heap.c
fibonacci_heap.h
file-find.c
file-find.h
file-prefix-map.c
file-prefix-map.h
final.c CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
fixed-value.c
fixed-value.h
flag-types.h CTF/BTF debug formats 2021-06-28 18:47:20 +02:00
flags.h debug: Add new function ctf_debuginfo_p 2021-07-19 10:34:22 -07:00
fold-const-call.c [PATCH] PR middle-end/53267: Constant fold BUILT_IN_FMOD. 2021-06-09 11:25:34 -04:00
fold-const-call.h
fold-const.c Avoid -Wvla-parameter for nontrivial bounds [PR97548]. 2021-07-15 10:22:06 -06:00
fold-const.h [PATCH] PR tree-optimization/96392 Optimize x+0.0 if x is an integer 2021-06-11 17:42:14 +01:00
fp-test.c
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
function-abi.cc
function-abi.h
function-tests.c Implement generic expression evaluator for range_query. 2021-06-03 17:47:27 +02:00
function.c Attach MEM_EXPR information when flushing BLKmode args to the stack - V2 2021-07-20 14:54:15 -04:00
function.h Common API for accessing global and on-demand ranges. 2021-05-26 21:26:54 +02:00
fwprop.c Remove CC0 2021-05-04 13:53:50 +00:00
gcc-ar.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h
gcc-symtab.h
gcc.c driver/101383 - handle -gtoggle in driver 2021-07-15 07:56:08 +02:00
gcc.h
gcov-counter.def
gcov-dump.c
gcov-io.c gcov: Use system IO buffering 2021-05-13 10:59:36 +02:00
gcov-io.h gcov: update comment about padding 2021-06-22 08:43:41 +02:00
gcov-tool.c
gcov.c
gcse-common.c Remove CC0 2021-05-04 13:53:50 +00:00
gcse-common.h
gcse.c tree-optimization/101373 - avoid PRE across externally throwing call 2021-07-12 16:47:45 +02:00
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
genautomata.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
gencfn-macros.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
gencheck.c
genchecksum.c
gencodes.c
genconditions.c
genconfig.c Remove CC0 2021-05-04 13:53:50 +00:00
genconstants.c
genemit.c Remove CC0 2021-05-04 13:53:50 +00:00
genenums.c
generic-match-head.c match.pd: Add some __builtin_ctz (x) cmp cst simplifications [PR95527] 2021-04-27 14:47:54 +02:00
generic-match.h
genextract.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
genflags.c gcc/genflags.c: Improve error message 2021-04-30 12:19:07 +00:00
gengenrtl.c Remove CC0 2021-05-04 13:53:50 +00:00
gengtype-lex.l
gengtype-parse.c
gengtype-state.c Support scanning of build-time GC roots in gengtype 2021-07-16 12:51:46 -04:00
gengtype.c Support scanning of build-time GC roots in gengtype 2021-07-16 12:51:46 -04:00
gengtype.h Support scanning of build-time GC roots in gengtype 2021-07-16 12:51:46 -04:00
genhooks.c genhooks: remove dead code 2021-06-06 19:05:46 +02:00
genmatch.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
genmddeps.c
genmddump.c
genmodes.c
genmultilib
genopinit.c
genoutput.c Improve message for wrong number of alternatives. 2021-05-17 13:44:49 +01:00
genpeep.c
genpreds.c Change the type of predicates to bool. 2021-07-01 15:19:28 +02:00
genrecog.c Remove CC0 2021-05-04 13:53:50 +00:00
gensupport.c Fix match_dup bug of define_cond_exec. 2021-05-28 07:46:28 +01:00
gensupport.h
gentarget-def.c
genversion.c Use genversion to generate version.h. 2021-05-10 09:13:46 +02:00
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
ggc-tests.c
ggc.h PR other/100463 - many errors using GTY and hash_map 2021-05-27 13:37:43 -06:00
gimple-array-bounds.cc Pass gimple context to array_bounds_checker. 2021-07-26 11:55:24 +02:00
gimple-array-bounds.h Pass gimple context to array_bounds_checker. 2021-07-26 11:55:24 +02:00
gimple-builder.c
gimple-builder.h
gimple-expr.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-expr.h
gimple-fold.c gimple-fold: Fix up __builtin_clear_padding on classes with virtual inheritence [PR101586] 2021-07-27 09:59:37 +02:00
gimple-fold.h Simplify {gimplify_and_,}update_call_from_tree API 2021-04-26 10:08:46 +02:00
gimple-if-to-switch.cc
gimple-isel.cc
gimple-iterator.c
gimple-iterator.h
gimple-laddress.c
gimple-loop-interchange.cc tree-optimization/101280 - re-revise interchange fix for PR101173 2021-07-02 08:54:32 +02:00
gimple-loop-jam.c unroll: Run VN on unrolled-and-jammed loops 2021-07-21 07:50:20 +01:00
gimple-loop-versioning.cc
gimple-low.c
gimple-low.h
gimple-match-head.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
gimple-match.h
gimple-predict.h
gimple-pretty-print.c Change the type of return value of profile_count::value to uint64_t 2021-07-15 17:27:17 +02:00
gimple-pretty-print.h
gimple-range-cache.cc Allow non-null adjustments for pointers even when there is a known range. 2021-07-22 17:29:07 +02:00
gimple-range-cache.h Abstract out non_null adjustments in ranger. 2021-07-15 14:23:55 +02:00
gimple-range-edge.cc Make TRUE/FALSE edge calculation available without the outgoing edge class. 2021-05-07 15:00:21 -04:00
gimple-range-edge.h Make TRUE/FALSE edge calculation available without the outgoing edge class. 2021-05-07 15:00:21 -04:00
gimple-range-fold.cc Confirm and Handle only ASCII in toupper and tolower ranges. 2021-07-26 17:30:25 -04:00
gimple-range-fold.h Add gimple_range_type for statements. 2021-07-15 15:58:11 -04:00
gimple-range-gori.cc Split gimple-range into gimple-range-fold and gimple-range. 2021-06-23 10:26:16 -04:00
gimple-range-gori.h Split gimple-range into gimple-range-fold and gimple-range. 2021-06-23 10:26:16 -04:00
gimple-range-path.cc Implement basic block path solver. 2021-07-27 12:01:37 +02:00
gimple-range-path.h Implement basic block path solver. 2021-07-27 12:01:37 +02:00
gimple-range-tests.cc Implement generic expression evaluator for range_query. 2021-06-03 17:47:27 +02:00
gimple-range.cc Abstract out non_null adjustments in ranger. 2021-07-15 14:23:55 +02:00
gimple-range.h Split gimple-range into gimple-range-fold and gimple-range. 2021-06-23 10:26:16 -04:00
gimple-ssa-backprop.c
gimple-ssa-evrp-analyze.c Remove irange::varying_p checks from symbolic_p and constant_p. 2021-04-26 15:42:50 +02:00
gimple-ssa-evrp-analyze.h
gimple-ssa-evrp.c evrp: fix AddressSanitizer: alloc-dealloc-mismatch 2021-06-14 10:22:36 +02:00
gimple-ssa-isolate-paths.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-ssa-nonnull-compare.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-ssa-split-paths.c
gimple-ssa-sprintf.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
gimple-ssa-store-merging.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
gimple-ssa-strength-reduction.c
gimple-ssa-warn-alloca.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
gimple-ssa-warn-restrict.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
gimple-ssa-warn-restrict.h middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple-walk.c tree-optimization/101229 - fix vectorizer SLP hybrid detection with PHIs 2021-06-28 11:55:24 +02:00
gimple-walk.h
gimple.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
gimple.def
gimple.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
gimplify-me.c
gimplify-me.h
gimplify.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
gimplify.h
glimits.h
godump.c godump: Fix -fdump-go-spec= reproduceability issue [PR101407] 2021-07-14 10:22:50 +02:00
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c
graphite-isl-ast-to-gimple.c
graphite-optimize-isl.c
graphite-poly.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
graphite-scop-detection.c
graphite-sese-to-poly.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
graphite.c
graphite.h
graphviz.cc
graphviz.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
hard-reg-set.h
hash-map-tests.c
hash-map-traits.h
hash-map.h PR other/100463 - many errors using GTY and hash_map 2021-05-27 13:37:43 -06:00
hash-set-tests.c
hash-set.h
hash-table.c
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.c Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
hooks.h Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
host-default.c
hosthooks-def.h
hosthooks.h
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
ifcvt.h
inchash.c
inchash.h
incpath.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
incpath.h
init-regs.c
input.c input.c: move file caching globals to a new file_cache class 2021-07-01 17:44:51 -04:00
input.h input.c: move file caching globals to a new file_cache class 2021-07-01 17:44:51 -04:00
insn-addr.h
insn-notes.def
int-vector-builder.h
internal-fn.c vect: Recog mul_highpart pattern [PR100696] 2021-07-19 20:49:17 -05:00
internal-fn.def vect: Recog mul_highpart pattern [PR100696] 2021-07-19 20:49:17 -05:00
internal-fn.h c++/88601 - [C/C++] __builtin_shufflevector support 2021-05-31 08:46:04 +02:00
intl.c
intl.h intl: add comments to _, N_, and G_ 2021-05-14 12:11:12 -04:00
ipa-comdats.c
ipa-cp.c ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
ipa-devirt.c
ipa-fnsummary.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-fnsummary.h
ipa-free-lang-data.cc Move pass free_lang_data to its own file. 2021-04-28 19:05:41 -06:00
ipa-icf-gimple.c
ipa-icf-gimple.h
ipa-icf.c ipa: Get rid of IPA_NODE_REF and IPA_EDGE_REF 2021-05-10 16:24:08 +02:00
ipa-icf.h icf: Fix memory leak of a vector. 2021-06-02 08:46:24 +02:00
ipa-inline-analysis.c
ipa-inline-transform.c
ipa-inline.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-inline.h
ipa-modref-tree.c
ipa-modref-tree.h
ipa-modref.c Implement EAF_NOT_RETURNED tracking in ipa-modref 2021-07-16 14:21:29 +02:00
ipa-modref.h Implement EAF_NOT_RETURNED tracking in ipa-modref 2021-07-16 14:21:29 +02:00
ipa-param-manipulation.c ipa-sra: Introduce a mini-DCE to tree-inline.c (PR 93385) 2021-06-28 18:24:54 +02:00
ipa-param-manipulation.h ipa-sra: Introduce a mini-DCE to tree-inline.c (PR 93385) 2021-06-28 18:24:54 +02:00
ipa-polymorphic-call.c
ipa-predicate.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-predicate.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ipa-profile.c ipa: Get rid of IPA_NODE_REF and IPA_EDGE_REF 2021-05-10 16:24:08 +02:00
ipa-prop.c ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
ipa-prop.h ipa: Adjust references to identify read-only globals 2021-07-27 10:03:17 +02:00
ipa-pure-const.c
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c
ipa-sra.c ipa-sra: Fix thinko when overriding safe_to_import_accesses (PR 101066) 2021-07-08 19:45:16 +02:00
ipa-utils.c
ipa-utils.h
ipa-visibility.c
ipa.c
ira-build.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
ira-color.c
ira-conflicts.c ira: Support more matching constraint forms with param [PR100328] 2021-07-05 20:53:19 -05:00
ira-costs.c Remove CC0 2021-05-04 13:53:50 +00:00
ira-emit.c
ira-int.h ira: Support more matching constraint forms with param [PR100328] 2021-07-05 20:53:19 -05:00
ira-lives.c
ira.c ira: Support more matching constraint forms with param [PR100328] 2021-07-05 20:53:19 -05:00
ira.h
is-a.h
iterator-utils.h
json.cc
json.h
jump.c Remove CC0 2021-05-04 13:53:50 +00:00
langhooks-def.h Fortran/OpenMP: Extend defaultmap clause for OpenMP 5 [PR92568] 2021-06-15 16:07:11 +02:00
langhooks.c Fortran/OpenMP: Extend defaultmap clause for OpenMP 5 [PR92568] 2021-06-15 16:07:11 +02:00
langhooks.h Fortran/OpenMP: Extend defaultmap clause for OpenMP 5 [PR92568] 2021-06-15 16:07:11 +02:00
LANGUAGES
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c
loop-init.c Handle multiple latches in irreducible region mark 2021-06-15 10:31:16 +02:00
loop-invariant.c Remove CC0 2021-05-04 13:53:50 +00:00
loop-iv.c
loop-unroll.c return auto_vec from get_dominated_by 2021-06-17 04:43:27 -04:00
loop-unroll.h
lower-subreg.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
lower-subreg.h
lra-assigns.c
lra-coalesce.c
lra-constraints.c Remove CC0 2021-05-04 13:53:50 +00:00
lra-eliminations.c Remove CC0 2021-05-04 13:53:50 +00:00
lra-int.h
lra-lives.c
lra-remat.c
lra-spills.c
lra.c
lra.h
lto-cgraph.c
lto-compress.c
lto-compress.h
lto-opts.c Add 'default' to -foffload=; document that flag [PR67300] 2021-06-29 16:00:04 +02:00
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c
lto-streamer-out.c
lto-streamer.c
lto-streamer.h Use genversion to generate version.h. 2021-05-10 09:13:46 +02:00
lto-wrapper.c Add 'default' to -foffload=; document that flag [PR67300] 2021-06-29 16:00:04 +02:00
machmode.def
machmode.h
main.c
Makefile.in Implement basic block path solver. 2021-07-27 12:01:37 +02:00
match.pd Fold bswap32(x) != 0 to x != 0 (and related transforms) 2021-07-26 17:30:26 +01:00
mcf.c
mem-stats-traits.h
mem-stats.h
memmodel.h
memory-block.cc
memory-block.h
mkconfig.sh
mode-classes.def
mode-switching.c
modulo-sched.c modulo-sched: skip loops with strange register defs [PR100225] 2021-04-30 11:08:03 +03:00
multiple_target.c
mux-utils.h
obstack-utils.h
omp-builtins.def OpenACC: Separate enter/exit data ABIs 2021-06-10 13:37:13 +02:00
omp-expand.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
omp-expand.h
omp-general.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
omp-general.h [OpenACC privatization] Largely extend diagnostics and corresponding testsuite coverage [PR90115] 2021-05-21 20:09:59 +02:00
omp-low.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
omp-low.h
omp-oacc-kernels-decompose.cc
omp-offload.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
omp-offload.h
omp-simd-clone.c
omp-simd-clone.h
ONEWS
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-problem.cc
opt-problem.h
opt-read.awk
opt-suggestions.c
opt-suggestions.h
optabs-libfuncs.c
optabs-libfuncs.h
optabs-query.c ifcvt: Improve tests for predicated operations 2021-07-13 10:17:34 +01:00
optabs-query.h
optabs-tree.c Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs-tree.h Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs.c Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs.def Vect: Add support for dot-product where the sign for the multiplicant changes. 2021-07-14 14:54:26 +01:00
optabs.h
optc-gen.awk
optc-save-gen.awk arm: Revert partially ebd5e86c0f 2021-06-23 15:30:17 +02:00
opth-gen.awk
optinfo-emit-json.cc
optinfo-emit-json.h
optinfo.cc
optinfo.h
opts-common.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
opts-diagnostic.h
opts-global.c
opts.c debug: Add new function ctf_debuginfo_p 2021-07-19 10:34:22 -07:00
opts.h
ordered-hash-map-tests.cc
ordered-hash-map.h
output.h aix: Redesign section encoding and selection 2021-05-02 15:16:49 -04:00
params.opt Turn hybrid mode off, default to ranger-only mode for EVRP. 2021-07-14 12:47:10 -04:00
pass_manager.h
passes.c
passes.def passes: Fix up subobject __bos [PR101419] 2021-07-13 11:04:22 +02:00
plugin.c
plugin.def
plugin.h
poly-int-types.h
poly-int.h
postreload-gcse.c tree-optimization/101373 - avoid PRE across externally throwing call 2021-07-12 16:47:45 +02:00
postreload.c PR rtl-optimization/100263: Ensure register can change mode 2021-05-05 17:00:43 +02:00
predict.c Handle multiple latches in irreducible region mark 2021-06-15 10:31:16 +02:00
predict.def
predict.h
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl-function.c
print-rtl.c Remove CC0 2021-05-04 13:53:50 +00:00
print-rtl.h
print-tree.c
print-tree.h
profile-count.c
profile-count.h Change the type of return value of profile_count::value to uint64_t 2021-07-15 17:27:17 +02:00
profile.c
profile.h
range-op.cc Implement operator_bitwise_xor::op1_op2_relation_effect. 2021-07-26 16:49:14 +02:00
range-op.h Add wi_fold_in_parts. 2021-07-16 20:27:10 -04:00
range.cc
range.h
read-md.c
read-md.h
read-rtl-function.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
read-rtl-function.h
read-rtl.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
README.Portability
real.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
real.h
realmpfr.c
realmpfr.h
recog.c Change the type of memory classification functions to bool 2021-07-12 16:35:14 +02:00
recog.h Change the type of memory classification functions to bool 2021-07-12 16:35:14 +02:00
ree.c REE: PR rtl-optimization/100264: Handle more PARALLEL SET expressions 2021-06-02 14:01:35 -07:00
reg-notes.def Remove CC0 2021-05-04 13:53:50 +00:00
reg-stack.c CALL_INSN may not be a real function call. 2021-06-07 10:25:03 +08:00
regcprop.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
regcprop.h
reginfo.c Remove CC0 2021-05-04 13:53:50 +00:00
regrename.c Remove CC0 2021-05-04 13:53:50 +00:00
regrename.h
regs.h
regset.h
regstat.c
reload1.c Remove CC0 2021-05-04 13:53:50 +00:00
reload.c Change the type of memory classification functions to bool 2021-07-12 16:35:14 +02:00
reload.h
reorg.c reorg.c (fill_slots_from_thread): Reinstate code typoed out in "Remove CC0". 2021-05-15 20:34:01 +02:00
resource.c Remove CC0 2021-05-04 13:53:50 +00:00
resource.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-ssa.h
rtl-tests.c
rtl.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
rtl.def Remove CC0 2021-05-04 13:53:50 +00:00
rtl.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
rtlanal.c gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
rtlanal.h gcc: Add vec_select -> subreg RTL simplification 2021-07-13 21:02:58 +01:00
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 Add no_sanitize_coverage attribute. 2021-05-25 14:56:28 +02:00
sanitizer.def
sanopt.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
sbitmap.c
sbitmap.h Remove __cplusplus >= 201103 2021-05-10 09:16:17 +02:00
sched-deps.c Remove CC0 2021-05-04 13:53:50 +00:00
sched-ebb.c
sched-int.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
sched-rgn.c Remove CC0 2021-05-04 13:53:50 +00:00
sel-sched-dump.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
sel-sched-dump.h
sel-sched-ir.c
sel-sched-ir.h vec: use auto_vec in a few more places 2021-07-14 15:01:27 -04:00
sel-sched.c
sel-sched.h
selftest-diagnostic.c
selftest-diagnostic.h
selftest-rtl.c
selftest-rtl.h
selftest-run-tests.c
selftest.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
selftest.h Implement generic expression evaluator for range_query. 2021-06-03 17:47:27 +02:00
sese.c
sese.h
shortest-paths.h
shrink-wrap.c CALL_INSN may not be a real function call. 2021-06-07 10:25:03 +08:00
shrink-wrap.h
signop.h
simplify-rtx.c simplify-rtx: Push sign/zero-extension inside vec_duplicate 2021-07-27 10:42:33 +01:00
sort.cc Expose stable sort algorithm to gcc_sort_r and add vec::stablesort 2021-06-11 09:29:35 +02:00
sparseset.c
sparseset.h
spellcheck-tree.c
spellcheck-tree.h
spellcheck.c
spellcheck.h
splay-tree-utils.cc
splay-tree-utils.h
splay-tree-utils.tcc
sreal.c
sreal.h
ssa-iterators.h
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c
stmt.h
stor-layout.c stor-layout: Avoid DECL_BIT_FIELD_REPRESENTATIVE with NULL TREE_TYPE [PR101172] 2021-06-24 12:22:14 +02:00
stor-layout.h
store-motion.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
streamer-hooks.c
streamer-hooks.h
stringpool.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
stringpool.h
substring-locations.c
substring-locations.h
symbol-summary.h
symtab-clones.cc
symtab-clones.h ipa-sra: Restructure how cloning and call redirection communicate (PR 93385) 2021-06-28 18:24:34 +02:00
symtab-thunks.cc
symtab-thunks.h
symtab.c Fix libiberty link failures in LTO mode for MinGW 2021-05-04 12:53:21 +02:00
sync-builtins.def
system.h Expose stable sort algorithm to gcc_sort_r and add vec::stablesort 2021-06-11 09:29:35 +02:00
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def
target.def pass location to md_asm_adjust 2021-07-15 01:10:47 -04:00
target.h
targhooks.c Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
targhooks.h Add a target calls hook: TARGET_PUSH_ARGUMENT 2021-06-17 06:33:14 -07:00
timevar.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
timevar.def refactor SSA rewriting timevars 2021-05-06 14:52:02 +02:00
timevar.h
toplev.c debug: Allow means for targets to opt out of CTF/BTF support 2021-07-19 10:34:39 -07:00
toplev.h Remove legacy external declarations in toplev.h [PR101447] 2021-07-26 10:40:18 -04:00
tracer.c
tracer.h
trans-mem.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
trans-mem.h
tree-affine.c Replace uses of determine_value_range with range_of_expr. 2021-06-03 17:47:54 +02:00
tree-affine.h
tree-call-cdce.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-cfg.c Change the type of return value of profile_count::value to uint64_t 2021-07-15 17:27:17 +02:00
tree-cfg.h Move gimplify_buildN API local to only remaining user 2021-04-26 11:04:00 +02:00
tree-cfgcleanup.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
tree-cfgcleanup.h
tree-chrec.c
tree-chrec.h
tree-complex.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
tree-core.h OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
tree-data-ref.c predcom: Refactor more using auto_vec 2021-07-21 00:22:56 -05:00
tree-data-ref.h predcom: Refactor more using auto_vec 2021-07-21 00:22:56 -05:00
tree-dfa.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
tree-dfa.h
tree-diagnostic-path.cc
tree-diagnostic.c use diagnostic location in diagnostic_report_current_function 2021-07-15 01:10:34 -04:00
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c Get rid of some gimple_expr_type uses 2021-07-16 12:52:17 +02:00
tree-eh.h
tree-emutls.c ipa/100373 - fix emutls lowering compare-debug issue 2021-05-06 10:08:16 +02:00
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-if-conv.h
tree-inline.c Get rid of some gimple_expr_type uses 2021-07-16 12:52:17 +02:00
tree-inline.h Reuse non-gimple_reg variable for inlining 2021-05-04 12:54:13 +02:00
tree-into-ssa.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
tree-into-ssa.h
tree-iterator.c
tree-iterator.h tree-iterator: C++11 range-for and tree_stmt_iterator 2021-05-28 09:33:11 -04:00
tree-loop-distribution.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-nested.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
tree-nested.h
tree-nrv.c
tree-object-size.c passes: Fix up subobject __bos [PR101419] 2021-07-13 11:04:22 +02:00
tree-object-size.h
tree-outof-ssa.c Get rid of some gimple_expr_type uses 2021-07-16 12:52:17 +02:00
tree-outof-ssa.h
tree-parloops.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-parloops.h
tree-pass.h passes: Fix up subobject __bos [PR101419] 2021-07-13 11:04:22 +02:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c predcom: Refactor more using auto_vec 2021-07-21 00:22:56 -05:00
tree-pretty-print.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
tree-pretty-print.h Remove support for %G and %K. 2021-07-06 14:14:25 -06:00
tree-profile.c
tree-scalar-evolution.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
tree-scalar-evolution.h
tree-sra.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
tree-sra.h
tree-ssa-address.c
tree-ssa-address.h
tree-ssa-alias-compare.h
tree-ssa-alias.c Fix typos in a comment. 2021-07-21 14:35:56 -06:00
tree-ssa-alias.h
tree-ssa-ccp.c Improve warning suppression for inlined functions. 2021-07-06 13:43:11 -06:00
tree-ssa-ccp.h
tree-ssa-coalesce.c
tree-ssa-coalesce.h
tree-ssa-copy.c
tree-ssa-dce.c return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
tree-ssa-dce.h
tree-ssa-dom.c Abstract out (forward) jump threader state handling. 2021-07-27 17:58:14 +02:00
tree-ssa-dom.h
tree-ssa-dse.c tree-optimization/101278 - handle self-use in DSE analysis 2021-07-01 12:31:21 +02:00
tree-ssa-dse.h
tree-ssa-forwprop.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
tree-ssa-ifcombine.c Add no_sanitize_coverage attribute. 2021-05-25 14:56:28 +02:00
tree-ssa-live.c
tree-ssa-live.h
tree-ssa-loop-ch.c middle-end: add support for per-location warning groups. 2021-06-24 19:30:47 -06:00
tree-ssa-loop-im.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-loop-ivcanon.c return auto_vec from get_loop_hot_path 2021-06-17 04:43:27 -04:00
tree-ssa-loop-ivopts.c Avoid more temporaries in IVOPTs 2021-04-23 10:28:10 +02:00
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c unroll: Avoid unnecessary tail loops for constant niters 2021-07-21 07:50:20 +01:00
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c
tree-ssa-loop-split.c Avoid update_ssa quadraticness in loop splitting 2021-05-06 13:54:02 +02:00
tree-ssa-loop-unswitch.c
tree-ssa-loop.c
tree-ssa-loop.h
tree-ssa-math-opts.c
tree-ssa-math-opts.h
tree-ssa-operands.c Avoid marking TARGET_MEM_REF bases addressable 2021-05-19 14:53:50 +02:00
tree-ssa-operands.h
tree-ssa-phiopt.c [PHIOPT/MATCH] Remove the statement to move if not used 2021-07-12 09:29:23 -07:00
tree-ssa-phiprop.c return auto_vec from more dominance functions 2021-06-17 04:43:28 -04:00
tree-ssa-pre.c Remove last gimple_expr_type uses 2021-07-19 09:15:18 +02:00
tree-ssa-propagate.c use range based for loops to iterate over vec<> 2021-06-13 12:08:01 -04:00
tree-ssa-propagate.h Simplify {gimplify_and_,}update_call_from_tree API 2021-04-26 10:08:46 +02:00
tree-ssa-reassoc.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-reassoc.h
tree-ssa-sccvn.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-sccvn.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-scopedtables.c
tree-ssa-scopedtables.h
tree-ssa-sink.c tree-optimization/101151 - fix irreducible region check for sinking 2021-06-22 12:09:59 +02:00
tree-ssa-strlen.c Detect buffer overflow by aggregate and vector stores [PR97027]. 2021-07-15 13:15:31 -06:00
tree-ssa-strlen.h
tree-ssa-structalias.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-ssa-tail-merge.c
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadbackward.c Refactor backward threader registry and profitability code into classes. 2021-04-30 18:17:18 +02:00
tree-ssa-threadedge.c Abstract out (forward) jump threader state handling. 2021-07-27 17:58:14 +02:00
tree-ssa-threadedge.h Abstract out (forward) jump threader state handling. 2021-07-27 17:58:14 +02:00
tree-ssa-threadupdate.c Assert we have irreducible regions marked in the threader 2021-06-15 10:29:27 +02:00
tree-ssa-threadupdate.h Jump threader refactor. 2021-04-30 18:17:17 +02:00
tree-ssa-uncprop.c
tree-ssa-uninit.c Let -Wuninitialized assume built-ins don't change const arguments [PR101584]. 2021-07-27 16:02:54 -06:00
tree-ssa.c Avoid marking TARGET_MEM_REF bases addressable 2021-05-19 14:53:50 +02:00
tree-ssa.h
tree-ssanames.c Move global range code to value-query.cc. 2021-05-27 10:37:49 +02:00
tree-ssanames.h Move global range code to value-query.cc. 2021-05-27 10:37:49 +02:00
tree-stdarg.c tree-optimization/99912 - schedule another TODO_remove_unused_locals 2021-04-27 15:17:34 +02:00
tree-stdarg.h
tree-streamer-in.c LTO: stream properly FUNCTION_DECL_DECL_TYPE. 2021-05-31 11:25:37 +02:00
tree-streamer-out.c LTO: stream properly FUNCTION_DECL_DECL_TYPE. 2021-05-31 11:25:37 +02:00
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c Convert remaining passes to get_range_query. 2021-05-26 21:31:27 +02:00
tree-switch-conversion.h
tree-tailcall.c Fix PR 10153: tail recusion for vector types. 2021-07-22 09:14:42 -07:00
tree-vect-data-refs.c Remove more gimple_expr_type uses 2021-07-16 14:29:06 +02:00
tree-vect-generic.c Remove last gimple_expr_type uses 2021-07-19 09:15:18 +02:00
tree-vect-loop-manip.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-vect-loop.c tree-optimization/101462 - fix signedness of reused reduction vector 2021-07-16 09:41:23 +02:00
tree-vect-patterns.c vect: Fix wrong check in vect_recog_mulhs_pattern [PR101596] 2021-07-27 22:04:22 -05:00
tree-vect-slp-patterns.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-vect-slp.c Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-vect-stmts.c tree-optimization/39821 - fix cost classification for widening arith 2021-07-27 10:41:43 +02:00
tree-vector-builder.c
tree-vector-builder.h
tree-vectorizer.c vect: Reuse reduction accumulators between loops 2021-07-13 10:17:43 +01:00
tree-vectorizer.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
tree-vrp.c Abstract out (forward) jump threader state handling. 2021-07-27 17:58:14 +02:00
tree-vrp.h Replace uses of determine_value_range with range_of_expr. 2021-06-03 17:47:54 +02:00
tree.c OpenACC 'nohost' clause 2021-07-21 23:58:11 +02:00
tree.def
tree.h Adjust by-value function vec arguments to by-reference. 2021-07-20 11:16:08 -06:00
treestruct.def
tristate.cc
tristate.h
tsan.c Simplify {gimplify_and_,}update_call_from_tree API 2021-04-26 10:08:46 +02:00
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c
typed-splay-tree.h
ubsan.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
ubsan.h
unique-ptr-tests.cc
valtrack.c Remove CC0 2021-05-04 13:53:50 +00:00
valtrack.h
value-prof.c
value-prof.h
value-query.cc Allow PHIs to pick up global values. 2021-06-29 14:57:01 -04:00
value-query.h Initial value-relation code. 2021-06-22 08:11:44 -04:00
value-range-equiv.cc
value-range-equiv.h
value-range.cc Fix selftest for targets where short and int are the same size. 2021-05-25 18:34:22 +02:00
value-range.h Fix spacing and typos in comments. 2021-06-17 10:12:38 -04:00
value-relation.cc Allow non-symmetrical equivalences. 2021-07-22 08:51:59 -04:00
value-relation.h Initial value-relation code. 2021-06-22 08:11:44 -04:00
var-tracking.c Remove CC0 2021-05-04 13:53:50 +00:00
varasm.c Come up with startswith function. 2021-05-10 09:33:29 +02:00
varasm.h
varpool.c
vec-perm-indices.c forwprop: Enhance vec perm fed by CTOR and CTOR/CST [PR99398] 2021-05-28 01:11:45 -05:00
vec-perm-indices.h forwprop: Enhance vec perm fed by CTOR and CTOR/CST [PR99398] 2021-05-28 01:11:45 -05:00
vec.c
vec.h auto_vec copy/move improvements 2021-06-17 04:43:26 -04:00
vector-builder.h
vmsdbg.h
vmsdbgout.c Add line debug info for virtual thunks 2021-05-06 16:37:58 +02:00
vr-values.c Only call vrp_visit_cond_stmt if range_of_stmt doesn't resolve to a const. 2021-07-22 08:51:59 -04:00
vr-values.h Add stmt context in simplify_using_ranges. 2021-06-29 14:57:01 -04:00
vtable-verify.c
vtable-verify.h
warning-control.cc Add support for per-location warning groups. 2021-06-24 19:23:42 -06:00
web.c
wide-int-bitmask.h
wide-int-print.cc
wide-int-print.h
wide-int.cc
wide-int.h
xcoff.h
xcoffout.c
xcoffout.h

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