- 26 Jan, 2018 10 commits
-
-
gcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-arches.def: Option mrf16 valid for all architectures. * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. * config/arc/arc-options.def (FL_RF16): Add mrf16 option. * config/arc/arc-tables.opt: Regenerate. * config/arc/arc.c (arc_conditional_register_usage): Handle reduced register file case. (arc_file_start): Set must have build attributes. * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using mrf16 option value. * config/arc/arc.opt (mrf16): Add new option. * config/arc/elf.h (ATTRIBUTE_PCS): Define. * config/arc/genmultilib.awk: Handle new mrf16 option. * config/arc/linux.h (ATTRIBUTE_PCS): Define. * config/arc/t-multilib: Regenerate. * doc/invoke.texi (ARC Options): Document mrf16 option. libgcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/lib1funcs.S (__udivmodsi4): Use safe version for RF16 option. (__divsi3): Use RF16 safe registers. (__modsi3): Likewise. From-SVN: r257083
Claudiu Zissulescu committed -
gcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. * config/arc/arc.c (arc_handle_secure_attribute): New function. (arc_attribute_table): Add 'secure_call' attribute. (arc_print_operand): Print secure call operand. (arc_function_ok_for_sibcall): Don't optimize tail calls when secure. (arc_is_secure_call_p): New function. * config/arc/arc.md (call_i): Add support for sjli instruction. (call_value_i): Likewise. * config/arc/constraints.md (Csc): New constraint. From-SVN: r257082
Claudiu Zissulescu committed -
The ARCv2 ISA provides the JLI instruction, which is two-byte instructions that can be used to reduce code size in an application. To make use of it, we provide two new function attributes 'jli_always' and 'jli_fixed' which will force the compiler to call the indicated function using a jli_s instruction. The compiler also generates the entries in the JLI table for the case when we use 'jli_always' attribute. In the case of 'jli_fixed' the compiler assumes a fixed position of the function into JLI table. Thus, the user needs to provide an assembly file with the JLI table for the final link. This is usefully when we want to have a table in ROM and a second table in the RAM memory. The jli instruction usage can be also forced without the need to annotate the source code via '-mjli-always' command. gcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> John Eric Martin <John.Martin@emmicro-us.com> * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. * config/arc/arc.c (_arc_jli_section): New struct. (arc_jli_section): New type. (rc_jli_sections): New static variable. (arc_handle_jli_attribute): New function. (arc_attribute_table): Add jli_always and jli_fixed attribute. (arc_file_end): New function. (TARGET_ASM_FILE_END): Define. (arc_print_operand): Reuse 'S' letter for JLI output instruction. (arc_add_jli_section): New function. (jli_call_scan): Likewise. (arc_reorg): Call jli_call_scan. (arc_output_addsi): Remove 'S' from printing asm operand. (arc_is_jli_call_p): New function. * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm operand. (movhi_insn): Likewise. (movsi_insn): Likewise. (movsi_set_cc_insn): Likewise. (loadqi_update): Likewise. (load_zeroextendqisi_update): Likewise. (load_signextendqisi_update): Likewise. (loadhi_update): Likewise. (load_zeroextendhisi_update): Likewise. (load_signextendhisi_update): Likewise. (loadsi_update): Likewise. (loadsf_update): Likewise. (movsicc_insn): Likewise. (bset_insn): Likewise. (bxor_insn): Likewise. (bclr_insn): Likewise. (bmsk_insn): Likewise. (bicsi3_insn): Likewise. (cmpsi_cc_c_insn): Likewise. (movsi_ne): Likewise. (movsi_cond_exec): Likewise. (clrsbsi2): Likewise. (norm_f): Likewise. (normw): Likewise. (swap): Likewise. (divaw): Likewise. (flag): Likewise. (sr): Likewise. (kflag): Likewise. (ffs): Likewise. (ffs_f): Likewise. (fls): Likewise. (call_i): Remove 'S' asm letter, add jli instruction. (call_value_i): Likewise. * config/arc/arc.op (mjli-always): New option. * config/arc/constraints.md (Cji): New constraint. * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm operand. (subsf3_fpx): Likewise. (mulsf3_fpx): Likewise. * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing asm operand. * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' function attrbutes. * doc/invoke.texi (ARC): Document mjli-always option. gcc/testsuite 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/jli-1.c: New file. * gcc.target/arc/jli-2.c: Likewise. Co-Authored-By: John Eric Martin <John.Martin@emmicro-us.com> From-SVN: r257081
Claudiu Zissulescu committed -
From-SVN: r257080
Sebastian Perta committed -
2018-01-25 Sebastian Perta <sebastian.perta@renesas.com> * config/rl78/rl78.c: if operand 2 is const avoid addition with 0 and use incw and decw where possible * testsuite/gcc.target/rl78/test_addsi3_internal.c: new file From-SVN: r257079
Sebastian Perta committed -
gcc/testsuite/ChangeLog: 2018-01-26 Szabolcs Nagy <szabolcs.nagy@arm.com> * gcc.target/aarch64/sve/peel_ind_1.c: Match (adrp|adr) in scan-assembler. * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. From-SVN: r257078
Szabolcs Nagy committed -
2018-01-26 Richard Biener <rguenther@suse.de> PR tree-optimization/81082 * fold-const.c (fold_plusminus_mult_expr): Do not perform the association if it requires casting to unsigned. * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived from fold_plusminus_mult_expr to catch important cases late when range info is available. * gcc.dg/vect/pr81082.c: New testcase. * gcc.dg/tree-ssa/loop-15.c: XFAIL the (int)((unsigned)n + -1U) * n + n simplification to n * n. From-SVN: r257077
Richard Biener committed -
gcc/testsuite: * gcc.target/i386/mcount_pic.c: Only xfail get_pc_thunk scan on Solaris 10. * gcc.target/i386/pr63620.c: Likewise. gcc: * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. * configure.ac (hidden_linkonce): New test. * configure: Regenerate. * config.in: Regenerate. From-SVN: r257076
Rainer Orth committed -
gcc/ * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, _mm_mask_bitshuffle_epi64_mask): Fix type. * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI): Remove. * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, __builtin_ia32_vpshufbitqmb256_mask, __builtin_ia32_vpshufbitqmb128_mask): Fix types. * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. * config/i386/sse.md (VI1_AVX512VLBW): Change types. gcc/testsuite/ * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Add -mavx512f -mavx512bw. * gcc.target/i386/avx512bitalgvl-vpshufbitqmb-1.c: Add -mavx512bw. * gcc.target/i386/i386.exp: Fix types. From-SVN: r257075
Julia Koval committed -
From-SVN: r257073
GCC Administrator committed
-
- 25 Jan, 2018 24 commits
-
-
vbpermq produces its output in bits 48..63 of the target vector reg, so the output cannot be lane swapped. gcc/ PR target/84033 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude UNSPEC_VBPERMQ. Sort other unspecs. gcc/testsuite/ PR target/84033 * gcc.target/powerpc/swaps-p8-46.c: New. From-SVN: r257070
Alan Modra committed -
Add a Type::is_alias method to remove some existing loops and avoid adding a new one. Test case is https://golang.org/cl/89935. Fixes golang/go#23489 Reviewed-on: https://go-review.googlesource.com/89975 From-SVN: r257069
Ian Lance Taylor committed -
This was the original intent, as reflected in the long comment at the start of names.cc, but I forgot to implement it. Also, remove a leading ".0" from the final name. That could occur for a method whose receiver type starts with 'u', as in that case we prepend a space to the mangled name, to avoid confusion with the Unicode mangling, and the space turns into ".0". Also, if the Unicode encoding would cause the final to start with "..u" or "..U", add a leading underscore. Patch gotest to not get fooled by some names. The result of these changes is that all symbols start with a letter or an underscore. Reviewed-on: https://go-review.googlesource.com/90015 From-SVN: r257068
Ian Lance Taylor committed -
gcc::jit::recording::union_ has some stray fields, which are duplicates of those in the compound_type base class. It looks like these have been present since the initial merger of the jit branch to trunk (r217374), where it had three duplicate fields: location *m_loc; string *m_name; fields *m_fields; I removed the duplicate field "m_fields" in r219564 but missed the other two. This patch removes them. gcc/jit/ChangeLog: PR jit/81672 * jit-recording.h (gcc::jit::recording::union_): Remove fields "m_loc" and "m_name". From-SVN: r257066
David Malcolm committed -
re PR fortran/37577 ([meta-bug] change internal array descriptor format for better syntax, C interop TR, rank 15) 2018-25-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/37577 * array.c (gfc_match_array_ref): If standard earlier than F2008 it is an error if the reference dimension is greater than 7. libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the dtype masks and shifts accordingly. * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype type node to check the field. (gfc_conv_descriptor_dtype): Access the rank field of dtype. (duplicate_allocatable_coarray): Access the rank field of the dtype descriptor rather than the dtype itself. * trans-expr.c (get_scalar_to_descriptor_type): Store the type of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE (ie. a character). (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to get_scalar_to_descriptor_type if the actual expression is a constant. (gfc_trans_structure_assign): Assign the rank directly to the dtype rank field. * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result to default integer kind. (gfc_conv_intrinsic_sizeof): Obtain the element size from the 'elem_len' field of the dtype. * trans-io.c (gfc_build_io_library_fndecls): Replace gfc_int4_type_node with dtype_type_node where necessary. (transfer_namelist_element): Use gfc_get_dtype_rank_type for scalars. * trans-types.c : Provide 'get_dtype_type_node' to acces the dtype_type_node and, if necessary, build it. The maximum size of an array element is now determined by the maximum value of size_t. Update the description of the array descriptor, including the type def for the dtype_type. (gfc_get_dtype_rank_type): Build a constructor for the dtype. Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS. (gfc_get_array_descriptor_base): Change the type of the dtype field to dtype_type_node. (gfc_get_array_descr_info): Get the offset to the rank field of the dtype. * trans-types.h : Add a prototype for 'get_dtype_type_node ()'. * trans.h : Define the indices of the dtype fields. 2018-25-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/37577 * gfortran.dg/coarray_18.f90: Allow dimension 15 for F2008. * gfortran.dg/coarray_lib_this_image_2.f90: Change 'array1' to 'array01' in the tree dump comparison. * gfortran.dg/coarray_lib_token_4.f90: Likewise. * gfortran.dg/inline_sum_1.f90: Similar - allow two digits. * gfortran.dg/rank_1.f90: Allow dimension 15 for F2008. 2018-25-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/37577 * caf/single.c (_gfortran_caf_failed_images): Access the 'type' and 'elem_len' fields of the dtype instead of the shifts. (_gfortran_caf_stopped_images): Likewise. * intrinsics/associated.c (associated): Compare the 'type' and 'elem_len' fields instead of the dtype. * caf/date_and_time.c : Access the dtype fields rather using shifts and masks. * io/transfer.c (transfer_array ): Comment on item count. (set_nml_var,st_set_nml_var): Change dtype type and use fields. (st_set_nml_dtio_var): Likewise. * libgfortran.h : Change definition of GFC_ARRAY_DESCRIPTOR and add a typedef for the dtype_type. Change the GFC_DTYPE_* macros to access the dtype fields. From-SVN: r257065
Paul Thomas committed -
From-SVN: r257064
David Edelsohn committed -
From-SVN: r257063
David Edelsohn committed -
* elf.c (elf_open_debugfile_by_debuglink): Don't check CRC if the desired CRC is zero. (elf_add): Don't clear *found_sym and *found_dwarf if debuginfo. From-SVN: r257062
Ian Lance Taylor committed -
The top three region number bits must be masked out before right-shifting the address bits into place, otherwise they will be copied down into the lower always-zero address bits. Reviewed-on: https://go-review.googlesource.com/84535 From-SVN: r257061
Ian Lance Taylor committed -
PR middle-end/83055 * predict.c (drop_profile): Do not push/pop cfun; update also node->count. (handle_missing_profiles): Fix logic looking for zero profiles. * gcc.dg/torture/pr83055.c: New testcase. From-SVN: r257059
Jan Hubicka committed -
PR c++/84031 * decl.c (find_decomp_class_base): Ignore unnamed bitfields. Ignore recursive calls that return ret. (cp_finish_decomp): Ignore unnamed bitfields. * g++.dg/cpp1z/decomp36.C: New test. From-SVN: r257057
Jakub Jelinek committed -
From-SVN: r257053
Ian Lance Taylor committed -
From-SVN: r257052
Ian Lance Taylor committed -
PR middle-end/83977 * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature on functions with #pragma omp declare simd or functions with simd attribute. * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): Remove trailing \n from warning_at calls. * c-c++-common/gomp/pr83977-1.c: Add -w to dg-options. From-SVN: r257051
Jakub Jelinek committed -
PR libstdc++/81076 * include/c_global/cstddef (__byte_operand): Define primary template. * testsuite/18_support/byte/81076.cc: New test. From-SVN: r257050
Jonathan Wakely committed -
Reviewed-on: https://go-review.googlesource.com/89815 From-SVN: r257049
Ian Lance Taylor committed -
2018-01-25 Tom de Vries <tom@codesourcery.com> PR target/84028 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call for neutered workers. * testsuite/libgomp.oacc-fortran/pr84028.f90: New test. From-SVN: r257046
Tom de Vries committed -
gcc_release (build_sources): Use getconf to get at the number of cores in the system and pass -jN to gcc_build. 2018-01-25 Richard Biener <rguenther@suse.de> * gcc_release (build_sources): Use getconf to get at the number of cores in the system and pass -jN to gcc_build. From-SVN: r257045
Richard Biener committed -
I'd somehow thought that the dump lines in these two tests were already correctly guarded, but they weren't. 2018-01-25 Richard Sandiford <richard.sandiford@linaro.org> gcc/testsuite/ * gcc.dg/vect/vect-reduc-or_1.c: Require whole_vector_shift for the shift dump line. * gcc.dg/vect/vect-reduc-or_2.c: Likewise. From-SVN: r257044
Richard Sandiford committed -
From-SVN: r257040
Ian Lance Taylor committed -
PR other/68239 * mmap.c (backtrace_free_locked): Don't put more than 16 entries on the free list. From-SVN: r257039
Ian Lance Taylor committed -
[gcc/testsuite] 2018-01-24 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81550 * gcc.target/powerpc/loop_align.c: Use unsigned long for the loop index instead of int, which allows IVOPTs to properly optimize the loop. From-SVN: r257038
Michael Meissner committed -
These testcases jit-compile functions that return char, but were erroneously calling them as if they returned int. This led to errors for certain target configurations (e.g. reading from %eax (32-bit) in the harness when only %al (8-bit) had been written to in the jit-compiled function). gcc/testsuite/ChangeLog: PR jit/82846 * jit.dg/test-alignment.c (create_aligned_code): Fix return type of "fn_type" typedef. * jit.dg/test-alignment.cc (verify_aligned_code): Likewise. From-SVN: r257037
David Malcolm committed -
From-SVN: r257036
GCC Administrator committed
-
- 24 Jan, 2018 6 commits
-
-
Encode all external symbol names using only ASCII alphanumeric characters, underscore, and dot. Use a scheme that can be reliably demangled to a somewhat readable version as described in the long comment in names.cc. A minor cleanup discovered during this was that we were treating function types as different if one had a NULL parameters_ field and another has a non-NULL parameters_ field that has no parameters. This worked because we mangled them slightly differently. We now mangle them the same, so we treat them as equal, as we should anyhow. Reviewed-on: https://go-review.googlesource.com/89555 * go.go-torture/execute/names-1.go: New test. From-SVN: r257033
Ian Lance Taylor committed -
PR target/68467 is libgcc failing to build for m68k-linux-gnu configured for ColdFire. Jeff has an analysis in the PR identifying the problem as resulting from the callers of libcalls with 1-byte or 2-byte arguments wanting to push just 1 or 2 bytes on the stack, while the libcall implementations have the normal C ABI and expect 4-byte arguments. For normal C functions, I believe the TARGET_PROMOTE_PROTOTYPES definition would ensure such arguments get passed as 4-byte, but that does not apply for libcalls. This patch fixes the issue by defining TARGET_PROMOTE_FUNCTION_MODE for m68k. The definition is conservative, only applying promotions in the case of arguments to libcalls; otherwise it returns the unpromoted type, which I believe matches what the default implementation of the hook would have done on m68k. I have tested that this fixes the libgcc build for ColdFire, and, in conjunction with one glibc patch, this enables glibc to build cleanly for ColdFire and to pass the compilation parts of the glibc testsuite except for one test unrelated to this patch (while glibc and the compilation parts of the testsuite continue to build OK for non-ColdFire m68k, as expected). I have *not* run any GCC tests for this patch, or any execution tests for m68k. PR target/68467 * config/m68k/m68k.c (m68k_promote_function_mode): New function. (TARGET_PROMOTE_FUNCTION_MODE): New macro. From-SVN: r257032
Joseph Myers committed -
PR target/83994 * i386.c (get_probe_interval): Move to earlier point. (ix86_compute_frame_layout): If -fstack-clash-protection and the frame is larger than the probe interval, then use pushes to save registers rather than reg->mem moves. (ix86_expand_prologue): Remove conditional for int_registers_saved assertion. PR target/83994 * gcc.target/i386/pr83994.c: New test. From-SVN: r257031
Jeff Law committed -
2018-01-24 Vladimir Makarov <vmakarov@redhat.com> PR target/84014 * ira-build.c (setup_min_max_allocno_live_range_point): Set up min/max for never referenced object. 2018-01-24 Vladimir Makarov <vmakarov@redhat.com> PR target/84014 * gcc.target/powerpc/pr84014.c: New. From-SVN: r257029
Vladimir Makarov committed -
PR middle-end/83977 * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN here. * omp-low.c (create_omp_child_function): Remove "omp declare simd" attributes from DECL_ATTRIBUTES (decl) without affecting DECL_ATTRIBUTES (current_function_decl). * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL functions with non-NULL DECL_ABSTRACT_ORIGIN. * c-c++-common/gomp/pr83977-1.c: New test. * c-c++-common/gomp/pr83977-2.c: New test. * c-c++-common/gomp/pr83977-3.c: New test. * gfortran.dg/gomp/pr83977.f90: New test. From-SVN: r257023
Jakub Jelinek committed -
The failures in this PR were from forcing { dg-do run } even when vect.exp chooses options that are incompatible with the runtime. The default vect.exp behaviour is to execute when possible, so there's no need for a dg-do at all. The patch removes other unconditional { dg-do run }s too. Many of them were already failing in the same way. Also, the dg-do run condition in vect-reduc-or* seems unnecessary: the test should run correctly whatever happens, and the scan tests are already guarded properly. 2018-01-24 Richard Sandiford <richard.sandiford@linaro.org> gcc/testsuite/ PR testsuite/83889 * gcc.dg/vect/pr79920.c: Remove explicit dg-do run. * gcc.dg/vect/pr80631-1.c: Likewise. * gcc.dg/vect/pr80631-2.c: Likewise. * gcc.dg/vect/pr81410.c: Likewise. * gcc.dg/vect/pr81633.c: Likewise. * gcc.dg/vect/pr81815.c: Likewise. * gcc.dg/vect/pr82108.c: Likewise. * gcc.dg/vect/pr83857.c: Likewise. * gcc.dg/vect/vect-alias-check-8.c: Likewise. * gcc.dg/vect/vect-alias-check-9.c: Likewise. * gcc.dg/vect/vect-alias-check-10.c: Likewise. * gcc.dg/vect/vect-alias-check-11.c: Likewise. * gcc.dg/vect/vect-alias-check-12.c: Likewise. * gcc.dg/vect/vect-reduc-11.c: Likewise. * gcc.dg/vect/vect-tail-nomask-1.c: Likewise. * gcc.dg/vect/vect-reduc-in-order-1.c: Remove dg-do run and use dg-xfail-run-if instead. * gcc.dg/vect/vect-reduc-in-order-2.c: Likewise. * gcc.dg/vect/vect-reduc-in-order-3.c: Likewise. * gcc.dg/vect/vect-reduc-in-order-4.c: Likewise. * gcc.dg/vect/vect-reduc-or_1.c: Remove conditional dg-do run. * gcc.dg/vect/vect-reduc-or_2.c: Likewise. From-SVN: r257022
Richard Sandiford committed
-