Age | Commit message (Collapse) | Author |
|
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ibm/rfc2467@239600 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
Power9 String Operations.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ibm/rfc2467@238962 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
does not overlap with other symbol flags.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238961 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
instructions and avoid multiple writes to SP. The key idea is that epilogs
are almost exact reverses of prologs, and thus all the decisions only need
to be taken once. The frame layout is decided in aarch64_layout_frame()
and decisions recorded in the new aarch64_frame fields initial_adjust,
callee_adjust, callee_offset and final_adjust.
A generic frame setup consists of 5 basic steps:
1. sub sp, sp, initial_adjust
2. stp reg1, reg2, [sp, -callee_adjust]! (push if callee_adjust != 0)
3. add fp, sp, callee_offset (if frame_pointer_needed)
4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves)
5. sub sp, sp, final_adjust
The epilog reverses this, and may omit step 3 if alloca wasn't used.
gcc/
* config/aarch64/aarch64.h (aarch64_frame):
Remove padding0 and hardfp_offset. Add locals_offset,
initial_adjust, callee_adjust, callee_offset and final_adjust.
* config/aarch64/aarch64.c (aarch64_layout_frame):
Remove unused padding0 and hardfp_offset initializations.
Choose frame layout and set frame variables accordingly.
Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
(aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
(aarch64_pop_regs): Likewise.
(aarch64_expand_prologue): Remove all decision code, just emit
prolog according to frame variables.
(aarch64_expand_epilogue): Remove all decision code, just emit
epilog according to frame variables.
(aarch64_initial_elimination_offset): Use offset to local/arg area.
testsuite/
* gcc.target/aarch64/test_frame_10.c: Fix test to check for a
single stack adjustment, no writeback.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
* gcc.target/aarch64/test_frame_8.c: Likewise.
* gcc.target/aarch64/test_frame_16.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238960 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* include/bits/basic_string.tcc: Disable explicit instantiation
declarations for C++17.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238959 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* constexpr.c (cxx_eval_pointer_plus_expression): Check constancy
of nelts.
* cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in
C++11 and up.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238957 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
TImode register referenced in debug insn can be converted to V1TImode by
scalar to vector optimization. When converting a TImode store to V1TImode,
we need to check all debug insns on its use chain to convert the V1TImode
register to SUBREG TImode if source register is undefined.
gcc/
PR target/72748
* config/i386/i386.c (timode_scalar_chain::convert_insn): Call
fix_debug_reg_uses after changing source register mode to
V1TImode if source register is undefined.
gcc/testsuite/
PR target/72748
* gcc.target/i386/pr72748.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238956 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
gcc/
PR tree-optimization/71818
* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
with non invariant evolutions
testsuite/
PR tree-optimization/71818
* gcc.dg/vect/pr71818.c: New
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238955 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
ignored "xfail" from { dg-do compile { xfail selector } } directive.
* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++11.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++98.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c.cc: Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238954 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR tree-optimization/71857
* gcc.dg/tree-ssa/ivopt_mult_4.c: Change expectation.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238953 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/backward/hash_set/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238952 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238951 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* config/avr/avr.md (length) [branch]: Correct insn length
attribute for forward branches.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238948 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
__builtin_avr_nops.
* config/avr/builtins.def (NOPS): New.
* config/avr/avr.c (avr_expand_nops): New static function.
(avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238947 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238946 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
later.
* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238945 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
C++98-compatible initialization for array.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238944 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
unused header and variable from compile-only test.
* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238943 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/experimental/string_view/operations/rfind/char/2.cc:
Remove duplicate dg-options directive.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238942 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238941 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
linker options from compile-only tests.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238940 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
supported for C++11 and later.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238939 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
addresses.
* gcc.target/aarch64/ldp_stp_unaligned_1.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238938 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* config/aarch64/aarch64.c (vulcan_tunings): Update
vulcan L1 cache_line_size.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238937 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
gcc/c/
2016-08-01 Jan Beulich <jbeulich@suse.com>
* c-fold.c (c_fully_fold_internal): Also emit shift count
warnings for vector types.
* c-typeck.c (build_binary_op): Likewise.
gcc/testsuite/
2016-08-01 Jan Beulich <jbeulich@suse.com>
* gcc.dg/vshift-6.c, gcc.dg/vshift-7.c: New.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238936 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238934 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238933 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/conditional/requirements/typedefs.cc: Change to
compile-only test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238930 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Ensure test is compiled with optimization.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238929 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238928 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
run for C++11 or later.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238927 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
test to not rely on GNU extension (escaped normal characters in POSIX
BRE). Enable tests for other strings which are now supported.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238926 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
c++11 instead of setting -std=gnu++14.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238925 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR libstdc++/72745
* include/std/array (get): Use positive message for static assertions.
* include/std/functional (_Safe_tuple_element_t): Fix indentation.
* include/std/tuple (tuple_element<I, tuple<>>): Add partial
specialization for invalid indices, with static assertion.
* testsuite/20_util/tuple/element_access/get_neg.cc: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238924 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
dg-error to relevant line.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
Likewise.
* testsuite/26_numerics/random/linear_congruential_engine/
requirements/non_uint_neg.cc: Likewise.
* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
Likewise. Also test for std::atomic_address.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238923 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238922 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* include/bits/uses_allocator.h (uses_allocator_v): New.
* include/std/functional (is_bind_expression_v, is_placeholder_v):
Likewise.
* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
* testsuite/20_util/duration/literals/range.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
New.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238921 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* gcc.target/powerpc/divkc3-1.c: Require POWER8 hardware.
* gcc.target/powerpc/mulkc3-1.c: Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238919 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
not test 128-bit types.
* testsuite/20_util/is_floating_point/value.cc: Likewise.
* testsuite/20_util/is_integral/value.cc: Likewise.
* testsuite/20_util/is_signed/value.cc: Likewise.
* testsuite/20_util/is_unsigned/value.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238918 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238917 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
* lib/target-supports.exp (check_effective_target_c): Fix indentation.
(check_effective_target_c++): Likewise. Also match for libstdc++.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238916 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/41922
* target-memory.c (expr_to_char): Pass in locus and use it in error
messages.
(gfc_merge_initializers): Ditto.
* target-memory.h: Update prototype for gfc_merge_initializers ().
* trans-common.c (get_init_field): Use the correct locus.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/41922
* gfortran.dg/equiv_constraint_5.f90: Adjust the error message.
* gfortran.dg/equiv_constraint_7.f90: Ditto.
* gfortran.dg/pr41922.f90: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238915 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238914 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/68566
* check.c (gfc_check_reshape): Check for constant expression.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/68566
* gfortran.dg/pr68566.f90: new test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238911 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR c++/71091 - constexpr reference bound to a null pointer dereference
gcc/cp/ChangeLog:
PR c++/60760
PR c++/71091
* constexpr.c (cxx_eval_binary_expression): Reject invalid expressions
involving null pointers.
(cxx_eval_component_reference): Reject null pointer dereferences.
(cxx_eval_indirect_ref): Reject indirecting through null pointers.
(cxx_eval_constant_expression): Reject invalid expressions involving
null pointers.
gcc/testsuite/ChangeLog:
PR c++/60760
PR c++/71091
* g++.dg/cpp0x/constexpr-cast.C: New test.
* g++.dg/cpp0x/constexpr-nullptr-2.C: New test.
* g++.dg/cpp1y/constexpr-sfinae.C: Correct.
* g++.dg/ubsan/pr63956.C: Correct.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238909 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
function that takes a vector memory address, a hard register, an
element number and a temporary base register, and recreates an
address that points to the appropriate element within the vector.
* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
(rs6000_split_vec_extract_var): Add support for the target of a
vec_extract with variable element number being a scalar memory
location.
(rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
swappable.
* config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
vsx_extract_<mode>_load insn with a new insn that optimizes
storing either element to a memory location, using scratch
registers to pick apart the vector and reconstruct the address.
(vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
(vsx_extract_<mode>_store): Rework alternatives to more correctly
support Altivec registers. Add support for ISA 3.0 Altivec d-form
store instruction.
(vsx_extract_<mode>_var): Add support for extracting a variable
element number from memory.
[gcc/testsuite]
2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/vec-extract-2.c: New tests for vec_extract of
vector double or vector long where the vector is in memory.
* gcc.target/powerpc/vec-extract-3.c: Likewise.
* gcc.target/powerpc/vec-extract-4.c: Likewise.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238908 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/69867
* decl.c (build_struct): Ensure that pointers point to something.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69867
* gfortran.dg/pr69867.f90: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238907 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/69962
* decl.c (gfc_set_constant_character_len): if expr is not
constant issue an error instead of an ICE.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69962
* gfortran.dg/pr69962.f90: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238906 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/70006
* io.c (gfc_resolve_dt): Use correct locus.
* resolve.c (resolve_branch): Ditto.
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/70006
* gfortran.dg/pr70006.f90: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238905 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
PR fortran/71730
* decl.c (char_len_param_value): Check return value of
gfc_reduce_init_expr().
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/71730
* gfortran.dg/pr71730.f90: New test.
* gfortran.dg/bounds_check_strlen_2.f90: Fix invalid code.
* gfortran.dg/array_constructor_27.f03: Update dg-error message.
* gfortran.dg/array_constructor_26.f03: Ditto.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238904 138bc75d-0d04-0410-961f-82ee72b054a4
|