8sa1-gcc/gcc
Michael Meissner 2d71e7b8d4 rs6000.md (floor<mode>2): Add support for IEEE 128-bit round to integer instructions.
[gcc]
2018-01-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE
	128-bit round to integer instructions.
	(ceil<mode>2): Likewise.
	(btrunc<mode>2): Likewise.
	(round<mode>2): Likewise.

[gcc/testsuite]
2018-01-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-hw2.c: Add tests for ceilf128,
	floorf128, truncf128, and roundf128.
	* gcc.target/powerpc/float128-hw5.c: New tests for _Float128
	optimizations added in match.pd.
	* gcc.target/powerpc/float128-hw6.c: Likewise.
	* gcc.target/powerpc/float128-hw7.c: Likewise.
	* gcc.target/powerpc/float128-hw8.c: Likewise.
	* gcc.target/powerpc/float128-hw9.c: Likewise.
	* gcc.target/powerpc/float128-hw10.c: Likewise.
	* gcc.target/powerpc/float128-hw11.c: Likewise.

From-SVN: r256118
2018-01-03 02:38:09 +00:00
..
ada Add missing PR number 2017-12-21 22:08:30 +00:00
brig tree-core.h (struct attribute_spec): Swap affects_type_identity and handler fields. 2017-12-15 16:13:12 +01:00
c re PR c/83595 (ICE: in linemap_macro_map_lookup, at libcpp/line-map.c:1008 on invalid code) 2018-01-01 00:52:41 +01:00
c-family re PR debug/83550 (Bad location of DW_TAG_structure_type with forward declaration since r224161) 2017-12-22 19:04:18 +01:00
common re PR target/83488 (ICE on a CET test-case) 2017-12-25 12:59:17 +01:00
config rs6000.md (floor<mode>2): Add support for IEEE 128-bit round to integer instructions. 2018-01-03 02:38:09 +00:00
cp re PR c++/83556 (ICE in gimplify_expr, at gimplify.c:12004) 2018-01-02 19:04:19 +01:00
doc New CONST_VECTOR layout 2018-01-02 18:27:50 +00:00
fortran re PR fortran/45689 ([F03] Missing transformational intrinsic in the trans_func_f2003 list) 2018-01-02 18:14:04 +00:00
ginclude
go compiler: do not propagate address-taken of a slice element to the slice 2017-12-22 16:43:28 +00:00
jit read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
lto tree-core.h (struct attribute_spec): Swap affects_type_identity and handler fields. 2017-12-15 16:13:12 +01:00
objc spellcheck-tree.c (test_find_closest_identifier): Use ; instead of ;;. 2017-11-30 23:47:51 +01:00
objcp
po * es.po: Update. 2018-01-01 00:17:27 +00:00
testsuite rs6000.md (floor<mode>2): Add support for IEEE 128-bit round to integer instructions. 2018-01-03 02:38:09 +00:00
ABOUT-GCC-NLS
acinclude.m4
aclocal.m4
addresses.h poly_int: MACRO_MODE 2017-12-16 14:13:03 +00:00
alias.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
alias.h
alloc-pool.c
alloc-pool.h
asan.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
asan.h re PR sanitizer/81697 (Incorrect ASan global variables alignment on arm) 2017-11-30 23:38:16 +02:00
attribs.c tree-core.h (struct attribute_spec): Swap affects_type_identity and handler fields. 2017-12-15 16:13:12 +01:00
attribs.h PR c/81544 - attribute noreturn and warn_unused_result on the same function accepted 2017-12-07 09:32:03 -07:00
auto-inc-dec.c
auto-profile.c Fix stack overflow with autofdo (PR83355) 2017-12-11 16:13:53 +00:00
auto-profile.h
backend.h
BASE-VER
basic-block.h
bb-reorder.c re PR rtl-optimization/80747 (gcc.dg/tree-ssa/tailrecursion-4.c fails with ICE when compiled with options "-fprofile-use -freorder-blocks-and-partition") 2017-12-21 20:28:10 +01:00
bb-reorder.h
bitmap.c
bitmap.h
brig-builtins.def
bt-load.c
builtin-attrs.def
builtin-types.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
builtins.c builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00:00
builtins.def builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00:00
builtins.h PR tree-optimization/78918 - missing -Wrestrict on memcpy copying over self 2017-12-16 16:58:34 -07:00
caller-save.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
calls.c poly_int: argument sizes 2017-12-21 07:01:00 +00:00
calls.h Don't call targetm.calls.static_chain in non-static function 2017-12-20 00:46:38 +00:00
ccmp.c
ccmp.h
cfg-flags.def
cfg.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
cfg.h cfg.c (scale_bbs_frequencies_int, [...]): Remove. 2017-11-16 11:08:12 +00:00
cfganal.c
cfganal.h
cfgbuild.c [SFN] stabilize find_bb_boundaries 2017-12-12 02:15:44 +00:00
cfgbuild.h
cfgcleanup.c poly_int: REG_ARGS_SIZE 2017-12-21 07:00:46 +00:00
cfgcleanup.h
cfgexpand.c poly_int: cfgexpand stack variables 2017-12-21 07:01:10 +00:00
cfgexpand.h
cfghooks.c vec.h (debug_helper): New function. 2017-11-20 08:32:57 +00:00
cfghooks.h
cfgloop.c Add unroll and jam pass 2017-12-07 14:49:54 +00:00
cfgloop.h Add unroll and jam pass 2017-12-07 14:49:54 +00:00
cfgloopanal.c cfgloopanal.c: Include sreal.h 2017-11-16 10:36:04 +00:00
cfgloopmanip.c Add unroll and jam pass 2017-12-07 14:49:54 +00:00
cfgloopmanip.h Add unroll and jam pass 2017-12-07 14:49:54 +00:00
cfgrtl.c re PR rtl-optimization/80747 (gcc.dg/tree-ssa/tailrecursion-4.c fails with ICE when compiled with options "-fprofile-use -freorder-blocks-and-partition") 2017-12-21 20:28:10 +01:00
cfgrtl.h
cgraph.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
cgraph.h function.h (struct function): Remove cilk_frame_decl, is_cilk_function and calls_cilk_spawn fields. 2017-12-01 09:20:41 +01:00
cgraphbuild.c
cgraphclones.c cgraphclones.c (cgraph_node::create_clone): Fix updating of profile when inlining. 2017-11-23 15:52:50 +00:00
cgraphunit.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
ChangeLog rs6000.md (floor<mode>2): Add support for IEEE 128-bit round to integer instructions. 2018-01-03 02:38:09 +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.dataflow
ChangeLog.gimple-classes
ChangeLog.graphite
ChangeLog.jit
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
chkp-builtins.def
cif-code.def Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
collect2-aix.c
collect2-aix.h
collect2.c
collect2.h
collect-utils.c
collect-utils.h
color-macros.h
combine-stack-adj.c
combine.c [Patch combine] Don't create ZERO_EXTEND from subregs unless we have a scalar int mode 2017-12-21 16:32:25 +00:00
common.md
common.opt [SFN] Introduce -gstatement-frontiers option, enable debug markers 2017-12-12 02:16:31 +00:00
compare-elim.c
conditions.h
config.build
config.gcc Enable AVX512BITALG 2017-12-22 12:37:16 +00:00
config.host
config.in
configure Plugin support on Windows/MinGW 2017-11-26 13:00:48 +00:00
configure.ac
context.c
context.h
convert.c builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00:00
convert.h
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
coretypes.h poly_int: add poly-int.h 2017-12-14 00:06:02 +00:00
coverage.c
coverage.h
cppbuiltin.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c
cse.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
cselib.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
cselib.h
cstamp-h.in
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
DATESTAMP Daily bump. 2018-01-03 00:16:18 +00:00
dbgcnt.c
dbgcnt.def
dbgcnt.h
dbxout.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
dbxout.h
dce.c poly_int: MEM_OFFSET and MEM_SIZE 2017-12-20 12:53:23 +00:00
dce.h
ddg.c
ddg.h
debug.c [IEPM] Introduce debug hook for inline entry point markers 2017-12-12 02:16:47 +00:00
debug.h [IEPM] Introduce debug hook for inline entry point markers 2017-12-12 02:16:47 +00:00
defaults.h
DEV-PHASE
df-core.c
df-problems.c
df-scan.c [SFN] debug markers before labels no more 2017-12-20 14:48:34 +00:00
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic-show-locus.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
diagnostic.c
diagnostic.def
diagnostic.h
dojump.c poly_int: argument sizes 2017-12-21 07:01:00 +00:00
dojump.h poly_int: argument sizes 2017-12-21 07:01:00 +00:00
dominance.c
dominance.h
domwalk.c
domwalk.h vrp_prop: Use dom_walker for -Warray-bounds (PR tree-optimization/83312) 2017-12-14 17:15:39 +00:00
double-int.c
double-int.h
dse.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
dumpfile.c poly_int: dump routines 2017-12-20 12:51:57 +00:00
dumpfile.h poly_int: dump routines 2017-12-20 12:51:57 +00:00
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c poly_int: REG_ARGS_SIZE 2017-12-21 07:00:46 +00:00
dwarf2out.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
dwarf2out.h poly_int: DWARF CFA offsets 2017-12-20 12:54:44 +00:00
edit-context.c
edit-context.h
emit-rtl.c Make CONST_VECTOR_ELT handle implicitly-encoded elements 2018-01-02 18:28:14 +00:00
emit-rtl.h re PR rtl-optimization/82973 (ICE in output_constant_pool_2, at varasm.c:3896 on aarch64) 2017-12-21 10:11:29 +01:00
errors.c
errors.h
et-forest.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
et-forest.h
except.c
except.h
exec-tool.in
explow.c poly_int: argument sizes 2017-12-21 07:01:00 +00:00
explow.h poly_int: frame allocations 2017-12-21 06:58:16 +00:00
expmed.c re PR middle-end/83623 (ICE: in convert_move, at expr.c:248 with -march=knl and 16bit vector bswap/rotate) 2018-01-01 00:50:32 +01:00
expmed.h poly_int: C++ bitfield regions 2017-12-20 12:54:01 +00:00
expr.c Fix REG_ARGS_SIZE handling when pushing TLS addresses 2018-01-02 19:14:43 +00:00
expr.h poly_int: emit_group_load/store 2017-12-21 07:01:30 +00:00
fibonacci_heap.c
fibonacci_heap.h
file-find.c
file-find.h
final.c poly_int: frame allocations 2017-12-21 06:58:16 +00:00
fixed-value.c
fixed-value.h
flag-types.h invoke.texi: Document the options. 2017-12-05 10:23:25 +01:00
flags.h
fold-const-call.c builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00:00
fold-const-call.h
fold-const.c Rework VEC_PERM_EXPR folding 2018-01-02 18:27:15 +00:00
fold-const.h poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
fp-test.c
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
function-tests.c
function.c poly_int: argument sizes 2017-12-21 07:01:00 +00:00
function.h poly_int: argument sizes 2017-12-21 07:01:00 +00:00
fwprop.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
gcc-ar.c
gcc-main.c
gcc-plugin.h
gcc-rich-location.c
gcc-rich-location.h
gcc-symtab.h
gcc.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
gcc.h
gcov-counter.def
gcov-dump.c Fix gcov-dump tool for GCDA files (PR gcov-profile/83509). 2017-12-21 14:22:08 +00:00
gcov-io.c
gcov-io.h
gcov-iov.c
gcov-tool.c
gcov.c
gcse-common.c
gcse-common.h
gcse.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
gcse.h
gdbasan.in
gdbhooks.py
gdbinit.in print-tree.h (debug_vec_tree): Remove prototype. 2017-11-21 10:06:52 +00:00
gen-pass-instances.awk
genattr-common.c
genattr.c
genattrtab.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
genautomata.c poly_int: IN_TARGET_CODE 2017-12-16 14:10:55 +00:00
gencfn-macros.c builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00:00
gencheck.c
genchecksum.c
gencodes.c
genconditions.c poly_int: IN_TARGET_CODE 2017-12-16 14:10:55 +00:00
genconfig.c
genconstants.c
genemit.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
genenums.c
generic-match-head.c
generic-match.h
genextract.c poly_int: IN_TARGET_CODE 2017-12-16 14:10:55 +00:00
genflags.c
gengenrtl.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
gengtype-lex.l
gengtype-parse.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
gengtype-state.c spellcheck-tree.c (test_find_closest_identifier): Use ; instead of ;;. 2017-11-30 23:47:51 +01:00
gengtype.c poly_int: DWARF CFA offsets 2017-12-20 12:54:44 +00:00
gengtype.h
genhooks.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
genmatch.c
genmddeps.c
genmddump.c
genmodes.c poly_int: add poly-int.h 2017-12-14 00:06:02 +00:00
genmultilib
genopinit.c poly_int: IN_TARGET_CODE 2017-12-16 14:10:55 +00:00
genoutput.c poly_int: IN_TARGET_CODE 2017-12-16 14:10:55 +00:00
genpeep.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
genpreds.c poly_int: IN_TARGET_CODE 2017-12-16 14:10:55 +00:00
genrecog.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
gensupport.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
gensupport.h
gentarget-def.c
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c re PR target/66488 (segfault on sizeof(long) < sizeof(void*) and large GCC memory usage) 2017-12-15 11:30:56 +00:00
ggc-tests.c
ggc.h
gimple-builder.c
gimple-builder.h
gimple-expr.c
gimple-expr.h poly_int: tree constants 2017-12-20 12:51:50 +00:00
gimple-fold.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
gimple-fold.h poly_int: fold_ctor_reference 2017-12-20 12:52:37 +00:00
gimple-iterator.c [SFN] debug markers before labels no more 2017-12-20 14:48:34 +00:00
gimple-iterator.h [SFN] debug markers before labels no more 2017-12-20 14:48:34 +00:00
gimple-laddress.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
gimple-loop-interchange.cc gimple-loop-interchange.cc (STMT_COST_RATIO): New macro. 2017-12-15 12:22:24 +00:00
gimple-loop-jam.c re PR tree-optimization/83323 (186.crafty miscompares) 2017-12-08 17:41:58 +00:00
gimple-low.c [SFN] introduce statement frontier notes, still disabled 2017-12-12 02:16:07 +00:00
gimple-low.h
gimple-match-head.c
gimple-match.h
gimple-predict.h
gimple-pretty-print.c Add VEC_SERIES_EXPR and associated optab 2017-12-16 14:04:46 +00:00
gimple-pretty-print.h
gimple-ssa-backprop.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
gimple-ssa-evrp-analyze.c re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu) 2017-12-12 15:46:46 -07:00
gimple-ssa-evrp-analyze.h re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu) 2017-12-12 15:46:46 -07:00
gimple-ssa-evrp.c re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu) 2017-12-12 15:46:46 -07:00
gimple-ssa-isolate-paths.c
gimple-ssa-nonnull-compare.c
gimple-ssa-split-paths.c
gimple-ssa-sprintf.c re PR c/83448 (ice in get_source_location_for_substring, at input.c:1507) 2017-12-22 00:09:14 +01:00
gimple-ssa-store-merging.c poly_int: find_bswap_or_nop_load 2017-12-21 07:02:06 +00:00
gimple-ssa-strength-reduction.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
gimple-ssa-warn-alloca.c
gimple-ssa-warn-restrict.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
gimple-ssa-warn-restrict.h PR tree-optimization/78918 - missing -Wrestrict on memcpy copying over self 2017-12-16 16:58:34 -07:00
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple-walk.c
gimple-walk.h
gimple.c [SFN] introduce statement frontier notes, still disabled 2017-12-12 02:16:07 +00:00
gimple.def
gimple.h [SFN] introduce statement frontier notes, still disabled 2017-12-12 02:16:07 +00:00
gimplify-me.c
gimplify-me.h
gimplify.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
gimplify.h
glimits.h
godump.c
graph.c
graph.h
graphds.c
graphds.h
graphite-dependences.c
graphite-isl-ast-to-gimple.c Fix sharing in translate_isl_ast_node_for 2017-12-19 21:49:20 +00:00
graphite-optimize-isl.c
graphite-poly.c
graphite-scop-detection.c re PR tree-optimization/83385 ([graphite] Wrong code w/ -O1 -floop-nest-optimize) 2017-12-12 12:15:38 +00:00
graphite-sese-to-poly.c
graphite.c
graphite.h
gsstruct.def
gstab.h
gsyms.h
gsyslimits.h
gtm-builtins.def
haifa-sched.c [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:30 +00:00
hard-reg-set.h
hash-map-tests.c
hash-map-traits.h
hash-map.h Fix UB in hash-map.h 2017-11-27 12:53:16 +00:00
hash-set-tests.c
hash-set.h hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper. 2017-11-27 17:29:06 +00:00
hash-table.c
hash-table.h
hash-traits.h
highlev-plugin-common.h
hooks.c poly_int: TRULY_NOOP_TRUNCATION 2017-12-20 12:52:12 +00:00
hooks.h poly_int: TRULY_NOOP_TRUNCATION 2017-12-20 12:52:12 +00:00
host-default.c
hosthooks-def.h
hosthooks.h
hsa-brig-format.h
hsa-brig.c
hsa-builtins.def
hsa-common.c
hsa-common.h
hsa-dump.c
hsa-gen.c poly_int: bit_field_size/offset 2017-12-21 07:01:38 +00:00
hsa-regalloc.c
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h re PR target/66488 (segfault on sizeof(long) < sizeof(void*) and large GCC memory usage) 2017-12-15 11:30:56 +00:00
ifcvt.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
ifcvt.h
inchash.c
inchash.h poly_int: ao_ref and vn_reference_op_t 2017-12-20 12:52:58 +00:00
incpath.c
incpath.h
init-regs.c
input.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
input.h
insn-addr.h
insn-notes.def [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
int-vector-builder.h Make vec_perm_indices use new vector encoding 2018-01-02 18:26:47 +00:00
internal-fn.c re PR sanitizer/83388 (reference statement index not found error with -fsanitize=null) 2017-12-15 13:43:30 +00:00
internal-fn.def builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00:00
internal-fn.h
intl.c
intl.h
ipa-chkp.c
ipa-chkp.h
ipa-comdats.c
ipa-cp.c ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping. 2017-12-02 09:48:24 +00:00
ipa-devirt.c
ipa-fnsummary.c re PR ipa/83506 (ICE: Segmentation fault in force_nonfallthru_and_redirect) 2017-12-20 20:41:38 +01:00
ipa-fnsummary.h Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
ipa-hsa.c
ipa-icf-gimple.c [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:30 +00:00
ipa-icf-gimple.h
ipa-icf.c Make more use of VECTOR_CST_ENCODED_ELT 2017-12-07 18:42:41 +00:00
ipa-icf.h
ipa-inline-analysis.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
ipa-inline-transform.c cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. 2017-11-18 22:55:56 +00:00
ipa-inline.c ipa-inline.c (big_speedup_p): Fix expression. 2018-01-02 12:35:53 +00:00
ipa-inline.h
ipa-param-manipulation.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
ipa-param-manipulation.h poly_int: ipa_parm_adjustment 2017-12-20 12:54:55 +00:00
ipa-polymorphic-call.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
ipa-predicate.c
ipa-predicate.h
ipa-profile.c ipa-profile.c (ipa_propagate_frequency_1): Use count instead of frequency. 2017-11-23 15:59:07 +00:00
ipa-prop.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
ipa-prop.h poly_int: build_ref_for_offset 2017-12-21 07:02:20 +00:00
ipa-pure-const.c re PR ipa/83506 (ICE: Segmentation fault in force_nonfallthru_and_redirect) 2017-12-20 20:41:38 +01:00
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
ipa-utils.c
ipa-utils.h
ipa-visibility.c
ipa.c
ira-build.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
ira-color.c poly_int: reload<->ira interface 2017-12-21 07:01:23 +00:00
ira-conflicts.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
ira-costs.c
ira-emit.c
ira-int.h poly_int: reload<->ira interface 2017-12-21 07:01:23 +00:00
ira-lives.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
ira.c poly_int: frame allocations 2017-12-21 06:58:16 +00:00
ira.h poly_int: reload<->ira interface 2017-12-21 07:01:23 +00:00
is-a.h
jump.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
langhooks-def.h [SFN] introduce statement frontier notes, still disabled 2017-12-12 02:16:07 +00:00
langhooks.c [PATCH] New lang hook 2017-11-16 14:54:54 +00:00
langhooks.h [SFN] introduce statement frontier notes, still disabled 2017-12-12 02:16:07 +00:00
LANGUAGES
lcm.c
lcm.h
libfuncs.h
limitx.h
limity.h
lists.c
lock-and-run.sh
loop-doloop.c
loop-init.c generic.texi (ANNOTATE_EXPR): Document 3rd operand. 2017-11-23 16:36:28 +00:00
loop-invariant.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
loop-iv.c
loop-unroll.c Fix off by one error in loop-unroll.c (PR rtl-optimization/82675). 2017-12-19 13:20:07 +00:00
loop-unroll.h
lower-subreg.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
lower-subreg.h
lra-assigns.c poly_int: lra frame offsets 2017-12-20 12:53:35 +00:00
lra-coalesce.c
lra-constraints.c poly_int: emit_inc 2017-12-21 07:01:17 +00:00
lra-eliminations.c poly_int: lra frame offsets 2017-12-20 12:53:35 +00:00
lra-int.h poly_int: lra frame offsets 2017-12-20 12:53:35 +00:00
lra-lives.c re PR target/83252 (Wrong code with "-march=skylake-avx512 -O3") 2017-12-07 17:50:54 +00:00
lra-remat.c poly_int: lra frame offsets 2017-12-20 12:53:35 +00:00
lra-spills.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
lra.c poly_int: frame allocations 2017-12-21 06:58:16 +00:00
lra.h
lto-cgraph.c [PR 82027] Also stream opt_info of former_clones 2017-12-22 18:03:16 +01:00
lto-compress.c
lto-compress.h
lto-opts.c
lto-section-in.c
lto-section-names.h
lto-section-out.c
lto-streamer-in.c Revert hunk with debug code that was comitted by mistake 2017-12-17 20:41:59 +00:00
lto-streamer-out.c Prune removed funcs from offload table 2017-12-30 17:02:00 +00:00
lto-streamer.c
lto-streamer.h
lto-wrapper.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
machmode.def
machmode.h poly_int: C++ bitfield regions 2017-12-20 12:54:01 +00:00
main.c
Makefile.in New CONST_VECTOR layout 2018-01-02 18:27:50 +00:00
match.pd builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add _Float<N> and _Float<N>X variants... 2017-12-28 21:19:12 +00: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 re PR rtl-optimization/82849 (ICE on valid code since r254379) 2017-12-16 09:01:26 -07:00
multiple_target.c
omp-builtins.def
omp-expand.c Prune removed funcs from offload table 2017-12-30 17:02:00 +00:00
omp-expand.h
omp-general.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
omp-general.h
omp-grid.c spellcheck-tree.c (test_find_closest_identifier): Use ; instead of ;;. 2017-11-30 23:47:51 +01:00
omp-grid.h
omp-low.c poly_int: get_addr_base_and_unit_offset 2017-12-20 12:55:37 +00:00
omp-low.h
omp-offload.c
omp-offload.h
omp-simd-clone.c function.h (struct function): Remove cilk_frame_decl, is_cilk_function and calls_cilk_spawn fields. 2017-12-01 09:20:41 +01:00
ONEWS
opt-functions.awk
opt-gather.awk
opt-include.awk
opt-read.awk
optabs-libfuncs.c
optabs-libfuncs.h
optabs-query.c Use explicit encodings for simple permutes 2018-01-02 18:27:05 +00:00
optabs-query.h Remove vec_perm_const optab 2018-01-02 18:26:27 +00:00
optabs-tree.c Add VEC_SERIES_EXPR and associated optab 2017-12-16 14:04:46 +00:00
optabs-tree.h
optabs.c Make more use of rtx_vector_builder 2018-01-02 18:28:06 +00:00
optabs.def Remove vec_perm_const optab 2018-01-02 18:26:27 +00:00
optabs.h Remove vec_perm_const optab 2018-01-02 18:26:27 +00:00
optc-gen.awk
optc-save-gen.awk
opth-gen.awk
opts-common.c
opts-diagnostic.h
opts-global.c
opts.c [PATCH] -fdump-tree, -save-temps=obj & subdirs 2017-12-19 13:27:55 +00:00
opts.h
output.h
params-enum.h
params-list.h
params-options.h
params.c
params.def [SFN] introduce statement frontier notes, still disabled 2017-12-12 02:16:07 +00:00
params.h
pass_manager.h
passes.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
passes.def re PR ipa/83506 (ICE: Segmentation fault in force_nonfallthru_and_redirect) 2017-12-20 20:41:38 +01:00
plugin.c Plugin support on Windows/MinGW 2017-11-26 13:00:48 +00:00
plugin.def
plugin.h
poly-int-types.h poly_int: store merging 2017-12-20 12:56:50 +00:00
poly-int.h Fix multiple_p for two non-poly_ints 2017-12-20 12:50:35 +00:00
postreload-gcse.c
postreload.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
predict.c re PR middle-end/81914 (gcc 7.1 generates branch for code which was branchless in earlier gcc version) 2017-12-19 17:43:04 +01:00
predict.def
predict.h
prefix.c
prefix.h
pretty-print.c poly_int: dump routines 2017-12-20 12:51:57 +00:00
pretty-print.h poly_int: dump routines 2017-12-20 12:51:57 +00:00
print-rtl-function.c
print-rtl.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
print-rtl.h
print-tree.c poly_int: tree constants 2017-12-20 12:51:50 +00:00
print-tree.h print-tree.h (debug_vec_tree): Remove prototype. 2017-11-21 10:06:52 +00:00
profile-count.c re PR tree-optimization/83609 (ICE in read_complex_part at gcc/expr.c:3202) 2017-12-08 11:27:28 +00:00
profile-count.h re PR tree-optimization/83609 (ICE in read_complex_part at gcc/expr.c:3202) 2017-12-08 11:27:28 +00:00
profile.c
profile.h
read-md.c
read-md.h
read-rtl-function.c poly_int: MEM_OFFSET and MEM_SIZE 2017-12-20 12:53:23 +00:00
read-rtl-function.h
read-rtl.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
README.Portability
real.c
real.h
realmpfr.c
realmpfr.h
recog.c poly_int: REG_ARGS_SIZE 2017-12-21 07:00:46 +00:00
recog.h invoke.texi: Document -Wcast-function-type. 2017-12-14 18:59:24 +00:00
ree.c
reg-notes.def
reg-stack.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
regcprop.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
regcprop.h
reginfo.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
regrename.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
regrename.h
regs.h
regset.h
regstat.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
reload1.c poly_int: REG_ARGS_SIZE 2017-12-21 07:00:46 +00:00
reload.c poly_int: reload.c 2017-12-21 06:58:00 +00:00
reload.h poly_int: reload.c 2017-12-21 06:58:00 +00:00
reorg.c [-fcompare-debug] retain insn locations when turning dbr seq into return 2017-12-21 18:14:21 +00:00
resource.c
resource.h
rtl-chkp.c
rtl-chkp.h
rtl-error.c
rtl-error.h
rtl-iter.h
rtl-tests.c poly_int: rtx constants 2017-12-20 12:51:36 +00:00
rtl.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
rtl.def poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
rtl.h Make CONST_VECTOR_ELT handle implicitly-encoded elements 2018-01-02 18:28:14 +00:00
rtlanal.c rtlanal.c (canonicalize_condition): Return 0 if final rtx does not have a conditional at the top. 2018-01-02 10:46:29 -06:00
rtlhash.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
rtlhash.h
rtlhooks-def.h
rtlhooks.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
rtx-vector-builder.c New CONST_VECTOR layout 2018-01-02 18:27:50 +00:00
rtx-vector-builder.h New CONST_VECTOR layout 2018-01-02 18:27:50 +00:00
run-rtl-passes.c re PR debug/82933 (valgrind error in set_cur_line_info_table with -g) 2017-11-21 08:50:15 +01:00
run-rtl-passes.h
sancov.c
sanitizer.def invoke.texi: Document the options. 2017-12-05 10:23:25 +01:00
sanopt.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
sbitmap.c
sbitmap.h
sched-deps.c
sched-ebb.c
sched-int.h
sched-rgn.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
sel-sched-dump.c spellcheck-tree.c (test_find_closest_identifier): Use ; instead of ;;. 2017-11-30 23:47:51 +01:00
sel-sched-dump.h
sel-sched-ir.c
sel-sched-ir.h
sel-sched.c sel-sched: fix zero-usefulness case in sel_rank_for_schedule (PR 83513) 2017-12-26 17:34:33 +03:00
sel-sched.h
selftest-diagnostic.c
selftest-diagnostic.h
selftest-rtl.c
selftest-rtl.h Add underscores to local vars in selftest macros 2017-12-07 18:40:06 +00:00
selftest-run-tests.c Rework VEC_PERM_EXPR folding 2018-01-02 18:27:15 +00:00
selftest.c read-rtl.c (parse_reg_note_name): Replace Yoda conditions with typical order conditions. 2017-12-19 18:11:57 +01:00
selftest.h Rework VEC_PERM_EXPR folding 2018-01-02 18:27:15 +00:00
sese.c [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:30 +00:00
sese.h re PR tree-optimization/67842 (Incorrect check in sese.h:bb_in_region) 2017-12-14 14:53:40 +00:00
shrink-wrap.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
shrink-wrap.h
signop.h
simplify-rtx.c Make CONST_VECTOR_ELT handle implicitly-encoded elements 2018-01-02 18:28:14 +00:00
sparseset.c
sparseset.h
spellcheck-tree.c Move macro-spellchecking code from "gcc" to new files in c-family 2017-12-06 19:56:11 +00:00
spellcheck-tree.h Move macro-spellchecking code from "gcc" to new files in c-family 2017-12-06 19:56:11 +00:00
spellcheck.c
spellcheck.h C++: provide macro used-before-defined hint (PR c++/72786) 2017-11-21 00:40:53 +00:00
sreal.c
sreal.h
ssa-iterators.h [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
ssa.h
stab.def
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c
stmt.h
stor-layout.c poly_int: C++ bitfield regions 2017-12-20 12:54:01 +00:00
stor-layout.h
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
stringpool.h
substring-locations.c
substring-locations.h
symbol-summary.h
symtab.c
sync-builtins.def
system.h
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target-insns.def
target.def Remove vec_perm_const optab 2018-01-02 18:26:27 +00:00
target.h Remove vec_perm_const optab 2018-01-02 18:26:27 +00:00
targhooks.c poly_int: argument sizes 2017-12-21 07:01:00 +00:00
targhooks.h poly_int: argument sizes 2017-12-21 07:01:00 +00:00
timevar.c
timevar.def re PR tree-optimization/81303 (410.bwaves regression caused by r249919) 2017-12-07 18:03:53 +00:00
timevar.h
tlink.c
toplev.c poly_int: argument sizes 2017-12-21 07:01:00 +00:00
toplev.h
tracer.c
tracer.h
trans-mem.c
trans-mem.h
tree-affine.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
tree-affine.h poly_int: get_inner_reference_aff 2017-12-20 12:56:12 +00:00
tree-call-cdce.c
tree-cfg.c Use ssizetype selectors for autovectorised VEC_PERM_EXPRs 2018-01-02 18:27:35 +00:00
tree-cfg.h re PR tree-optimization/83359 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2362) 2017-12-12 10:21:35 +01:00
tree-cfgcleanup.c [SFN] debug markers before labels no more 2017-12-20 14:48:34 +00:00
tree-cfgcleanup.h
tree-chkp-opt.c
tree-chkp.c tree-chkp.c (chkp_compute_bounds_for_assignment): Handle POINTER_DIFF_EXPR. 2017-12-02 08:58:05 +01:00
tree-chkp.h
tree-chrec.c re PR c/79153 (-Wimplicit-fallthrough missed warning) 2017-12-01 09:17:06 +01:00
tree-chrec.h
tree-complex.c
tree-core.h poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree-data-ref.c poly_int: prune_runtime_alias_test_list 2017-12-21 07:03:03 +00:00
tree-data-ref.h poly_int: prune_runtime_alias_test_list 2017-12-21 07:03:03 +00:00
tree-dfa.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-dfa.h poly_int: get_addr_base_and_unit_offset 2017-12-20 12:55:37 +00:00
tree-diagnostic.c C/C++: fix quoting of "aka" typedef information (PR 62170) 2017-11-22 20:37:58 +00:00
tree-diagnostic.h C/C++: fix quoting of "aka" typedef information (PR 62170) 2017-11-22 20:37:58 +00:00
tree-dump.c invoke.texi: Document -Wcast-function-type. 2017-12-14 18:59:24 +00:00
tree-dump.h
tree-eh.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-eh.h
tree-emutls.c tree-emutls.c (lower_emutls_data): Remove unused bb_freq. 2017-11-16 16:53:50 +00:00
tree-hash-traits.h
tree-hasher.h
tree-if-conv.c re PR tree-optimization/83089 (ICE: Segmentation fault (in instantiate_scev_name)) 2017-11-22 08:47:47 +00:00
tree-if-conv.h
tree-inline.c Add VEC_SERIES_EXPR and associated optab 2017-12-16 14:04:46 +00:00
tree-inline.h function.h (struct function): Remove cilk_frame_decl, is_cilk_function and calls_cilk_spawn fields. 2017-12-01 09:20:41 +01:00
tree-into-ssa.c
tree-into-ssa.h
tree-iterator.c re PR debug/83547 ((statement-frontiers) error: void value not ignored as it ought to be) 2017-12-22 19:01:58 +01:00
tree-iterator.h
tree-loop-distribution.c re PR tree-optimization/83581 (ICE in expand_LOOP_VECTORIZED, at internal-fn.c:2397) 2018-01-01 00:53:17 +01:00
tree-nested.c Remove Cilk Plus support. 2017-11-28 11:35:37 +01:00
tree-nested.h
tree-nrv.c
tree-object-size.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-object-size.h
tree-outof-ssa.c
tree-outof-ssa.h
tree-parloops.c re PR fortran/83017 (DO CONCURRENT not parallelizing) 2017-11-17 13:15:34 +00:00
tree-parloops.h
tree-pass.h PR tree-optimization/78918 - missing -Wrestrict on memcpy copying over self 2017-12-16 16:58:34 -07:00
tree-phinodes.c
tree-phinodes.h
tree-predcom.c poly_int: aff_tree 2017-12-20 12:55:45 +00:00
tree-pretty-print.c poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree-pretty-print.h
tree-profile.c
tree-scalar-evolution.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
tree-scalar-evolution.h
tree-sra.c poly_int: build_ref_for_offset 2017-12-21 07:02:20 +00:00
tree-ssa-address.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-ssa-address.h
tree-ssa-alias.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-ssa-alias.h poly_int: ao_ref and vn_reference_op_t 2017-12-20 12:52:58 +00:00
tree-ssa-ccp.c poly_int: get_addr_base_and_unit_offset 2017-12-20 12:55:37 +00:00
tree-ssa-ccp.h
tree-ssa-coalesce.c
tree-ssa-coalesce.h
tree-ssa-copy.c
tree-ssa-dce.c poly_int: get_ref_base_and_extent 2017-12-20 12:55:27 +00:00
tree-ssa-dce.h tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from tree-ssa-pre.c::remove_dead_inserted_code. 2017-12-05 15:42:58 +00:00
tree-ssa-dom.c tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call update_stmt_if_modified. 2017-12-20 21:41:27 -07:00
tree-ssa-dom.h
tree-ssa-dse.c poly_int: ao_ref and vn_reference_op_t 2017-12-20 12:52:58 +00:00
tree-ssa-forwprop.c Add a vec_perm_indices_to_tree helper function 2018-01-02 18:26:56 +00:00
tree-ssa-ifcombine.c
tree-ssa-live.c
tree-ssa-live.h
tree-ssa-loop-ch.c
tree-ssa-loop-im.c poly_int: get_inner_reference_aff 2017-12-20 12:56:12 +00:00
tree-ssa-loop-ivcanon.c re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance regression with r255267 (reproducer attached)) 2017-12-14 14:32:24 +00:00
tree-ssa-loop-ivopts.c poly_int: tree-ssa-loop-ivopts.c:iv_use 2017-12-21 07:02:36 +00:00
tree-ssa-loop-ivopts.h poly_int: tree-ssa-loop-ivopts.c:iv_use 2017-12-21 07:02:36 +00:00
tree-ssa-loop-manip.c * tree-ssa-loop-manip.c 2017-11-16 11:06:49 +00:00
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c poly_int: get_addr_base_and_unit_offset 2017-12-20 12:55:37 +00:00
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c
tree-ssa-loop-split.c
tree-ssa-loop-unswitch.c
tree-ssa-loop.c poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree-ssa-loop.h
tree-ssa-math-opts.c re PR tree-optimization/83523 (ICE: verify_gimple failed (error: statement marked for throw, but doesn't)) 2017-12-21 20:27:21 +01:00
tree-ssa-operands.c
tree-ssa-operands.h
tree-ssa-phionlycprop.c
tree-ssa-phiopt.c re PR tree-optimization/83521 (ICE: verify_gimple failed (error: invalid operand in unary operation)) 2017-12-21 20:26:34 +01:00
tree-ssa-phiprop.c
tree-ssa-pre.c poly_int: get_addr_base_and_unit_offset 2017-12-20 12:55:37 +00:00
tree-ssa-propagate.c
tree-ssa-propagate.h
tree-ssa-reassoc.c [SFN] boilerplate changes in preparation to introduce nonbind markers 2017-12-12 02:15:00 +00:00
tree-ssa-sccvn.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-ssa-sccvn.h poly_int: ao_ref and vn_reference_op_t 2017-12-20 12:52:58 +00:00
tree-ssa-scopedtables.c poly_int: get_ref_base_and_extent 2017-12-20 12:55:27 +00:00
tree-ssa-scopedtables.h
tree-ssa-sink.c
tree-ssa-strlen.c Assign result of get_string_lenth to a SSA_NAME (PR tree-optimization/83552). 2017-12-27 09:30:14 +00:00
tree-ssa-structalias.c poly_int: get_ref_base_and_extent 2017-12-20 12:55:27 +00:00
tree-ssa-tail-merge.c [SFN] debug markers before labels no more 2017-12-20 14:48:34 +00:00
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadbackward.c tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix typo in comment. 2017-11-21 11:39:51 +00:00
tree-ssa-threadedge.c re PR middle-end/83477 (Wrong code w/ -O1) 2017-12-19 13:13:04 -07:00
tree-ssa-threadedge.h re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu) 2017-12-12 15:46:46 -07:00
tree-ssa-threadupdate.c re PR middle-end/36550 (Wrong "may be used uninitialized" warning (conditional PHIs)) 2017-12-15 15:35:51 -07:00
tree-ssa-threadupdate.h re PR tree-optimization/81165 (Regression in GCC-8.0.0's optimizer) 2017-12-15 15:11:06 -07:00
tree-ssa-uncprop.c
tree-ssa-uninit.c poly_int: ao_ref and vn_reference_op_t 2017-12-20 12:52:58 +00:00
tree-ssa.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-ssa.h
tree-ssanames.c poly_int: adjust_ptr_info_misalignment 2017-12-21 07:01:59 +00:00
tree-ssanames.h poly_int: adjust_ptr_info_misalignment 2017-12-21 07:01:59 +00:00
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree-streamer-out.c poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree-streamer.c poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree-streamer.h
tree-switch-conversion.c
tree-tailcall.c tree-tailcall.c (eliminate_tail_call): Be more careful about not disturbin profile of entry block. 2017-11-17 17:44:41 +00:00
tree-vect-data-refs.c Use explicit encodings for simple permutes 2018-01-02 18:27:05 +00:00
tree-vect-generic.c Use vec_perm_builder::series_p in shift_amt_for_vec_perm_mask 2018-01-02 18:27:24 +00:00
tree-vect-loop-manip.c poly_int: loop versioning threshold 2017-12-21 07:02:46 +00:00
tree-vect-loop.c Use explicit encodings for simple permutes 2018-01-02 18:27:05 +00:00
tree-vect-patterns.c re PR tree-optimization/81303 (410.bwaves regression caused by r249919) 2017-12-08 08:06:31 +00:00
tree-vect-slp.c Add a vec_perm_indices_to_tree helper function 2018-01-02 18:26:56 +00:00
tree-vect-stmts.c Use ssizetype selectors for autovectorised VEC_PERM_EXPRs 2018-01-02 18:27:35 +00:00
tree-vector-builder.c Make more use of VECTOR_CST_ENCODED_ELT 2017-12-07 18:42:41 +00:00
tree-vector-builder.h Make more use of VECTOR_CST_ENCODED_ELT 2017-12-07 18:42:41 +00:00
tree-vectorizer.c re PR tree-optimization/83359 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2362) 2017-12-12 10:21:35 +01:00
tree-vectorizer.h Pass vec_perm_indices by reference 2018-01-02 18:25:57 +00:00
tree-vrp.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
tree-vrp.h re PR tree-optimization/80776 (-Wformat-overflow false positive for %d on integer bounded by __builtin_unreachable) 2017-11-28 14:58:11 +00:00
tree.c poly_int: get_binfo_at_offset 2017-12-21 07:02:28 +00:00
tree.def poly_int: tree constants 2017-12-20 12:51:50 +00:00
tree.h poly_int: get_binfo_at_offset 2017-12-21 07:02:28 +00:00
treestruct.def poly_int: tree constants 2017-12-20 12:51:50 +00:00
tsan.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
tsan.h
tsystem.h
typeclass.h
typed-splay-tree.c
typed-splay-tree.h invoke.texi: Document -Wcast-function-type. 2017-12-14 18:59:24 +00:00
ubsan.c poly_int: get_inner_reference & co. 2017-12-21 06:57:41 +00:00
ubsan.h
unique-ptr-tests.cc
valtrack.c poly_int: SUBREG_BYTE 2017-12-20 12:54:28 +00:00
valtrack.h
value-prof.c
value-prof.h
var-tracking.c [SFN] debug markers before labels no more 2017-12-20 14:48:34 +00:00
varasm.c poly_int: MEM_REF offsets 2017-12-21 07:02:13 +00:00
varasm.h
varpool.c
vec-perm-indices.c Make more use of rtx_vector_builder 2018-01-02 18:28:06 +00:00
vec-perm-indices.h Rework VEC_PERM_EXPR folding 2018-01-02 18:27:15 +00:00
vec.c
vec.h hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper. 2017-11-27 17:29:06 +00:00
vector-builder.h Rework VEC_PERM_EXPR folding 2018-01-02 18:27:15 +00:00
version.c
version.h
vmsdbg.h
vmsdbgout.c [IEPM] Introduce debug hook for inline entry point markers 2017-12-12 02:16:47 +00:00
vr-values.c re PR tree-optimization/83418 (ICE in extract_range_for_var_from_comparison_expr, at vr-values.c:448) 2017-12-14 11:12:52 +00:00
vr-values.h gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): Use new method allocate_value_range rather than accessing the... 2017-11-22 17:04:07 -07:00
vtable-verify.c
vtable-verify.h
web.c * web.c: Remove out-of-date comment. 2018-01-02 12:16:44 -07:00
wide-int-print.cc
wide-int-print.h
wide-int.cc PR82547: Undetected overflow for UNSIGNED wide_ints 2017-11-22 13:58:57 +00:00
wide-int.h poly_int: rtx constants 2017-12-20 12:51:36 +00:00
xcoff.h
xcoffout.c
xcoffout.h

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