aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-05-08* standard.ads.h: New file.Arnaud Charlet2-0/+88
From-SVN: r271003
2019-05-08re PR other/90381 (New test case gcc.dg/tree-ssa/pr88676-2.c fails with its ↵Li Jia He2-1/+7
introduction in r270934) PR other/90381 * gcc.dg/tree-ssa/pr88676-2.c: Add 'target le' option to limit the test case to run on the little endian machine. From-SVN: r271002
2019-05-08re PR tree-optimization/90356 (Missed optimization for variables initialized ↵Jakub Jelinek7-0/+78
to 0.0) PR tree-optimization/90356 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible. * gcc.dg/tree-ssa/pr90356-1.c: New test. * gcc.dg/tree-ssa/pr90356-2.c: New test. * gcc.dg/tree-ssa/pr90356-3.c: New test. * gcc.dg/tree-ssa/pr90356-4.c: New test. From-SVN: r271001
2019-05-08reflect: correctly handle direct interface typed receiver in Value.callIan Lance Taylor1-1/+1
A direct interface type's value method takes value receiver now. Don't pass pointer to the method function. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/175798 From-SVN: r271000
2019-05-08compiler: don't add pointer twice to value method of direct interface typeIan Lance Taylor2-10/+12
For a direct interface type T with a value method M, its pointer type (*T)'s method table includes a stub method of M which takes a (*T) as the receiver instead of a T. However, for the "typ" field of the method table entry, we added another layer of indirection, which makes it appear to take a **T, which is wrong. This causes problems when using reflect.Type.Method to get the method. This CL fixes the second, incorrect, indirection. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/175837 From-SVN: r270999
2019-05-08Daily bump.GCC Administrator1-1/+1
From-SVN: r270997
2019-05-08compiler: add an option to emit optimization diagnosticsCherry Zhang13-1/+75
Add a -fgo-debug-optimization option to emit optimization diagnostics. This can be used for testing optimizations. Apply this to the range clear optimizations of maps and arrays. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/170002 gcc/go: * lang.opt (-fgo-debug-optimization): New option. * go-c.h (struct go_create_gogo_args): Add debug_optimization field. * go-lang.c (go_langhook_init): Set debug_optimization field. * gccgo.texi (Invoking gccgo): Document -fgo-debug-optimization. gcc/testsuite: * go.dg/arrayclear.go: New test. * go.dg/mapclear.go: New test. From-SVN: r270993
2019-05-08Update .po files.Joseph Myers20-168765/+169177
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r270991
2019-05-07PR c++/90171 - reorganize usual_deallocation_fn_pJason Merrill2-82/+70
When fixing 90171 it struck me as undesirable to have so many separate functions that all needed to know about the definition of a usual deallocation function. So this patch condenses them into one. I left destroying_delete_p because it is used by other files as well. * call.c (struct dealloc_info): New. (usual_deallocation_fn_p): Take a dealloc_info*. (aligned_deallocation_fn_p, sized_deallocation_fn_p): Remove. (build_op_delete_call): Adjust. From-SVN: r270986
2019-05-07PR c++/86485 - -Wmaybe-unused with empty class ?:Jason Merrill2-2/+6
* typeck.c (build_static_cast_1): Use cp_build_addr_expr. For GCC 9 I fixed this bug with a patch to gimplify_cond_expr, but this function was also doing the wrong thing. Using build_address does not push the ADDR_EXPR down into the arms of a COND_EXPR, which we need for proper handling of conversion of an lvalue ?: to another reference type. From-SVN: r270985
2019-05-07A non-type template parm with a placeholder type is type-dependent.Jason Merrill2-0/+12
* pt.c (type_dependent_expression_p): A non-type template parm with a placeholder type is type-dependent. From-SVN: r270984
2019-05-08rs6000: Remove reload leftoversSegher Boessenkool4-320/+17
There are a few things left in the rs6000 port that are unused now that we do not support old reload anymore. This removes those. * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr): Delete declaration. * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete. (rs6000_debug_legitimize_reload_address): Delete. (rs6000_legitimize_reload_address_ptr): Delete. (rs6000_option_override_internal): Adjust. (mem_operand_gpr): Adjust comment. (legitimate_lo_sum_address_p): Ditto. (rs6000_legitimize_reload_address): Delete. (rs6000_debug_legitimize_reload_address): Delete. * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete. From-SVN: r270983
2019-05-07re PR middle-end/89765 (Multiple problems with vec-insert implementation on ↵Kelvin Nilsen28-8/+3862
PowerPC) gcc/ChangeLog: 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/89765 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic to compute vector element selector for both constant and variable operands. gcc/testsuite/ChangeLog: 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/89765 * gcc.target/powerpc/pr89765-mc.c: New test. * gcc.target/powerpc/vsx-builtin-10c.c: New test. * gcc.target/powerpc/vsx-builtin-10d.c: New test. * gcc.target/powerpc/vsx-builtin-11c.c: New test. * gcc.target/powerpc/vsx-builtin-11d.c: New test. * gcc.target/powerpc/vsx-builtin-12c.c: New test. * gcc.target/powerpc/vsx-builtin-12d.c: New test. * gcc.target/powerpc/vsx-builtin-13c.c: New test. * gcc.target/powerpc/vsx-builtin-13d.c: New test. * gcc.target/powerpc/vsx-builtin-14c.c: New test. * gcc.target/powerpc/vsx-builtin-14d.c: New test. * gcc.target/powerpc/vsx-builtin-15c.c: New test. * gcc.target/powerpc/vsx-builtin-15d.c: New test. * gcc.target/powerpc/vsx-builtin-16c.c: New test. * gcc.target/powerpc/vsx-builtin-16d.c: New test. * gcc.target/powerpc/vsx-builtin-17c.c: New test. * gcc.target/powerpc/vsx-builtin-17d.c: New test. * gcc.target/powerpc/vsx-builtin-18c.c: New test. * gcc.target/powerpc/vsx-builtin-18d.c: New test. * gcc.target/powerpc/vsx-builtin-19c.c: New test. * gcc.target/powerpc/vsx-builtin-19d.c: New test. * gcc.target/powerpc/vsx-builtin-20c.c: New test. * gcc.target/powerpc/vsx-builtin-20d.c: New test. * gcc.target/powerpc/vsx-builtin-9c.c: New test. * gcc.target/powerpc/vsx-builtin-9d.c: New test. From-SVN: r270982
2019-05-07i386.md (cvt_mnemonic): New mode attribute.Uros Bizjak2-26/+20
* config/i386/i386.md (cvt_mnemonic): New mode attribute. (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and ashrdi3_cvt using SWI48 mode iterator. From-SVN: r270981
2019-05-07This patch adds support to vectorize sum of abslolute differences (SAD_EXPR)Alejandro Martinez6-0/+119
using SVE. Given this input code: int sum_abs (uint8_t *restrict x, uint8_t *restrict y, int n) { int sum = 0; for (int i = 0; i < n; i++) { sum += __builtin_abs (x[i] - y[i]); } return sum; } The resulting SVE code is: 0000000000000000 <sum_abs>: 0: 7100005f cmp w2, #0x0 4: 5400026d b.le 50 <sum_abs+0x50> 8: d2800003 mov x3, #0x0 // #0 c: 93407c42 sxtw x2, w2 10: 2538c002 mov z2.b, #0 14: 25221fe0 whilelo p0.b, xzr, x2 18: 2538c023 mov z3.b, #1 1c: 2518e3e1 ptrue p1.b 20: a4034000 ld1b {z0.b}, p0/z, [x0, x3] 24: a4034021 ld1b {z1.b}, p0/z, [x1, x3] 28: 0430e3e3 incb x3 2c: 0520c021 sel z1.b, p0, z1.b, z0.b 30: 25221c60 whilelo p0.b, x3, x2 34: 040d0420 uabd z0.b, p1/m, z0.b, z1.b 38: 44830402 udot z2.s, z0.b, z3.b 3c: 54ffff21 b.ne 20 <sum_abs+0x20> // b.any 40: 2598e3e0 ptrue p0.s 44: 04812042 uaddv d2, p0, z2.s 48: 1e260040 fmov w0, s2 4c: d65f03c0 ret 50: 1e2703e2 fmov s2, wzr 54: 1e260040 fmov w0, s2 58: d65f03c0 ret Notice how udot is used inside a fully masked loop. gcc/Changelog: 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com> * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand. (aarch64_<su>abd<mode>_3): Likewise. (*aarch64_<su>abd<mode>_3): New define_insn. (<sur>sad<vsi2qi>): New define_expand. * config/aarch64/iterators.md: Added MAX_OPP attribute. * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR. (build_vect_cond_expr): Likewise. gcc/testsuite/Changelog: 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com> * gcc.target/aarch64/sve/sad_1.c: New test for sum of absolute differences. From-SVN: r270975
2019-05-07cfgexpand.c (asm_clobber_reg_is_valid): Reject clobbers outside of ↵Uros Bizjak7-23/+52
accessible_reg_set. * cfgexpand.c (asm_clobber_reg_is_valid): Reject clobbers outside of accessible_reg_set. * config/i386/i386.c (ix86_conditional_register_usage): Disable register sets by clearing corresponding bits in accessible_reg_set. Do not set corresponding bits in fixed_regs, call_used_regs and don't clear corresponding reg_names array members. testsuite/ChangeLog: * gcc.target/i386/asm-7.c: New test. * gcc.target/i386/asm-1.c: Update expected error string. * gcc.target/i386/pr62120.c: Ditto. From-SVN: r270955
2019-05-07Fix make install-gcc-specs with empty GCC_SPECS_FILESRainer Orth2-3/+7
* gcc-interface/Makefile.in (install-gcc-specs): Use foreach. Honor DESTDIR. From-SVN: r270947
2019-05-07tree-vect-stmts.c (vect_is_simple_cond): When vectype is not specified still ↵Richard Biener2-1/+8
compute a comp_vectype for invariant compares. 2019-05-07 Richard Biener <rguenther@suse.de> * tree-vect-stmts.c (vect_is_simple_cond): When vectype is not specified still compute a comp_vectype for invariant compares. From-SVN: r270945
2019-05-07re PR tree-optimization/90316 (large compile time increase in opt / alias ↵Richard Biener2-10/+18
stmt walking for Go example) 2019-05-07 Richard Biener <rguenther@suse.de> PR tree-optimization/90316 * tree-ssa-pre.c (translate_vuse_through_block): When same_valid is NULL do not bother to search for a virtual PHI continuation. (phi_translate_1): When operands changed we cannot keep the same value-number so do not bother to ask whether that's possible from translate_vuse_through_block. From-SVN: r270944
2019-05-07Fix bitmap registration of overheads.Martin Liska4-15/+64
2019-05-07 Martin Liska <mliska@suse.cz> * bitmap.c (bitmap_register): Come up with alloc_descriptor_max_uid and assign it for a new bitmap. (register_overhead): Use get_descriptor as a descriptor. (release_overhead): New. (bitmap_elem_to_freelist): Call it. (bitmap_elt_clear_from): Likewise. (bitmap_obstack_free): Likewise. (bitmap_move): Sensitively release memory. * bitmap.h (struct GTY): Add alloc_descriptor and padding. (bitmap_initialize): Initialize alloc_descriptor to zero. * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move. From-SVN: r270942
2019-05-07tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever we build a SLP node.Richard Biener2-27/+21
2019-05-07 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever we build a SLP node. Remove max_size and limiting. (vect_analyze_slp_instance): Record and dump size of the SLP graph. From-SVN: r270941
2019-05-07re PR tree-optimization/90316 (large compile time increase in opt / alias ↵Richard Biener6-43/+61
stmt walking for Go example) 2019-05-07 Richard Biener <rguenther@suse.de> PR tree-optimization/90316 * tree-ssa-alias.h (get_continuation_for_phi): Take walking limit by reference. (walk_non_aliased_vuses): Take walking limit argument. * tree-ssa-alias.c (maybe_skip_until): Take limit and abort walking if it is reached instead of just counting. (get_continuation_for_phi): Likewise. (walk_non_aliased_vuses): Likewise, instead of leaving counter limiting to the callback. * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust. (vn_reference_lookup_3): Likewise. (vn_reference_lookup_pieces): Likewise. (vn_reference_lookup): Likewise. * tree-ssa-pre.c (translate_vuse_through_block): Limit walking. * tree-ssa-scopedtables.c (vuse_eq): Adjust. (avail_exprs_stack::lookup_avail_expr): Likewise. From-SVN: r270940
2019-05-07tree-ssa-alias.c (aliasing_component_refs_p): Continue looking for ↵Jan Hubicka2-11/+20
comparaible types in the second direction even if... * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking for comparaible types in the second direction even if first one hits incomparable type. From-SVN: r270938
2019-05-07re PR lto/90369 (error: could not unlink output file)Richard Biener2-2/+9
2019-05-07 Richard Biener <rguenther@suse.de> PR lto/90369 * lto-wrapper.c (debug_objcopy): Use the original filename including archive offset for the filename used for -save-temps. From-SVN: r270937
2019-05-07Fix Solaris bootstrap: lto-common.c, lto-dump.c format mismatchesRainer Orth3-3/+11
* lto-common.c (lto_file_read): Print section->start as int64_t, section->len as uint64_t. * lto-dump.c (symbol_entry::dump): Print sz as uint64_t. From-SVN: r270935
2019-05-07Fix a typo in two_value_replacement functionLi Jia He5-4/+45
GCC revision 267634 implemented two_value_replacement function. However, a typo occurred during the parameter check, which caused us to miss some optimizations. The intent of the code might be to check that the input parameters are const int and their difference is one. However, when I read the code, I found that it is wrong to detect whether an input data plus one is equal to itself. This could be a typo. 2019-05-07 Li Jia He <helijia@linux.ibm.com> * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter detection. * gcc.dg/tree-ssa/pr37508.c: Add the no-ssa-phiopt option to skip phi optimization. * gcc.dg/tree-ssa/pr88676-2.c: New testcase. From-SVN: r270934
2019-05-07Daily bump.GCC Administrator1-1/+1
From-SVN: r270933
2019-05-07rs6000: Renumber the registersSegher Boessenkool5-188/+228
This renumbers the registers. It moves the VRs to 64..95, right after the GPRs and the FPRS. This means that the VSRs (which are aliases to the FPRs and the VRs, in that order) are consecutive now. It removes MQ, which has been just a stub for ages (it is a leftover from RIOS, old POWER). It moves the CR fields to 100..107, which is a bit easier to read than the 68..75 is was before. The rest fills the holes. It should be easy to move anything else after this series, so the exact order isn't very important anymore, we aren't stuck with it if we dislike it. Many things still want the GPRs to be at 0..31, and some things want the FPRs at 32..63. I don't think we'll ever want to change that, so I left it be. Small things... It removes DWARF_FRAME_REGISTERS, it used to save 1000 or so words of memory, but it has been just a handful for a while, and now it is one. Some whitespace fixes. Testing showed one or two places where register allocation was different (not worse, not better, just different). * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO) (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO) (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO) (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO) (FRAME_POINTER_REGNUM): Change numbering. * config/rs6000/rs6000.c (rs6000_reg_names): Adjust. (alt_reg_names): Adjust. (rs6000_conditional_register_usage): Don't mark hard register 64 as fixed. * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. (DWARF_FRAME_REGISTERS): Delete. (DWARF2_FRAME_REG_OUT): Fix whitespace. (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Adjust. (REG_ALLOC_ORDER): Adjust. (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust. (REG_CLASS_CONTENTS): Adjust. (RETURN_ADDR_RTX): Change comment. (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM instead of 67. (REGISTER_NAMES): Adjust. (ADDITIONAL_REGISTER_NAMES): Adjust. * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. From-SVN: r270929
2019-05-06re PR fortran/90290 (-std=f2008 should reject non-constant stop and error ↵Steven G. Kargl4-3/+31
stop codes) 2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90290 * match.c (gfc_match_stopcode): Check F2008 condition on stop code. 2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90290 * gfortran.dg/pr90290.f90: New test. From-SVN: r270928
2019-05-07rs6000: Remove TM regsSegher Boessenkool7-94/+38
We do not need to expose the TM registers in debug info. It isn't actually useful there, because none of the things that can modify these registers (other than explicit moves) are marked. We also do not need the registers for GCC itself internally. This patch deletes them. * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): Delete. * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. (DWARF_FRAME_REGISTERS): Adjust. (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Adjust. (REG_ALLOC_ORDER): Adjust. (enum reg_class): Delete SPR_REGS. (REG_CLASS_NAMES): Delete SPR_REGS. (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs. (REGISTER_NAMES): Adjust. (ADDITIONAL_REGISTER_NAMES): Adjust. * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust. * config/rs6000/predicates.md (htm_spr_reg_operand): Delete. * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust. (htm_spr_regno): Delete. (htm_expand_builtin): Adjust: the HTM builtins now have one fewer argument. (rs6000_dbx_register_number): Adjust. From-SVN: r270927
2019-05-07rs6000: Delete PRE_GCC3_DWARF_FRAME_REGISTERSSegher Boessenkool2-3/+4
We don't need this. * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete. From-SVN: r270926
2019-05-07rs6000: rs6000_dbx_register_number for fp/ap/mqSegher Boessenkool2-2/+22
The frame pointer and the argument pointer aren't real registers. MQ was a register on old POWER. All three are still used as arguments to rs6000_dbx_register_number during initialisation. If we handle them explicitly we can do a gcc_unreachable to catch other unexpected registers. * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ). From-SVN: r270925
2019-05-06re PR tree-optimization/88709 (Improve store-merging)Jakub Jelinek8-21/+296
PR tree-optimization/88709 PR tree-optimization/90271 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter. * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int variable. (imm_store_chain_info::coalesce_immediate_stores): Punt if the size of the store merging group is larger than PARAM_STORE_MERGING_MAX_SIZE parameter. (split_group): Add bzero_first argument. If set, always emit first the first store which must be = {} of the whole area and then for the rest of the stores consider all zero bytes as paddings. (imm_store_chain_info::output_merged_store): Check if first store is = {} of the whole area and if yes, determine which setting of bzero_first for split_group gives smaller number of stores. Adjust split_group callers. (lhs_valid_for_store_merging_p): Allow decls. (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with no elts. (pass_store_merging::process_store): Likewise. * gcc.dg/store_merging_26.c: New test. * gcc.dg/store_merging_27.c: New test. * gcc.dg/store_merging_28.c: New test. * gcc.dg/store_merging_29.c: New test. From-SVN: r270924
2019-05-06re PR target/89424 (__builtin_vec_ext_v1ti (v, i) results in ICE with ↵Kelvin Nilsen8-4/+100
variable i (RS6000)) gcc/ChangeLog: 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/89424 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add handling of V1TImode. gcc/testsuite/ChangeLog: 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/89424 * gcc.target/powerpc/pr89424-0.c: New test. * gcc.target/powerpc/vsx-builtin-13a.c: Define macro PR89424 to enable testing of newly patched capability. * gcc.target/powerpc/vsx-builtin-13b.c: Likewise. * gcc.target/powerpc/vsx-builtin-20a.c: Likewise. * gcc.target/powerpc/vsx-builtin-20b.c: Likewise. From-SVN: r270918
2019-05-06PR c++/90265 - ICE with generic lambda.Marek Polacek4-1/+17
* pt.c (tsubst_copy_and_build): Use a dedicated variable for the last element in the vector. * g++.dg/cpp1y/lambda-generic-90265.C: New test. From-SVN: r270917
2019-05-06re PR target/89221 (--enable-frame-pointer does not work as intended)Uros Bizjak6-29/+42
PR target/89221 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld and enable_frame_pointer ... * configure.ac: ... here. Update help strings for --enable-frame-pointer. * configure: Regenerate. * config/i386/i386-options.c (ix86_option_override_internal): Remove USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead. * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove. (USE_X86_64_FRAME_POINTER): Ditto. From-SVN: r270914
2019-05-06Append to target_gtfiles in order to fix Darwin bootstrap.Martin Liska2-6/+10
2019-05-06 Martin Liska <mliska@suse.cz> * config.gcc: Append to target_gtfiles and fix indentation. From-SVN: r270913
2019-05-06re PR tree-optimization/90358 (526.blender_r train run does not finish after ↵Richard Biener4-1/+50
r270847 on znver1) 2019-05-06 Richard Biener <rguenther@suse.de> PR tree-optimization/90358 * tree-vect-stmts.c (get_group_load_store_type): Properly detect unused upper half of load. (vectorizable_load): Likewise. * gcc.target/i386/pr90358.c: New testcase. From-SVN: r270911
2019-05-06This reverts commit r270894, as new testcase fails on arm and aarch64, I am ↵Li Jia He5-45/+4
sorry for this. From-SVN: r270910
2019-05-06re PR tree-optimization/88828 (Inefficient update of the first element of ↵Richard Biener4-55/+143
vector registers) 2019-05-06 Richard Biener <rguenther@suse.de> PR tree-optimization/88828 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from... (simplify_vector_constructor): ...here. Handle constants in the constructor. * gcc.target/i386/pr88828-0.c: New testcase. From-SVN: r270908
2019-05-06re PR tree-optimization/90328 (Wrong loop distribution with aliasing)Richard Biener6-4/+52
2019-05-06 Richard Biener <rguenther@suse.de> PR tree-optimization/90328 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. * tree-data-ref.c (dr_may_alias_p): Check whether the clique is valid in the loop nest before using it. (initialize_data_dependence_relation): Adjust. * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing loop as loop-nest to dr_may_alias_p. * gcc.dg/torture/pr90328.c: New testcase. From-SVN: r270906
2019-05-06[libcpp] struct deps renamingNathan Sidwell2-5/+6
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00199.html libcpp/ * include/mkdeps.h: Rename struct deps to struct mkdeps. * mkdeps.c: Likewise. * include/cpplib.h (cpp_get_deps): Rename return type.. * directives.c (cpp_get_deps): Likewise. * internal.h (struct cpp_reader): Rename deps field type. gcc/c-family/ * c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps. From-SVN: r270905
2019-05-06dwarf2out.c (mem_loc_descriptor): Initialize int_mode.Richard Biener2-1/+5
2019-05-06 Richard Biener <rguenther@suse.de> * dwarf2out.c (mem_loc_descriptor): Initialize int_mode. From-SVN: r270903
2019-05-06re PR tree-optimization/90316 (large compile time increase in opt / alias ↵Richard Biener2-39/+29
stmt walking for Go example) 2019-05-06 Richard Biener <rguenther@suse.de> PR tree-optimization/90316 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB, compute target on demand. (get_continuation_for_phi): Remove code walking stmts to get to a target virtual operand which could end up being quadratic. From-SVN: r270902
2019-05-06re PR testsuite/90331 (New test case gcc.dg/pr87314-1.c fails)Richard Biener2-2/+8
2019-05-06 Richard Biener <rguenther@suse.de> PR testsuite/90331 * gcc.dg/pr87314-1.c: Align the substring to open up string merging for targets aligning strings to 8 bytes. From-SVN: r270900
2019-05-06Error only when a non-default -mabi is used with sanitizers (PR ↵Martin Liska5-8/+26
sanitizer/90312). 2019-05-06 Martin Liska <mliska@suse.cz> PR sanitizer/90312 * config/i386/i386-options.c (ix86_option_override_internal): Error only when -mabi is selected to a non-default version. 2019-05-06 Martin Liska <mliska@suse.cz> PR sanitizer/90312 * gcc.dg/asan/pr87930.c: Run the test only on *linux or *gnu systems. * gcc.dg/tsan/pr88017.c: Likewise. From-SVN: r270899
2019-05-06Fix GNU coding style in lto-common.c.Martin Liska3-116/+133
2019-05-06 Martin Liska <mliska@suse.cz> * lto-common.c: Update coding style. * lto.c (materialize_cgraph): Likewise. From-SVN: r270898
2019-05-06Add lto-dump tool.Hrishikesh Kulkarni17-43/+721
2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com> Martin Liska <mliska@suse.cz> * Makefile.in: Add lto-dump.texi. * cgraph.h: Add new functions get_visibility_string and get_symtab_type_string. * doc/gcc.texi: Include lto-dump section. * doc/lto-dump.texi: New file. * dumpfile.c (dump_switch_p_1): Use parse_dump_option. (parse_dump_option): Factor out this function. * dumpfile.h (enum dump_flag): Add new value TDF_ERROR. (parse_dump_option): Export the function. * symtab.c (symtab_node::get_visibility_string): New function. (symtab_node::get_symtab_type_string): Likewise. 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com> Martin Liska <mliska@suse.cz> * Make-lang.in: Add lto_dump-related definition. * config-lang.in: Likewise. * lang.opt: Add new language LTODump and options related to LTO dump tool. * lto-common.c (lto_read_decls): Support type statistics dump. (lto_file_read): Likewise for object files. * lto-dump.c: New file. * lto-lang.c (lto_option_lang_mask): Move from .. * lto.c (lto_option_lang_mask): .. here. * lto.h (lto_option_lang_mask): New declaration. Co-Authored-By: Martin Liska <mliska@suse.cz> From-SVN: r270897
2019-05-06Split part of functionality from lto.c to lto-common.c.Martin Liska7-2811/+2908
2019-05-06 Martin Liska <mliska@suse.cz> Hrishikesh Kulkarni <hrishikeshparag@gmail.com> * Make-lang.in: Add lto-common.o. * config-lang.in: Likewise for gtfiles. * lto-common.c: New file. * lto-common.h: New file. * lto-lang.c: Include lto-common.h. * lto.c: Move most of the functionality into lto-common.c file. Co-Authored-By: Hrishikesh Kulkarni <hrishikeshparag@gmail.com> From-SVN: r270896
2019-05-06Split i386.c.Martin Liska13-28958/+29588
2019-05-06 Martin Liska <mliska@suse.cz> * config/i386/i386-builtins.c: New file. * config/i386/i386-builtins.h: New file. * config/i386/i386-expand.c: New file. * config/i386/i386-expand.h: New file. * config/i386/i386-features.c: New file. * config/i386/i386-features.h: New file. * config/i386/i386-options.c: New file. * config/i386/i386-options.h: New file. * config.gcc: Add new files into extra_objs and target_gtfiles. * config/i386/i386.c: Split content of the file into newly introduced files. * config/i386/i386.h: Declare common variables and macros. * config/i386/t-i386: Define dependencies for new files. From-SVN: r270895