aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-07-19re PR tree-optimization/81346 (Missed constant propagation into comparison)Jakub Jelinek4-0/+40
PR tree-optimization/81346 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0. * gcc.dg/tree-ssa/pr81346-5.c: New test. From-SVN: r250342
2017-07-19Add v2di support for nvptxTom de Vries11-6/+162
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: Add V2DImode. * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. (nvptx_output_mov_insn): Handle lack of mov.b128. (nvptx_print_operand): Handle 'H' and 'L' codes. (nvptx_vector_mode_supported): Allow V2DImode. (nvptx_preferred_simd_mode): New function. (nvptx_data_alignment): New function. (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to nvptx_preferred_simd_mode. * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from 64 to 128 bits. (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. * config/nvptx/nvptx.md (VECIM): Add V2DI. * gcc.target/nvptx/decl-init.c: Update alignment. * gcc.target/nvptx/slp-2-run.c: New test. * gcc.target/nvptx/slp-2.c: New test. * gcc.target/nvptx/v2di.c: New test. * testsuite/libgomp.oacc-c/vec.c: New test. From-SVN: r250341
2017-07-19Add v2si support for nvptxTom de Vries11-0/+261
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: New file. Add V2SImode. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode. (nvptx_vector_mode_supported): New function. Allow V2SImode. (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported. * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI. (mov<VECIM>_insn): New define_insn. (define_expand "mov<VECIM>): New define_expand. * gcc.target/nvptx/slp-run.c: New test. * gcc.target/nvptx/slp.c: New test. * gcc.target/nvptx/v2si-cvt.c: New test. * gcc.target/nvptx/v2si-run.c: New test. * gcc.target/nvptx/v2si.c: New test. * gcc.target/nvptx/vec.inc: New test. From-SVN: r250340
2017-07-19Add generic v2 vector mode support for nvptxTom de Vries2-4/+37
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode. From-SVN: r250339
2017-07-19re PR tree-optimization/81346 (Missed constant propagation into comparison)Jakub Jelinek10-147/+430
PR tree-optimization/81346 * fold-const.h (fold_div_compare, range_check_type): Declare. * fold-const.c (range_check_type): New function. (build_range_check): Use range_check_type. (fold_div_compare): No longer static, rewritten into a match.pd helper function. (fold_comparison): Don't call fold_div_compare here. * match.pd (X / C1 op C2): New optimization using fold_div_compare as helper function. * gcc.dg/tree-ssa/pr81346-1.c: New test. * gcc.dg/tree-ssa/pr81346-2.c: New test. * gcc.dg/tree-ssa/pr81346-3.c: New test. * gcc.dg/tree-ssa/pr81346-4.c: New test. * gcc.target/i386/umod-3.c: Hide comparison against 1 from the compiler to avoid X / C1 op C2 optimization to trigger. From-SVN: r250338
2017-07-19tree.h (TYPE_MINVAL, [...]): Rename to ...Nathan Sidwell12-45/+74
gcc/ * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ... (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these. * tree.c (find_decls_types_r, verify_type): Use TYPE_{MIN,MAX}_VALUE_RAW. * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise. (hash_tree): Likewise. * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): Likewise. * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): Likewise. gcc/cp/ * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS, PACK_EXPANSION_EXTRA_ARGS): Use TYPE_{MIN,MAX}_VALUE_RAW. gcc/lto/ * lto.c (mentions_vars_p_type): Use TYPE_{MIN,MAX}_VALUE_RAW. (compare_tree_sccs_1, lto_fixup_prevailing_decls): Likewise. gcc/objc/ * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use TYPE_{MIN,MAX}_VALUE_RAW. From-SVN: r250337
2017-07-19Fix an UBSAN test-case (PR sanitizer/63361).Martin Liska2-1/+8
2017-07-19 Martin Liska <mliska@suse.cz> PR sanitizer/63361 * c-c++-common/ubsan/float-cast-overflow-1.c: Add either -ffloat-store or -mieee for targets that need it. From-SVN: r250336
2017-07-19Handle equal-argument loop exit phi in expand_omp_for_static_chunkTom de Vries4-0/+34
2017-07-18 Tom de Vries <tom@codesourcery.com> PR middle-end/81464 * omp-expand.c (expand_omp_for_static_chunk): Handle equal-argument loop exit phi. * gfortran.dg/pr81464.f90: New test. From-SVN: r250335
2017-07-19Daily bump.GCC Administrator1-1/+1
From-SVN: r250332
2017-07-18compiler: insert backend type conversion for closure func ptrIan Lance Taylor2-2/+9
In Func_expression::do_get_backend when creating the backend representation for a closure, create a backend type conversion to account for potential differences between the closure struct type (where the number of fields is dependent on the number of values referenced in the closure) and the generic function descriptor type (struct with single function pointer field). Reviewed-on: https://go-review.googlesource.com/49255 From-SVN: r250327
2017-07-18re PR go/81451 (missing futex check - libgo/runtime/thread-linux.c:12:0 ↵Ian Lance Taylor1-1/+1
futex.h:13:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘long’) PR go/81451 runtime: inline runtime_osinit We had two identical copies of runtime_osinit. They set runtime_ncpu, a variable that is no longer used. Removing that leaves us with two lines. Inline those two lines in the two places the function was called. This fixes GCC PR 81451. Reviewed-on: https://go-review.googlesource.com/48862 From-SVN: r250326
2017-07-18compiler: pass correct 'function' flag to circular_pointer_typeIan Lance Taylor2-3/+3
The code in Named_type::do_get_backend was not passing the correct flag value for circular function types to Backend::circular_pointer_type (it was always setting this flag to false). Pass a true value if the type being converted is a function type. Reviewed-on: https://go-review.googlesource.com/49330 From-SVN: r250325
2017-07-18re PR go/81324 (libgo does not build with glibc 2.18)Ian Lance Taylor1-1/+1
PR go/81324 sysinfo.c: ignore ptrace_peeksiginfo_args from <linux/ptrace.h> With some versions of glibc and GNU/Linux ptrace_pseeksiginfo_args is defined in both <sys/ptrace.h> and <linux/ptrace.h>. We don't actually care about the struct, so use a #define to avoid a redefinition error. This fixes https://gcc.gnu.org/PR81324. Reviewed-on: https://go-review.googlesource.com/49290 From-SVN: r250324
2017-07-18re PR target/81471 (internal compiler error: in curr_insn_transform, at ↵Uros Bizjak4-7/+41
lra-constraints.c:3495) PR target/81471 * config/i386/i386.md (rorx_immediate_operand): New mode attribute. (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as operand 2 predicate. (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as operand 2 predicate. (ror,rol -> rorx splitters): Use const_int_operand as operand 2 predicate. testsuite/ChangeLog: PR target/81471 * gcc.target/i386/pr81471.c: New test. From-SVN: r250315
2017-07-18re PR tree-optimization/81410 (-O3 breaks code)Richard Biener4-4/+77
2017-06-18 Richard Biener <rguenther@suse.de> PR tree-optimization/81410 * tree-vect-stmts.c (vectorizable_load): Properly adjust for the gap in the ! slp_perm SLP case after each group. * gcc.dg/vect/pr81410.c: New testcase. From-SVN: r250312
2017-07-18re PR tree-optimization/81463 (ICE in scale_loop_profile at ↵Jan Hubicka2-1/+7
gcc/cfgloopmanip.c:603) PR middle-end/81463 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency again. From-SVN: r250311
2017-07-18re PR tree-optimization/81462 (ICE in estimate_bb_frequencies at ↵Jan Hubicka4-8/+47
gcc/predict.c:3546) PR middle-end/81462 * predict.c (set_even_probabilities): Cleanup; do not affect probabilities that are already known. (combine_predictions_for_bb): Call even when count is set. * g++.dg/torture/pr81462.C: New testcase. From-SVN: r250310
2017-07-18tree-parloops.c (try_transform_to_exit_first_loop_alt): Use TYPE_MAX_VALUE.Nathan Sidwell10-19/+39
gcc/ * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use TYPE_MAX_VALUE. gcc/c-family/ * c-warn.c (warn_for_memset): Use TYPE_{MIN,MAX}_VALUE. gcc/c/ * c-parser.c (c_parser_array_notation): Use TYPE_{MIN,MAX}_VALUE. gcc/cp/ * cp-array-notation.c (build_array_notation_ref): Use TYPE_{MIN,MAX}_VALUE. gcc/fortran/ * trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE. From-SVN: r250309
2017-07-18gcc: ada: delete old $(P) referenceMike Frysinger2-2/+6
The P variable was deleted back in Nov 2015 (svn rev 231062), but its expansion was missed. Delete those now too. From-SVN: r250307
2017-07-18class.c (classtype_has_move_assign_or_move_ctor): Declare.Nathan Sidwell3-29/+17
* class.c (classtype_has_move_assign_or_move_ctor): Declare. (add_implicitly_declared_members): Use it. (type_has_move_constructor, type_has_move_assign): Merge into ... (classtype_has_move_assign_or_move_ctor): ... this new function. * cp-tree.h (type_has_move_constructor, type_has_move_assign): Delete. From-SVN: r250305
2017-07-18re PR middle-end/81408 (Lots of new -Wunsafe-loop-optimizations warnings ↵Bin Cheng5-8/+112
with 7 compared to 6) PR target/81408 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed optimization for loop niter analysis. gcc/testsuite * g++.dg/tree-ssa/pr81408.C: New. * gcc.dg/tree-ssa/pr19210-1.c: Check dump message rather than warning. From-SVN: r250304
2017-07-18re PR target/81473 ([avr] build fails due to INT8_MIN and friends.)Georg-Johann Lay2-3/+9
gcc/ PR target/81473 * config/avr/avr.c (avr_optimize_casesi): Don't use INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. From-SVN: r250301
2017-07-18Fix PR81362: Vector peelingRobin Dapp2-22/+16
npeel was erroneously overwritten by vect_peeling_hash_get_lowest_cost although the corresponding dataref is not used afterwards. It should be safe to get rid of the npeel parameter since we use the returned peeling_info's npeel anyway. Also removed the body_cost_vec parameter which is not used elsewhere. gcc/ChangeLog: 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove body_cost_vec from _vect_peel_extended_info. (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec. (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and npeel. From-SVN: r250300
2017-07-18* config/arm/arm.c (emit_unlikely_jump): Remove unused var.Bin Cheng2-2/+4
From-SVN: r250299
2017-07-18re PR tree-optimization/80620 (gcc produces wrong code with -O3)Richard Biener5-2/+120
2017-07-18 Richard Biener <rguenther@suse.de> PR tree-optimization/80620 PR tree-optimization/81403 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to info when re-using a VN table entry. * gcc.dg/torture/pr80620.c: New testcase. * gcc.dg/torture/pr81403.c: Likewise. From-SVN: r250297
2017-07-18re PR tree-optimization/81418 (ICE in vect_get_vec_def_for_stmt_copy)Richard Biener4-23/+68
2017-06-18 Richard Biener <rguenther@suse.de> PR tree-optimization/81418 * tree-vect-loop.c (vectorizable_reduction): Properly compute vectype_in. Verify that with lane-reducing reduction operations we have a single def-use cycle. * gcc.dg/torture/pr81418.c: New testcase. From-SVN: r250296
2017-07-18Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>Carl Love7-115/+38
gcc/ChangeLog: 2017-07-17 Carl Love <cel@us.ibm.com> Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, VMULOSW): New enum "unspec" values. (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, altivec_vmulosw): New patterns. * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, VMULOSW): Add definitions. gcc/testsuite/ChangeLog: 2017-07-17 Carl Love <cel@us.ibm.com> Revert commit r249572 2017-06-22 Carl Love <cel@us.ibm.com> test case changes for commit 249424 * gcc.target/powerpc/builtins-2.c (vmulosh, vmulouh, vmulesh, vmuleuh): Fix scan-assembler-times should check for word not half word instructions. From-SVN: r250295
2017-07-18Daily bump.GCC Administrator1-1/+1
From-SVN: r250294
2017-07-17alpha.c: Include predict.h.Uros Bizjak2-0/+5
* config/alpha/alpha.c: Include predict.h. From-SVN: r250290
2017-07-17re PR tree-optimization/81162 (UBSAN switch triggers incorrect optimization ↵Bill Schmidt2-0/+6
in SLSR) 2017-07-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/81162 * gcc.dg/pr81162.c: Move this to... * gcc.dg/ubsan/pr81162.c: ...here. From-SVN: r250284
2017-07-17parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for friend outside ↵Volker Reichelt5-7/+35
class and obsolete auto as... * parser.c (cp_parser_decl_specifier_seq): Add fix-it hints for friend outside class and obsolete auto as storage-class-specifier. * g++.dg/diagnostic/friend1.C: New test. * g++.dg/cpp0x/auto1.C: Add check for fix-it hint. From-SVN: r250282
2017-07-17class.c (maybe_warn_about_overly_private_class): Ignore public copy ctors.Nathan Sidwell4-9/+42
* class.c (maybe_warn_about_overly_private_class): Ignore public copy ctors. * g++.dg/warn/ctor-dtor-privacy-3.C: New. From-SVN: r250281
2017-07-17class.c (type_has_user_declared_move_constructor, [...]): Combine into ...Nathan Sidwell5-45/+31
* class.c (type_has_user_declared_move_constructor, type_has_user_declared_move_assign): Combine into ... (classtype_has_user_move_assign_or_move_ctor_p): ... this new function. * cp-tree.h (type_has_user_declared_move_constructor, type_has_user_declared_move_assign): Combine into ... (classtype_has_user_move_assign_or_move_ctor_p): ... this. Declare. * method.c (maybe_explain_implicit_delete): Use it. (lazily_declare_fn): Use it. * tree.c (type_has_nontrivial_copy_init): Use it. From-SVN: r250280
2017-07-17gcc-dg.exp: Increase expect's match buffer size.Bernd Edlinger2-0/+7
2017-07-17 Bernd Edlinger <bernd.edlinger@hotmail.de> * lib/gcc-dg.exp: Increase expect's match buffer size. From-SVN: r250279
2017-07-17tree-vrp.c (compare_assert_loc): Fix comparison function to return ↵Yury Gribov2-1/+6
predictable results. 2017-07-17 Yury Gribov <tetra2005@gmail.com> gcc/ * tree-vrp.c (compare_assert_loc): Fix comparison function to return predictable results. From-SVN: r250278
2017-07-17[ARC] Deprecate mexpand-adddi option.Claudiu Zissulescu4-40/+11
Emitting subregs in the expand will result in broken code due to LRA handling of them. Issue observed while turning on mlra and mexpand-adddi options using dejagnu test suite. Deprecate this option. gcc/ 2017-04-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (adddi3): Remove support for mexpand-adddi option. (subdi3): Likewise. * config/arc/arc.opt (mexpand-adddi): Deprecate it. * doc/invoke.texi (mexpand-adddi): Update text. From-SVN: r250276
2017-07-17[ARC] [LRA] Avoid emitting COND_EXEC during expand.Claudiu Zissulescu2-7/+44
Emmitting COND_EXEC rtxes during expand does introduces errors due to LRA handling of them. Issue discovered while running dejagnu test suit with mlra option on. gcc/ 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction that also clobbers the CC register. The old expand code is moved to ... (*arc_clzsi2): ... here. (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers the CC register. The old expand code is moved to ... (arc_ctzsi2): ... here. From-SVN: r250275
2017-07-17[ARC] Enable indexed loads for elf targers.Claudiu Zissulescu4-2/+29
Enable indexed loads only for elf target, as the linux ones need more testing. gcc/ 2017-02-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.opt (mindexed-loads): Use initial value TARGET_INDEXED_LOADS_DEFAULT. (mauto-modify-reg): Use initial value TARGET_AUTO_MODIFY_REG_DEFAULT. * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define. (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define. (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. From-SVN: r250274
2017-07-17semantics.c (classtype_has_nothrow_assign_or_copy_p): Clarify semantics, ↵Nathan Sidwell2-20/+17
simplify implementation. * semantics.c (classtype_has_nothrow_assign_or_copy_p): Clarify semantics, simplify implementation. From-SVN: r250272
2017-07-17Do not allow -fgnu-tm w/ -fsanitize={kernel-,}address (PR sanitizer/81302).Martin Liska2-0/+13
2017-07-17 Martin Liska <mliska@suse.cz> PR sanitizer/81302 * opts.c (finish_options): Do not allow -fgnu-tm w/ -fsanitize={kernel-,}address. Say sorry. From-SVN: r250271
2017-07-17re PR tree-optimization/81369 (ICE in generate_code_for_partition)Bin Cheng2-13/+21
PR target/81369 * tree-loop-distribution.c (classify_partition): Only assert on numer of iterations. (merge_dep_scc_partitions): Delete prameter. Update function call. (distribute_loop): Remove code handling loop with unknown niters. (pass_loop_distribution::execute): Skip loop with unknown niters. From-SVN: r250270
2017-07-17re PR tree-optimization/81369 (ICE in generate_code_for_partition)Bin Cheng4-1/+36
PR target/81369 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to function sort_partitions_by_post_order. gcc/testsuite * gcc.dg/tree-ssa/pr81369.c: New. From-SVN: r250269
2017-07-17re PR tree-optimization/81374 (ICE in bb_top_order_cmp, at ↵Bin Cheng2-3/+10
tree-loop-distribution.c:391) PR tree-optimization/81374 * tree-loop-distribution.c (pass_loop_distribution::execute): Record the max index of basic blocks, rather than number of basic blocks. From-SVN: r250268
2017-07-17[ARC] Consolidate PIC implementation.Claudiu Zissulescu9-112/+167
This patch refactors a number of functions and compiler hooks into using a single function which checks if a rtx is suited for pic or not. Removed functions are arc_legitimate_pc_offset_p and arc_legitimate_pic_operand_p beeing replaced by calls to arc_legitimate_pic_addr_p. Thus we have an unitary way of checking a rtx beeing pic. gcc/ 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove proto. (arc_legitimate_pic_operand_p): Likewise. * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove function. (arc_needs_pcl_p): Likewise. (arc_legitimate_pc_offset_p): Likewise. (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this function is also used in constrains.md. (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and PLUS. Only return true/false in known cases, otherwise assert. (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it is already called in arc_legitimate_constant_p. * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for pic addresses. (LEGITIMATE_PIC_OPERAND_P): Use arc_raw_symbolic_reference_mentioned_p function. * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p function. (Cal): Likewise. (C32): Likewise. gcc/testsuite 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/pr9000674901.c: New file. * gcc.target/arc/pic-1.c: Likewise. * gcc.target/arc/pr9001191897.c: Likewise. From-SVN: r250267
2017-07-17[PATCH] [ARC] Add support for naked functions.Claudiu Zissulescu8-66/+234
gcc/ 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> Andrew Burgess <andrew.burgess@embecosm.com> * config/arc/arc-protos.h (arc_compute_function_type): Change prototype. (arc_return_address_register): New function. * config/arc/arc.c (arc_handle_fndecl_attribute): New function. (arc_handle_fndecl_attribute): Add naked attribute. (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. (TARGET_WARN_FUNC_RETURN): Likewise. (arc_allocate_stack_slots_for_args): New function. (arc_warn_func_return): Likewise. (machine_function): Change type fn_type. (arc_compute_function_type): Consider new naked function type, change function return type. (arc_must_save_register): Adapt to handle new arc_compute_function_type's return type. (arc_expand_prologue): Likewise. (arc_expand_epilogue): Likewise. (arc_return_address_regs): Delete. (arc_return_address_register): New function. (arc_epilogue_uses): Use above function. * config/arc/arc.h (arc_return_address_regs): Delete prototype. (arc_function_type): Change encoding, add naked type. (ARC_INTERRUPT_P): Change to handle the new encoding. (ARC_FAST_INTERRUPT_P): Likewise. (ARC_NORMAL_P): Define. (ARC_NAKED_P): Likewise. (arc_compute_function_type): Delete prototype. * config/arc/arc.md (in_ret_delay_slot): Use arc_return_address_register function. (simple_return): Likewise. (p_return_i): Likewise. gcc/testsuite 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> Andrew Burgess <andrew.burgess@embecosm.com> * gcc.target/arc/naked-1.c: New file. * gcc.target/arc/naked-2.c: Likewise. Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com> From-SVN: r250266
2017-07-17re PR tree-optimization/81428 (ICE: in build_one_cst, at tree.c:2079 with ↵Jakub Jelinek4-2/+21
-O2. Fixed point division.) PR tree-optimization/81428 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1 can't be built for those types. * gcc.dg/fixed-point/pr81428.c: New test. From-SVN: r250265
2017-07-17Remove stuff dead since r239246.Georg-Johann Lay3-67/+8
* config/avr/avr-arch.h (avr_inform_devices): Remove dead proto. * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str) (avr_inform_devices): Remove dead stuff. From-SVN: r250264
2017-07-17arm_neon.h: Fix softp typo.Tamar Christina2-1/+5
2017-07-17 Tamar Christina <tamar.christina@arm.com> * config/arm/arm_neon.h: Fix softp typo. From-SVN: r250262
2017-07-17re PR tree-optimization/81365 (GCC miscompiles swap)Jakub Jelinek4-1/+76
PR tree-optimization/81365 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting aggregate moves onto bb predecessor edges, make sure there are no loads that could alias the lhs in between the start of bb and the loads from *phi. * g++.dg/torture/pr81365.C: New test. From-SVN: r250261
2017-07-17re PR middle-end/80929 (Division with constant no more optimized to mult ↵Georg-Johann Lay2-10/+44
highpart) PR 80929 * config/avr/avr.c (avr_mul_highpart_cost): New static function. (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost. [LSHIFTRT, outer_code = TRUNCATE]: Same. From-SVN: r250258