Aditya Kumar [Mon, 24 Aug 2015 20:53:51 +0000 (20:53 +0000)]
Specify the type of scop->region
Changing the type of scop::region from void* to sese, as this is
the only type assigned to scop::region for now. No functional changes intended.
Passes regtest and bootstrap.
gcc/ChangeLog:
2015-08-17 Aditya Kumar <aditya.k7@samsung.com>
* graphite-poly.c: Change type of region from void* to sese.
* graphite-poly.h (struct scop): Changing the type of scop::region
from void* to sese. Change accessor macro accordingly.
* graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
Michael Meissner [Mon, 24 Aug 2015 18:43:02 +0000 (18:43 +0000)]
re PR target/67211 (ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu)
[gcc]
2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/67211
* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
-mefficient-unaligned-vsx on ISA 2.7.
* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
option to a masked option.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
logic for -mefficient-unaligned-vsx so that it is set via an arch
ISA option, instead of being set if -mtune=power8 is set. Move
-mefficient-unaligned-vsx and -mallow-movmisalign handling to be
near other default option handling.
[gcc/testsuite]
2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
gcc/
* builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
(expand_builtin_strcmp, expand_builtin_strncmp): Use them. Remove
references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
* config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
Add predicates for operands 0 and 3.
* config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
operand.
* config/sh/sh.md (cmpstrnsi): Change the length predicate from
immediate_operand to nonmemory_operand.
df-scan.c (df_insn_info_init_fields): New function, split out from...
gcc/
* df-scan.c (df_insn_info_init_fields): New function, split out
from...
(df_insn_create_insn_record): ...here.
(df_insn_info_free_fields): New function, split out from...
(df_insn_info_delete): ...here.
(df_insn_rescan): Use the new functions instead of freeing and
reallocating the df_insn_info.
Nathan Sidwell [Mon, 24 Aug 2015 17:10:06 +0000 (17:10 +0000)]
libgomp.map: Add 4.0.2 version.
libgomp/
* libgomp.map: Add 4.0.2 version.
* target.c (offload_image_descr): Add version field.
(gomp_load_image_to_device): Add version argument. Adjust plugin
call. Improve load mismatch diagnostic.
(gomp_unload_image_from_device): Add version argument. Adjust plugin
call.
(GOMP_offload_regster): Make stub function, move bulk to ...
(GOMP_offload_register_ver): ... here. Process version argument.
(GOMP_offload_unregister): Make stub function, move bulk to ...
(GOMP_offload_unregister_ver): ... here. Process version argument.
(gomp_init_device): Process version field.
(gomp_unload_device): Process version field.
(gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
macros. Check plugin version.
* libgomp.h (gomp_device_descr): Add version function field. Adjust
loader and unloader types.
* oacc-host.c: Include gomp-constants.h.
(host_version): New.
(host_load_image, host_unload_image): Adjust.
(host_dispatch): Add host_version.
* plugin/plugin-nvptx.c: Include gomp-constants.h.
(GOMP_OFFLOAD_version): New.
(GOMP_OFFLOAD_load_image): Add version arg and check it.
(GOMP_OFFLOAD_unload_image): Likewise.
* plugin/plugin-host.c: Include gomp-constants.h.
(GOMP_OFFLOAD_version): New.
(GOMP_OFFLOAD_load_image): Add version arg.
(GOMP_OFFLOAD_unload_image): Likewise.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_version): New.
(GOMP_OFFLOAD_load_image): Add version arg and check it.
(GOMP_OFFLOAD_unload_image): Likewise.
Marek Polacek [Mon, 24 Aug 2015 16:06:02 +0000 (16:06 +0000)]
re PR tree-optimization/67284 (libgo fails to build on trunk r227015 / *-linux-gnu)
PR tree-optimization/67284
* go-gcc.cc (Gcc_backend::define_builtin): Add NORETURN_P parameter.
Set TREE_THIS_VOLATILE.
(Gcc_backend::Gcc_backend): Mark __builtin_trap as a noreturn call.
Pass false to the rest of define_builtin calls.
Thomas Schwinge [Mon, 24 Aug 2015 13:20:31 +0000 (15:20 +0200)]
Makefile.am (include_src_dir): Set.
* plugin/Makefile.am (include_src_dir): Set.
[PLUGIN_HOST] (libgomp_plugin_intelmic_la_CPPFLAGS): Use it.
* plugin/Makefile.in: Regenerate.
* plugin/libgomp-plugin-intelmic.cpp: Include "gomp-constants.h".
Nathan Sidwell [Mon, 24 Aug 2015 12:43:54 +0000 (12:43 +0000)]
nvptx.c (walk_args_for_param): Revert previous change to nvptx_type_from_mode call.
* config/nvptx/nvptx.c (walk_args_for_param): Revert previous
change to nvptx_type_from_mode call. Use arg_promotion for both
split and non-split args.
gcc/
* target-insns.def (movstr): New pattern.
* builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
(expand_movstr): Use targetm rather than HAVE_movstr/
CODE_FOR_movstr.
Yaakov Selkowitz [Mon, 24 Aug 2015 10:24:52 +0000 (10:24 +0000)]
Missing parts of fixes for in-tree libiconv
(The previous iconv-related commit missed the config/iconv.m4 change.)
Original description:
This is the second in a series of patches to make a build with an
in-tree GNU libiconv work as designed.
Currently GDB is the only toolchain component which actually uses an
in-tree libiconv. This patch modifies the common AM_ICONV to use an
in-tree libiconv when present and not already provided by libc.
(GDB's workaround uses an in-tree libiconv even when libc provides
iconv(3); I'm not sure when or why that would be desirable.)
diff --git a/config/iconv.m4 b/config/iconv.m4
index c5f3579..5f9304a 100644
--- a/config/iconv.m4
+++ b/config/iconv.m4
@@ -7,6 +7,7 @@ dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl From Bruno Haible.
+dnl with modifications to support building with in-tree libiconv
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
+ dnl Add $INCICONV to CPPFLAGS before performing the first check,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. This first
+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCICONV"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
+ CPPFLAGS="$am_save_CPPFLAGS"
+
+ if test "$am_cv_func_iconv" != yes && test -d ../libiconv; then
+ for _libs in .libs _libs; do
+ am_save_CPPFLAGS="$CPPFLAGS"
+ am_save_LIBS="$LIBS"
+ CPPFLAGS="$CPPFLAGS -I../libiconv/include"
+ LIBS="$LIBS ../libiconv/lib/$_libs/libiconv.a"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ INCICONV="-I../libiconv/include"
+ LIBICONV='${top_builddir}'/../libiconv/lib/$_libs/libiconv.a
+ LTLIBICONV='${top_builddir}'/../libiconv/lib/libiconv.la
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBS="$am_save_LIBS"
+ if test "$am_cv_func_iconv" = "yes"; then
+ break
+ fi
+ done
+ fi
+
if test "$am_cv_func_iconv" != yes; then
+ am_save_CPPFLAGS="$CPPFLAGS"
am_save_LIBS="$LIBS"
+ CPPFLAGS="$LIBS $INCICONV"
LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include <stdlib.h>
#include <iconv.h>],
@@ -54,6 +82,7 @@ AC_DEFUN([AM_ICONV_LINK],
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
+ CPPFLAGS="$am_save_CPPFLAGS"
LIBS="$am_save_LIBS"
fi
])
@@ -61,12 +90,10 @@ AC_DEFUN([AM_ICONV_LINK],
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
fi
if test "$am_cv_lib_iconv" = yes; then
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
AC_MSG_CHECKING([how to link with libiconv])
AC_MSG_RESULT([$LIBICONV])
else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
LIBICONV=
LTLIBICONV=
fi
--
1.9.3
Andrew Pinski [Mon, 24 Aug 2015 09:56:48 +0000 (09:56 +0000)]
Remove the hack for AARCH64_EXTRA_TUNE_ALL.
2015-08-24 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64-tuning-flags.def: Remove all index to
AARCH64_EXTRA_TUNING_OPTION.
* config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): New enum.
(aarch64_extra_tuning_flags): Base the shifted value on the index instead
of the argument to AARCH64_EXTRA_TUNING_OPTION.
* config/aarch64/aarch64.c: Remove the last argument to
AARCH64_EXTRA_TUNING_OPTION.
Tom de Vries [Sun, 23 Aug 2015 09:19:32 +0000 (09:19 +0000)]
Don't create superfluous parm in expand_omp_taskreg
2015-08-23 Tom de Vries <tom@codesourcery.com>
* omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
parm_decl, rather than generating a dummy default def in cfun.
* tree-cfg.c (replace_ssa_name): Assume no default defs. Make sure
ssa_name from cfun and child_fn do not share a stmt as def stmt.
(move_stmt_op): Handle PARM_DECl.
(gather_ssa_name_hash_map_from): New function.
(move_sese_region_to_fn): Add default defs for function params, and add
them to vars_map. Release copied ssa names.
* tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
Andrew Pinski [Sat, 22 Aug 2015 06:49:32 +0000 (06:49 +0000)]
Remove index from AARCH64_FUSION_PAIR
Instead of doing an explict index in aarch64-fusion-pairs.def, we
should have an enum which does the index instead. This allows
you to add/remove them without worrying about the order being
correct and having holes or worry about merge conficts.
OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions.
ChangeLog:
* aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
* config/aarch64/aarch64-protos.h (aarch64_fusion_pairs_index): New enum.
(aarch64_fusion_pairs): Base the shifted value on the index instead
Rewrite AARCH64_FUSE_ALL to be based on the end index.
of the argument to AARCH64_FUSION_PAIR.
* config/aarch64/aarch64.c: Remove the last argument to AARCH64_FUSION_PAIR.
Mikhail Maltsev [Sat, 22 Aug 2015 03:20:13 +0000 (03:20 +0000)]
Refactor dominance.c: define dom_info as C++ class
gcc/
* dominance.c (new_zero_array): Define.
(dom_info): Redefine as class with proper encapsulation.
(dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
Add new members.
(dom_info::dom_info, ~dom_info): Define. Use new/delete for memory
allocations/deallocations. Pass function as parameter (instead of
using cfun).
(dom_info::get_idom): Define accessor method.
(dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
link_roots, calc_idoms): Redefine as class members. Do not use cfun.
(calculate_dominance_info): Adjust to use dom_info class.
(verify_dominators): Likewise.
Alexandre Oliva [Fri, 21 Aug 2015 20:03:14 +0000 (20:03 +0000)]
fix sched compare regression
for gcc/ChangeLog
PR rtl-optimization/64164
PR rtl-optimization/67227
* alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
(nonoverlapping_memrefs_p): Test offsets and sizes when given
identical gimple_reg exprs.
gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one.
gcc/
* gencodes.c (gencodes): Print the comma for the preceding
enum value rather than the current one. Use aliased enum values
rather than #defines for compiled-out patterns.
(main): Update accordingly. Replace LAST_INSN_CODE with
NUM_INSN_CODES.
* lra.c (insn_code_data): Update accordingly.
(finish_insn_code_data_once, get_static_insn_data): Likewise.
* recog.h (target_recog): Likewise.
(preprocess_insn_constraints): Change parameter to unsigned int.
* recog.c (preprocess_insn_constraints): Likewise.
(recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
* tree-vect-stmts.c (vectorizable_operation): Simplify.
bootstrap-ubsan shows:
loop-iv.c:2626:14: runtime error: signed integer overflow: 9223372036854775806 - -9223372036854775808 cannot be represented in type 'long int'
Fixed by moving the variables in question from signed to unsigned.
PR rtl-optimization/61657
* loop-iv.c (iv_number_of_iterations): Declare up and down as
unsigned. Remove superflous uint64_t cast.
Felix Yang [Fri, 21 Aug 2015 14:34:52 +0000 (14:34 +0000)]
value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument and get builtin function code directly from CALL.
* value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument
and get builtin function code directly from CALL.
(gimple_stringop_fixed_value): Modified accordingly.
(gimple_stringops_transform, gimple_stringops_values_to_profile): Modified
accordingly and only accept BUILT_IN_NORMAL string operations.
* fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
to match.pd.
Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
* match.pd (SIN ) : New Operator.
(TAN) : New Operator.
(mult (SQRT@1 @0) @1) : New simplifier.
(mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
(mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
(mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
(rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
(rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
(rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
(rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
(rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
(rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
(rdiv @0 (POW:s @1 @2)) : New simplifier.
Richard Biener [Fri, 21 Aug 2015 08:06:20 +0000 (08:06 +0000)]
re PR middle-end/67285 (ICE with (rdiv (POW:s @0 REAL_CST@1) @0))
2015-08-21 Richard Biener <rguenther@suse.de>
PR middle-end/67285
* gimple-fold.c (replace_stmt_with_simplification): Assert
seq is empty when replacing a call with itself but different
arguments.
* gimple-match-head.c (maybe_push_res_to_seq): When pushing
a call require that it is const.
Jonathan Wakely [Thu, 20 Aug 2015 20:36:19 +0000 (21:36 +0100)]
libstdc++/67294 Don't run timed mutex tests on Darwin
PR libstdc++/67294
* testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Do not run
on Darwin.
* testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
Jonathan Wakely [Thu, 20 Aug 2015 20:19:58 +0000 (21:19 +0100)]
any (__any_caster): Define at namespace scope so the name is visible to name lookup.
* include/experimental/any (__any_caster): Define at namespace scope
so the name is visible to name lookup.
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
Ian Lance Taylor [Thu, 20 Aug 2015 17:43:55 +0000 (17:43 +0000)]
compiler: Don't crash on invalid print call.
When the print builtins are called with no arguments, the compiler
issues a warning and crashes when trying to produce the backend
representation for the arguments.
Bill Schmidt [Thu, 20 Aug 2015 17:01:32 +0000 (17:01 +0000)]
altivec.h (vec_pmsum_be): New #define.
[gcc]
2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.h (vec_pmsum_be): New #define.
(vec_shasigma_be): New #define.
* config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
(VPMSUMH): Likewise.
(VPMSUMW): Likewise.
(VPMSUMD): Likewise.
(VPMSUM): New BU_P8V_OVERLOAD_2.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
entries for VEC_MADD and VEC_VPMSUM.
[gcc/testsuite]
2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/altivec-35.c (foo): Add tests for vec_madd.
* gcc.target/powerpc/p8vector-builtin-8.c (foo): Add tests for
vec_vpmsum_be and vec_shasigma_be.
Georg-Johann Lay [Thu, 20 Aug 2015 14:22:35 +0000 (14:22 +0000)]
avr.c (avr_insert_attributes): In diagnostic essage: Multiply argument avr_n_flash by 64 to match unit of "KiB".
* config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
Multiply argument avr_n_flash by 64 to match unit of "KiB".
(avr_pgm_check_var_decl): Same.
Richard Biener [Thu, 20 Aug 2015 11:02:30 +0000 (11:02 +0000)]
toplev.c (compile_file): Remove loop calling late_global_decl on all symbols.
2015-08-20 Richard Biener <rguenther@suse.de>
* toplev.c (compile_file): Remove loop calling late_global_decl
on all symbols.
* varpool.c (varpool_node::assemble_decl): Call late_global_decl
on decls we assembled.
Jonathan Wakely [Thu, 20 Aug 2015 10:50:02 +0000 (11:50 +0100)]
Makefile.am: Ensure gdb.py is installed for libstdc++ not libstdc++fs.
* python/Makefile.am: Ensure gdb.py is installed for libstdc++ not
libstdc++fs.
* python/Makefile.in: Regenerate.
# Auto-generated commit message above this line, original below.
* python/Makefile.am: Ensure gdb.py is installed for libstdc++ not
libstdc++fs.
* python/Makefile.in: Regenerate.
Simon Dardis [Thu, 20 Aug 2015 09:45:33 +0000 (10:45 +0100)]
mips.c (mips_expand_block_move): Enable inline memcpy expansion when !ISA_HAS_LWL_LWR.
gcc/
* config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
expansion when !ISA_HAS_LWL_LWR.
(mips_block_move_straight): Update the size of elements copied to
account for alignment when !ISA_HAS_LWL_LWR.
* config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
gcc/testsuite/
* inline-memcpy-1.c: Test for inline expansion of memcpy.
* inline-memcpy-2.c: Ditto.
* inline-memcpy-3.c: Ditto.
* inline-memcpy-4.c: Ditto.
* inline-memcpy-5.c: Ditto.
Jiong Wang [Wed, 19 Aug 2015 22:55:28 +0000 (22:55 +0000)]
[Patch][expand] Check gimple statement to improve LSHIFT_EXP expand
This patch improves LSHIFT_EXP expand if the shift operand comes from sign
extension and the shift result across word_mode_size boundary. See code
comments for details.
2015-08-19 Jiong.Wang <jiong.wang@arm.com>
gcc/
* expr.c (expand_expr_real_2): Check gimple statement during
LSHIFT_EXPR expand.
Alexandre Oliva [Wed, 19 Aug 2015 17:00:32 +0000 (17:00 +0000)]
[PR64164] fix regressions reported on m68k and armeb
Defer stack slot address assignment for all parms that can't live in
pseudos, and accept pseudos assignments in assign_param_setup_block.
for gcc/ChangeLog
PR rtl-optimization/64164
* cfgexpand.c (parm_maybe_byref_p): Renamed to...
(parm_in_stack_slot_p): ... this. Disregard mode, what
matters is whether the parm will live in a pseudo or a stack
slot.
(expand_one_ssa_partition): Deal with params without a default
def. Disregard mode.
* cfgexpand.h: Renamed function declaration.
* tree-ssa-coalesce.c: Adjust.
* function.c (split_complex_args): Allocate stack slot for
unassigned parms before splitting.
(parm_in_unassigned_mem_p): New. Use it instead of
parm_maybe_byref_p throughout this file.
(assign_parm_setup_block): Use it. Accept pseudos in the
expand-assigned rtl.
(assign_parm_setup_reg): Drop BLKmode requirement.
(assign_parm_setup_stack): Allocate and fill in the address of
unassigned MEM parms.
David Sherwood [Wed, 19 Aug 2015 15:23:11 +0000 (15:23 +0000)]
genmodes.c (emit_mode_unit_size_inline): New function.
2015-08-19 David Sherwood <david.sherwood@arm.com>
gcc/
* genmodes.c (emit_mode_unit_size_inline): New function.
(emit_mode_unit_precision_inline): New function.
(emit_insn_modes_h): Emit new #define. Emit new functions.
(emit_mode_unit_size): New function.
(emit_mode_unit_precision): New function.
(emit_mode_adjustments): Add mode_unit_size adjustments.
(emit_insn_modes_c): Emit new arrays.
* machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
use new inline methods.
Mikael Morin [Wed, 19 Aug 2015 13:42:36 +0000 (13:42 +0000)]
Avoid signed left shift undefined behaviour in sext_hwi
gcc/
PR other/67042
* hwint.h (sext_hwi): Switch to unsigned for the left shift, and
conditionalize the whole on __GNUC__. Add fallback code
depending neither on undefined nor implementation-defined behaviour.