1. 15 Jan, 2016 6 commits
  2. 14 Jan, 2016 28 commits
    • re PR rtl-optimization/69014 (gcc.c-torture/execute/991023-1.c FAILs with -Os… · 2a8f3223
      re PR rtl-optimization/69014 (gcc.c-torture/execute/991023-1.c FAILs with -Os -fmodulo-sched -fno-tree-vrp)
      
      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.
      
      From-SVN: r232395
      Richard Henderson committed
    • Fix minor whitespace problems in last commit · c47eaca6
      From-SVN: r232394
      Jeff Law committed
    • [cilkplus] Fix cilk_spawn gimplification bug (PR cilkplus/69048) · b6e3db06
      	PR c++/69048
      	* cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
      	 to add missing cleanup point.
      
      	PR c++/69048
      	* g++.dg/cilk-plus/CK/pr69048.cc: New test.
      
      From-SVN: r232393
      Ryan Burn committed
    • Revert 2016-01-13 change. · 006df05d
      From-SVN: r232392
      Michael Meissner committed
    • Re: [PATCH][PR tree-optimization/69270] Exploit VRP information in DOM · cf73ed7b
      	* tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
      	typo.
      
      From-SVN: r232391
      Jeff Law committed
    • re PR c/69272 (ICE: in c_builtin_function, at c/c-decl.c:4020 with -fgnu-tm) · 47c147b0
      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.
      
      From-SVN: r232390
      Richard Henderson committed
    • loop.texi (Loop Analysis and Representation): Document loop_depth function. · 43186552
              * doc/loop.texi (Loop Analysis and Representation): Document
      	loop_depth function.
      
      From-SVN: r232389
      Nicklas Bo Jensen committed
    • configure.ac: Replace the hard-coded -ldl requirement for link_sanitizer_common with a... · bf93d543
      2016-01-14  Andreas Tobler  <andreast@gcc.gnu.org>
      
          * configure.ac: Replace the hard-coded -ldl requirement for
          link_sanitizer_common with a configure time check for -ldl.
          * configure: Regenerate.
      
      From-SVN: r232385
      Andreas Tobler committed
    • Mark symbols in offload tables with force_output in read_offload_tables · e6d6ec9e
      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.
      
      From-SVN: r232384
      Tom de Vries committed
    • re PR testsuite/67509 (FAIL: gfortran.dg/ieee/ieee_7.f90 -O0 execution test) · c3f6914a
      	PR testsuite/67509
      	* gfortran.dg/ieee/ieee_7.f90: For out of bound precision or
      	range tests use 100 * maximum instead of maximum + 1.
      
      From-SVN: r232383
      Francois-Xavier Coudert committed
    • re PR debug/69244 (ICE in plus_constant, at explow.c:87 on i686-linux-gnu) · cd65ae90
      	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.
      
      	* gcc.dg/guality/pr69244.c: New test.
      
      From-SVN: r232382
      Jakub Jelinek committed
    • target-supports.exp (check_effective_target_issignaling): New procedure. · 19643948
      	* lib/target-supports.exp (check_effective_target_issignaling):
      	New procedure.
      	* gcc.dg/pr61441.c: Require issignaling effective target.
      
      From-SVN: r232381
      Uros Bizjak committed
    • powerpc: Add some XFAILs to 20050603-3.c (PR68803) · fe79c97e
      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.
      
      From-SVN: r232380
      Segher Boessenkool committed
    • PR preprocessor/69177 and PR c++/68819: libcpp fallbacks and -Wmisleading-indentation · c7df95d8
      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.
      
      From-SVN: r232379
      David Malcolm committed
    • Implement TR29124 C++ special Math Functions. · 2be75957
      2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
      	    Jonathan Wakely  <jwakely@redhat.com>
      	    Florian Goth <CaptainSifff@gmx.de>
      
      	Implement TR29124 C++ special Math Functions.
      	* include/Makefile.am: Add new headers.
      	* include/Makefile.in: Regenerate.
      	* include/bits/specfun.h: New.
      	* include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
      	* include/tr1/bessel_function.tcc: Ditto.
      	* include/tr1/beta_function.tcc: Ditto.
      	* include/tr1/cmath: Ditto.
      	* include/tr1/ell_integral.tcc: Ditto.
      	* include/tr1/exp_integral.tcc: Ditto.
      	* include/tr1/gamma.tcc: Ditto.
      	* include/tr1/hypergeometric.tcc: Ditto.
      	* include/tr1/legendre_function.tcc: Ditto.
      	* include/tr1/modified_bessel_func.tcc: Ditto.
      	* include/tr1/poly_hermite.tcc: Ditto.
      	* include/tr1/poly_laguerre.tcc: Ditto.
      	* include/tr1/riemann_zeta.tcc: Ditto.
      	* include/tr1/special_function_util.h: Ditto.
      	* testsuite/ext/special_functions/conf_hyperg: New.
      	* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
      	* testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
      	* testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
      	* testsuite/ext/special_functions/hyperg: New.
      	* testsuite/ext/special_functions/hyperg/check_nan.cc: New.
      	* testsuite/ext/special_functions/hyperg/check_value.cc: New.
      	* testsuite/ext/special_functions/hyperg/compile.cc: New.
      	* testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
      	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
      	* testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
      	* testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
      	* testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
      	* testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
      	* testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
      	* testsuite/special_functions/02_assoc_legendre/compile.cc: New.
      	* testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
      	* testsuite/special_functions/03_beta/check_nan.cc: New.
      	* testsuite/special_functions/03_beta/check_value.cc: New.
      	* testsuite/special_functions/03_beta/compile.cc: New.
      	* testsuite/special_functions/03_beta/compile_2.cc: New.
      	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
      	* testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
      	* testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
      	* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
      	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
      	* testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
      	* testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
      	* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
      	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
      	* testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
      	* testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
      	* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
      	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
      	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
      	* testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
      	* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
      	* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
      	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
      	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
      	* testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
      	* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
      	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
      	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
      	* testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
      	* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
      	* testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
      	* testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
      	* testsuite/special_functions/10_cyl_neumann/compile.cc: New.
      	* testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
      	* testsuite/special_functions/11_ellint_1/check_nan.cc: New.
      	* testsuite/special_functions/11_ellint_1/check_value.cc: New.
      	* testsuite/special_functions/11_ellint_1/compile.cc: New.
      	* testsuite/special_functions/11_ellint_1/compile_2.cc: New.
      	* testsuite/special_functions/12_ellint_2/check_nan.cc: New.
      	* testsuite/special_functions/12_ellint_2/check_value.cc: New.
      	* testsuite/special_functions/12_ellint_2/compile.cc: New.
      	* testsuite/special_functions/12_ellint_2/compile_2.cc: New.
      	* testsuite/special_functions/13_ellint_3/check_nan.cc: New.
      	* testsuite/special_functions/13_ellint_3/check_value.cc: New.
      	* testsuite/special_functions/13_ellint_3/compile.cc: New.
      	* testsuite/special_functions/13_ellint_3/compile_2.cc: New.
      	* testsuite/special_functions/14_expint/check_nan.cc: New.
      	* testsuite/special_functions/14_expint/check_value.cc: New.
      	* testsuite/special_functions/14_expint/compile.cc: New.
      	* testsuite/special_functions/14_expint/compile_2.cc: New.
      	* testsuite/special_functions/15_hermite/check_nan.cc: New.
      	* testsuite/special_functions/15_hermite/check_value.cc: New.
      	* testsuite/special_functions/15_hermite/compile.cc: New.
      	* testsuite/special_functions/15_hermite/compile_2.cc: New.
      	* testsuite/special_functions/16_laguerre/check_nan.cc: New.
      	* testsuite/special_functions/16_laguerre/check_value.cc: New.
      	* testsuite/special_functions/16_laguerre/compile.cc: New.
      	* testsuite/special_functions/16_laguerre/compile_2.cc: New.
      	* testsuite/special_functions/17_legendre/check_nan.cc: New.
      	* testsuite/special_functions/17_legendre/check_value.cc: New.
      	* testsuite/special_functions/17_legendre/compile.cc: New.
      	* testsuite/special_functions/17_legendre/compile_2.cc: New.
      	* testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
      	* testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
      	* testsuite/special_functions/18_riemann_zeta/compile.cc: New.
      	* testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
      	* testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
      	* testsuite/special_functions/19_sph_bessel/check_value.cc: New.
      	* testsuite/special_functions/19_sph_bessel/compile.cc: New.
      	* testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
      	* testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
      	* testsuite/special_functions/20_sph_legendre/check_value.cc: New.
      	* testsuite/special_functions/20_sph_legendre/compile.cc: New.
      	* testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
      	* testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
      	* testsuite/special_functions/21_sph_neumann/check_value.cc: New.
      	* testsuite/special_functions/21_sph_neumann/compile.cc: New.
      	* testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
      	* testsuite/util/specfun_testcase.h: New.
      	* testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
      	* testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
      	* testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
      	* testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
      	* testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
      	* testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
      	* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
      
      
      Co-Authored-By: Florian Goth <CaptainSifff@gmx.de>
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r232377
      Edward Smith-Rowland committed
    • re PR c/69262 (Request for better array bounds warning) · 00083992
      	PR c/69262
      	* c-decl.c (grokdeclarator): Provide more information for invalid
      	array declarations.
      
      	* gcc.dg/array-15.c: New test.
      
      From-SVN: r232376
      Marek Polacek committed
    • Tidy: remove reduc_xxx_optab migration code. · b56ed680
      	* doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
      	reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
      	reduc_uplus_@var{m}): Remove.
      	* expr.c (expand_expr_real_2): Remove expansion path for
      	reduc_[us](min|max|plus) optabs.
      	* optabs-tree.c (scalar_reduc_to_vector): Remove.
      	* optabs-tree.h (scalar_reduc_to_vector): Remove.
      	* optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
      	reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
      	* tree-vect-loop.c (vectorizable_reduction): Remove test for
      	reduc_[us](min|max|plus) optabs.
      
      From-SVN: r232373
      Alan Lawrence committed
    • [MIPS] Migrate reduction optabs in mips-ps-3d.md · 59a2f0fa
      	* config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
      	(reduc_plus_scal_v2sf): New.
      	(reduc_smax_v2sf): Rename to...
      	(reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
      	(reduc_smin_v2sf): Rename to...
      	(reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
      
      From-SVN: r232371
      Alan Lawrence committed
    • re PR c++/69261 (Copying char arrays during constexpr evaluation does not work reliably) · a7ccb9e7
      	PR c++/69261
      	* constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
      
      From-SVN: r232370
      Jason Merrill committed
    • alias.c (compare_base_symbol_refs): New function. · 73e48cb3
      	* alias.c (compare_base_symbol_refs): New function.
      	(rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
      	it.
      
      From-SVN: r232369
      Jan Hubicka committed
    • re PR middle-end/68146 (ice in gimple_stmt_nonnegative_warnv_p with -O2) · 0c9b3294
      	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.
      
      From-SVN: r232368
      Jakub Jelinek committed
    • re PR tree-optimization/68060 (ICE on valid code at -O3 on x86_64-linux-gnu in… · 3688e13d
      re PR tree-optimization/68060 (ICE on valid code at -O3 on x86_64-linux-gnu in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1413)
      
      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.
      
      From-SVN: r232367
      Richard Biener committed
    • re PR target/68269 (FAIL: gcc.dg/pr68129_1.c (internal compiler error)) · a2ae4661
      	PR target/68269
      	* combine.c (expand_field_assignment): Punt if compute_mode is
      	unsupported scalar mode.
      
      From-SVN: r232366
      Jakub Jelinek committed
    • re PR tree-optimization/66856 (ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234) · e403d17e
      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.
      
      From-SVN: r232364
      Richard Biener committed
    • * lib/target-supports.exp · bab0ad3a
      	(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.
      
      From-SVN: r232362
      Nick Clifton committed
    • [PATCH][PR tree-optimization/69270] Exploit VRP information in DOM · 947c2ce5
      	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.
      
      From-SVN: r232361
      Jeff Law committed
    • Daily bump. · 19860f48
      From-SVN: r232359
      GCC Administrator committed
  3. 13 Jan, 2016 6 commits
    • re PR c++/66487 (sanitizer/warnings for lifetime DSE) · 92763e9a
      
      	PR ipa/66487
      	* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
      	use block_ultimate_origin
      	(noncall-stmt_may_be_vtbl_ptr_store): Likewise.
      
      From-SVN: r232356
      Jan Hubicka committed
    • invoke.texi (Submodel Options): Rename section to "Machine-Dependent Options" to… · 13431f30
      invoke.texi (Submodel Options): Rename section to "Machine-Dependent Options" to better reflect its content.
      
      2016-01-13  Sandra Loosemore <sandra@codesourcery.com>
      
      	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.
      
      From-SVN: r232355
      Sandra Loosemore committed
    • libitm: Fix seq-cst MOs/fences in rwlock. · e89137ce
      From-SVN: r232353
      Torvald Riegel committed
    • invoke.texi (Code Gen Options): Move section up in file, before target-specific options. · d6683aec
      2016-01-13  Sandra Loosemore <sandra@codesourcery.com>
      
      	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.
      
      From-SVN: r232352
      Sandra Loosemore committed
    • Improve documentation of -std option for C++ · 36d421ec
      	* doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
      	(C++ Dialect Options): Add cross-reference to -std option.
      	* doc/standards.texi (C++ Language): Document C++14 support.
      
      From-SVN: r232349
      Jonathan Wakely committed
    • rs6000-builtin.def (BU_FLOAT128_2): Add support for pack/unpack functions for __ibm128. · 29176d57
      [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.
      
      	* config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
      	built-in functions to pack/unpack explicit __ibm128 values.
      	(__builtin_unpack_ibm128): 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.
      
      From-SVN: r232346
      Michael Meissner committed