rth [Thu, 14 Jan 2016 23:12:53 +0000 (23:12 +0000)]
PR rtl-opt/69014
* loop-doloop.c (record_reg_sets): New.
(doloop_optimize): Reject the transform if the sequence
clobbers registers live at the end of the loop block.
(doloop_optimize_loops): Enable df_live if needed.
rth [Thu, 14 Jan 2016 21:36:12 +0000 (21:36 +0000)]
PR c/69272
PR tree-opt/68964
* trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
* tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
instead of builtin_decl_declared_p to test for declaration.
vries [Thu, 14 Jan 2016 20:01:39 +0000 (20:01 +0000)]
Mark symbols in offload tables with force_output in read_offload_tables
2016-01-14 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/68773
* c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
set force_output.
* parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
set force_output.
* omp-low.c (expand_omp_target): Don't set force_output.
* varpool.c (varpool_node::get_create): Same.
* lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
offload_funcs with force_output.
jakub [Thu, 14 Jan 2016 19:57:34 +0000 (19:57 +0000)]
PR debug/69244
* lra-eliminations.c (move_plus_up): Don't change anything if either
the outer or inner subreg mode is not MODE_INT.
* dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
segher [Thu, 14 Jan 2016 19:24:28 +0000 (19:24 +0000)]
powerpc: Add some XFAILs to 20050603-3.c (PR68803)
In r230167 I made this testcase be tested on 64-bit as well, since it
now works. That was a tad optimistic for powerpc64le though. For now,
XFAIL it there.
PR target/68803
* gcc.target/powerpc/20050603-3.c: Add xfails for powerpc64le.
dmalcolm [Thu, 14 Jan 2016 19:10:17 +0000 (19:10 +0000)]
PR preprocessor/69177 and PR c++/68819: libcpp fallbacks and -Wmisleading-indentation
gcc/c-family/ChangeLog:
PR c++/68819
* c-indentation.c (get_visual_column): Add location_t param.
Handle the column number being zero by effectively disabling the
warning, with an "inform".
(should_warn_for_misleading_indentation): Add location_t argument
for all uses of get_visual_column.
gcc/testsuite/ChangeLog:
PR c++/68819
PR preprocessor/69177
* gcc.dg/plugin/location-overflow-test-1.c: New test case.
* gcc.dg/plugin/location-overflow-test-2.c: New test case.
* gcc.dg/plugin/location_overflow_plugin.c: New test plugin.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.
libcpp/ChangeLog:
PR preprocessor/69177
* line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New
constant.
(LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests
to comment.
(can_be_stored_compactly_p): Reduce threshold from
LINE_MAP_MAX_LOCATION_WITH_COLS to
LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES.
(get_combined_adhoc_loc): Likewise.
(get_range_from_loc): Likewise.
(linemap_line_start): Ensure that a new ordinary map is created
when transitioning from range-packing being enabled to disabled,
at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold. Set
range_bits to 0 for new ordinary maps when beyond this limit.
Prevent the "increase the column bits of a freshly created map"
optimization if the range bits has reduced.
jakub [Thu, 14 Jan 2016 15:25:22 +0000 (15:25 +0000)]
PR middle-end/68146
PR tree-optimization/69155
* tree-complex.c: Include cfganal.h.
(phis_to_revisit): New variable.
(extract_component): Add phiarg_p argument. Assert that returned
SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
(update_phi_components): Partly rewrite to use loop over real/imag
components instead of code duplication. If extract_component returns
SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
create_tmp_reg into the PHI node instead, and mention the phi triplet
in phis_to_revisit.
(tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
in phis_to_revisit at the end.
* gfortran.dg/pr68146.f: New test.
* gfortran.dg/pr69155.f90: New test.
rguenth [Thu, 14 Jan 2016 15:13:19 +0000 (15:13 +0000)]
2016-01-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/68060
* tree-vect-loop.c (vect_is_simple_reduction): Check the
outer loop reduction is only used in the inner loop before
detecting a double reduction.
* gcc.dg/torture/pr68060-1.c: New testcase.
* gcc.dg/torture/pr68060-2.c: Likewise.
rguenth [Thu, 14 Jan 2016 14:51:35 +0000 (14:51 +0000)]
2016-01-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/66856
* tree-vect-slp.c (vect_build_slp_tree): Refactor to build
SLP node only if it built successfully.
(vect_analyze_slp_instance): Adjust.
nickc [Thu, 14 Jan 2016 12:36:31 +0000 (12:36 +0000)]
* lib/target-supports.exp
(check_effective_target_arm_neon_ok_nocache): Add an option
sequence that includes setting the ARM architecture to ARMv7-A.
* gcc.target/arm/attr-neon.c: Use dg-add-options to add the
command line options necessary to enable Neon support.
* gcc.target/arm/neon-vlshr-imm-1.c: Likewise.
* gcc.target/arm/neon-vshl-imm-1.c: Likewise.
* gcc.target/arm/neon-vshr-imm-1.c: Likewise.
* gcc.target/arm/pr69180.c: Likewise.
law [Thu, 14 Jan 2016 07:38:18 +0000 (07:38 +0000)]
[PATCH][PR tree-optimization/69270] Exploit VRP information in DOM
PR tree-optimization/69270
* tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
(record_edge_info): Use it. Convert boolean_{true,false}_node
to the type of op0.
PR tree-optimization/69270
* gcc.dg/tree-ssa/pr69270.c: New test.
gcc/
* doc/invoke.texi (Submodel Options): Rename section to
"Machine-Dependent Options" to better reflect its content.
Rewrite introductory text to remove archaic CPU names.
Update references.
gcc/
* doc/invoke.texi (Code Gen Options): Move section up in file,
before target-specific options. Update menu and option summary
to reflect the new section ordering.
meissner [Wed, 13 Jan 2016 20:07:12 +0000 (20:07 +0000)]
[gcc]
2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
for pack/unpack functions for __ibm128.
(PACK_IF): Likewise.
(UNPACK_IF): Likewise.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
support for __ibm128 pack/unpack functions.
(rs6000_invalid_builtin): Likewise.
(rs6000_init_builtins): Likewise.
(rs6000_opt_masks): Likewise.
* config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
(RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
functions
(RS6000_BTM_COMMON): Likewise.
* config/rs6000/rs6000.md (f128_vsx): New mode attribute.
(unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
128-bit floating point. Add support for the double values to be
in Altivec registers for TF/IF packing and unpacking, but restrict
TD packing sub-fields to be FPR registers. Don't allow overlapped
register support for packing. Allow pack inputs to be memory
locations. Don't build generator functions for unpack<mode>_dm
and unpack<mode>_nodm.
(unpack<mode>_dm): Likewise.
(unpack<mode>_nodm): Likewise.
(pack<mode>): Likewise.
* doc/extend.texi (PowerPC Built-in Functions): Document
__builtin_pack_ibm128 and __builtin_unpack_ibm128.
[libgcc]
2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
Steven Munroe <munroesj@linux.vnet.ibm.com>
Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>
* config/rs6000/sfp-exceptions.c: New file to provide exception
support for IEEE 128-bit floating point.
* config/rs6000/float128-hw.c: New file for ISA 3.0 IEEE 128-bit
floating point hardware support.
* config/rs6000/floattikf.c: New files for IEEE 128-bit floating
point conversions.
* config/rs6000/fixunskfti.c: Likewise.
* config/rs6000/fixkfti.c: Likewise.
* config/rs6000/floatuntikf.c: Likewise.
* config/rs6000/extendkftf2-sw.c: Likewise.
* config/rs6000/trunctfkf2-sw.c: Likewise.
* config/rs6000/float128-ifunc.c: New file to pick either IEEE
128-bit floating point software emulation or use ISA 3.0 hardware
support if it is available.
* config/rs6000/quad-float128.h: New file to support IEEE 128-bit
floating point.
* config/rs6000/t-float128: New Makefile fragments to enable
building __float128 emulation support.
* config/rs6000/t-float128-hw: Likewise.
* config/rs6000/float128-sed: New file to convert TF names to KF
names for PowerPC IEEE 128-bit floating point support.
* config/rs6000/sfp-machine.h (_FP_W_TYPE_SIZE): Use 64-bit types
when building on 64-bit systems, or when VSX is enabled.
(_FP_W_TYPE): Likewise.
(_FP_WS_TYPE): Likewise.
(_FP_I_TYPE): Likewise.
(TItype): Define on 64-bit systems.
(UTItype): Likewise.
(TI_BITS): Likewise.
(_FP_MUL_MEAT_D): Add support for using 64-bit types.
(_FP_MUL_MEAT_Q): Likewise.
(_FP_DIV_MEAT_D): Likewise.
(_FP_DIV_MEAT_Q): Likewise.
(_FP_NANFRAC_D): Likewise.
(_FP_NANFRAC_Q): Likewise.
(ISA_BIT): Add exception support if we are being compiled on a
machine with hardware floating point support to build the IEEE
128-bit emulation functions.
(FP_EX_INVALID): Likewise.
(FP_EX_OVERFLOW): Likewise.
(FP_EX_UNDERFLOW): Likewise.
(FP_EX_DIVZERO): Likewise.
(FP_EX_INEXACT): Likewise.
(FP_EX_ALL): Likewise.
(__sfp_handle_exceptions): Likewise.
(FP_HANDLE_EXCEPTIONS): Likewise.
(FP_RND_NEAREST): Likewise.
(FP_RND_ZERO): Likewise.
(FP_RND_PINF): Likewise.
(FP_RND_MINF): Likewise.
(FP_RND_MASK): Likewise.
(_FP_DECL_EX): Likewise.
(FP_INIT_ROUNDMODE): Likewise.
(FP_ROUNDMODE): Likewise.
* configure.ac (powerpc*-*-linux*): Check whether the PowerPC
compiler can do __float128.
* configure: Regenerate.
* libgcc/config.host (powerpc*-*-linux*): If compiler can compile
VSX code, enable IEEE 128-bit floating point.
bernds [Wed, 13 Jan 2016 20:03:26 +0000 (20:03 +0000)]
Improve warning locations (PR66208)
PR c/66208
* c-common.c (check_function_nonnull): Remove unnecessary declaration.
Add new arg loc and pass it down as context.
(check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
to the location to use for the warning.
(check_function_arguments): New arg loc. All callers changed. Pass
it to check_function_nonnull.
* c-common.h (check_function_arguments): Adjust declaration.
testsuite/
PR c/66208
* c-c++-common/pr66208.c: New file.
ro [Wed, 13 Jan 2016 09:48:53 +0000 (09:48 +0000)]
Introduce separate baselines for Solaris 10 and 11+ (PR libstdc++/66006)
PR libstdc++/66006
* configure.host (abi_baseline_pair): Use separate baseline for
Solaris 11+ and Solaris 10 with gld.
* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
* config/abi/post/solaris2.11/baseline_symbols.txt: New file.
* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
PR tree-optimization/pr67755
* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
"need_profile_correction".
(thread_block_1): Initialize new field to false by default. If we
have multiple thread paths through a common joiner to different
final targets, then set new field to true.
(compute_path_counts): Only do count adjustment when it's really
needed.
PR tree-optimization/67755
* gcc.dg/tree-ssa/pr67755.c: New test.
gcc/
* doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
Directory Options, and -specs= to Overall Options.
(Overall Options): Adjust similarly. Reorder to group related
options together. Make -specs= cross-reference the spec file details.
(Directory Options): Adjust similarly.
hainque [Tue, 12 Jan 2016 17:53:14 +0000 (17:53 +0000)]
Prevent "undef var" errors on gcc --help or --version with self-specs
* gcc.c (spec_undefvar_allowed): New global.
(process_command): Set to true when running for --version or --help,
alone or together.
(getenv_spec_function): When the variable is not defined, use the
variable name as the variable value if we're allowed not to issue
a fatal error.
gcc/
* doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
about name of GCC executable. Remove deleted node from menu.
(Directory Options) <-B>: Remove cross-reference to deleted node.
(Target Options): Delete section.
redi [Tue, 12 Jan 2016 14:54:33 +0000 (14:54 +0000)]
Prevent recursive instantiation in std::function
PR libstdc++/69005
PR libstdc++/69222
* include/std/functional (function::_Invoke): Remove, use result_of.
(function::_Callable): Replace alias template with class template
and use partial specialization instead of _NotSelf alias template.
(function(_Functor)): Add "not self" constraint so that _Callable is
not used while type is incomplete.
* testsuite/20_util/function/69222.cc: New.
jakub [Tue, 12 Jan 2016 13:20:33 +0000 (13:20 +0000)]
PR target/69198
* config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
aligned_mem is properly set for AVX512-VL floating point masked
stores.
rguenth [Tue, 12 Jan 2016 08:36:24 +0000 (08:36 +0000)]
2016-01-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/69168
* tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
pattern stmt SLP type.
* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
end up unused so cope with that case.
rguenth [Tue, 12 Jan 2016 08:30:44 +0000 (08:30 +0000)]
2016-01-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/69157
* tree-vect-stmts.c (vectorizable_mask_load_store): Check
stmts def type only during analyze phase.
(vectorizable_call): Likewise.
(vectorizable_simd_clone_call): Likewise.
(vectorizable_conversion): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
* gcc.dg/torture/pr69157.c: New testcase.
2016-01-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/69174
* tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
space.
(vectorizable_load): Properly compute the number of loads needed
for permuted strided SLP loads and do not spuriously assign
to SLP_TREE_VEC_STMTS.
andris [Tue, 12 Jan 2016 04:57:10 +0000 (04:57 +0000)]
[PATCH 5/6] [DJGPP] Update DJGPP configuration related files
* config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
(TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
(MD_EXEC_PREFIX): Remove.
(MD_STARTFILE_PREFIX) Removee.
(FILE_NAME_ABSOLUTE_P): Remove.
(CPP_SPEC): Do not read macros from sys/version.h.
(LINK_COMMAND_SPEC): Remove.
(LOCAL_INCLUDE_DIR): Remove.
(TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
(TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
(POST_LINK_SPEC): Define to invoke stubify after linker
(LIBSTDCXX): Remove define
(DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
(DEFAULT_PCC_STRUCT_RETURN): Define to 1.
(SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
(SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
(SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
(IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
(i386_djgpp_asm_named_section): Add propotype of new procedure
* config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
(MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
(STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX in config/i386/djgpp.h).
(STANDARD_STARTFILE_PREFIX_2): Define identical to STANDARD_STARTFILE_PREFIX_1.
(LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
(GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal installation errors.
(MAX_OFILE_ALIGNMENT): Define to 128.
(HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
* config/i386/djgpp.c: New file. Add implementation of i386_djgpp_asm_named_section.
wschmidt [Tue, 12 Jan 2016 04:49:55 +0000 (04:49 +0000)]
[gcc]
2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (v2df_reduction_p): New function.
(rtx_is_swappable_p): Reductions are swappable.
(insn_is_swappable_p): V2DF reductions are swappable.
[gcc/testsuite]
2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/swaps-p8-23.c: New test.
* gcc.target/powerpc/swaps-p8-24.c: Likewise.
jakub [Mon, 11 Jan 2016 19:06:34 +0000 (19:06 +0000)]
PR target/69071
* lra-eliminations.c (move_plus_up): Only move plus up
if subreg of the constant can be simplified into constant
and use the simplified subreg of the constant instead of
the original constant.
dmalcolm [Mon, 11 Jan 2016 18:03:15 +0000 (18:03 +0000)]
PR c++/68795: fix uninitialized close_paren_loc in cp_parser_postfix_expression
gcc/cp/ChangeLog:
PR c++/68795
* parser.c (cp_parser_postfix_expression): Initialize
close_paren_loc to UNKNOWN_LOCATION; only use it if
it has been written to by
cp_parser_parenthesized_expression_list.
(cp_parser_parenthesized_expression_list): Document the behavior
with respect to the CLOSE_PAREN_LOC param.
jakub [Mon, 11 Jan 2016 17:59:22 +0000 (17:59 +0000)]
PR c++/69211
* cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
folded operands have side-effects, but folding changed any of them,
build a new tree with the folded operands instead of returning the
unfolded tree.
jakub [Mon, 11 Jan 2016 17:57:43 +0000 (17:57 +0000)]
* fold-const.c (fold_convertible_p): Don't return true
for conversion of VECTOR_TYPE to same sized integral type.
(fold_convert_loc): Fix up formatting. Fold conversion of
VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
instead of NOP_EXPR.
jakub [Mon, 11 Jan 2016 17:56:39 +0000 (17:56 +0000)]
PR tree-optimization/69214
* tree-vrp.c (simplify_cond_using_ranges): Don't propagate
innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
Formatting fix.
ian [Mon, 11 Jan 2016 17:55:39 +0000 (17:55 +0000)]
PR 68980
libgo/testsuite: portable ps usage in gotest
gotest is using "ps" to list descendant sleep
processes in its timeout handling, grepping
the command name.
We are currently using the "cmd" ps output
formatter, which is non-portable. We should
use "comm" which is part of the POSIX
standard, and outputs only the command name
and not the arguments.