- 23 Jul, 2019 23 commits
-
-
gcc/ChangeLog: 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru> * gdbinit.in (reload-gdbhooks): New command with an attached doc string. (rh): New alias for it. From-SVN: r273738
Vladislav Ivanishin committed -
gcc/ChangeLog: 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru> * gdbhooks.py: Pass replace=True to gdb.printing.register_pretty_printer. From-SVN: r273737
Vladislav Ivanishin committed -
2019-07-23 Richard Biener <rguenther@suse.de> PR debug/91231 * lto-streamer-in.c (input_function): Drop inline-entry markers that ended up with an unknown location block. From-SVN: r273733
Richard Biener committed -
2019-07-23 Richard Biener <rguenther@suse.de> PR tree-optimization/83518 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate init from a constant even when partial defs are already recorded. c/ * gimple-parser.c (c_parser_parse_gimple_body): When we have a CFG also rebuild cgraph edges. * gcc.dg/tree-ssa/ssa-fre-79.c: New testcase. From-SVN: r273732
Richard Biener committed -
* i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. * config/i386/znver1.md: Enable patterns for znver2 and add store variants which use extra AGU unit. From-SVN: r273731
Jan Hubicka committed -
* config/i386/i386-options.c (ix86_option_override_internal): Default PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. From-SVN: r273730
Jan Hubicka committed -
From-SVN: r273729
Jan Hubicka committed -
* config/i386/x86-tune-costs.h (znver2_memcpy): Update. (znver2_costs): Update 256 bit SSE costs and multiplication. From-SVN: r273728
Jan Hubicka committed -
2019-07-23 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, Freeze_Entity_Checks): Include Aspect_CPU with other aspects whose expresssion may depend on a discriminant, and thus require that components of the type be made visible. gcc/testsuite/ * gnat.dg/task4.adb: New testcase. From-SVN: r273726
Ed Schonberg committed -
The Generate_Range_Check routine is responsible for generating range checks in the scalar case. It automatically deals with possible overflow in the process when the source and the target base types are different. However there is one case where overflow is not dealt with correctly, namely when the target base type is narrower than the source base type and both are floating-point types. In this case, the routine will convert the source type to the target base type without checking for overflow. In practice this does not matter much because the conversion would yield an infinity on overflow, which would then fail the subsequent range check. However it's more correct to have a proper overflow check with -gnateF than relying on the infinity. 2019-07-23 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * checks.adb (Convert_And_Check_Range): Add Suppress parameter and pass it in the call to Insert_Actions. Rename local variable. (Generate_Range_Check): Minor comment fixes. Pass Range_Check in the first call to Convert_And_Check_Range and All_Checks in the second call. * exp_ch4.adb (Expand_N_Type_Conversion): Reset the Do_Overflow_Check flag in the float-to-float case too if there is also a range check. gcc/testsuite/ * gnat.dg/range_check5.adb: New testcase. From-SVN: r273725
Eric Botcazou committed -
This eliminates redundant overflow checks that are generated for conversions from fixed-point to integer types when range checks are also enabled (which is the default), as the former checks are subsumed into the latter checks. No functional changes. 2019-07-23 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * checks.adb (Activate_Overflow_Check): Remove redundant argument. * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag. (Expand_N_Type_Conversion): Do not reset it here. From-SVN: r273724
Eric Botcazou committed -
This makes sure that the numbers present in the -gnatR output are printed in decimal format in all cases, since the hexadecimal format is not compatible with the JSON syntax. 2019-07-23 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write. (Write_Val): Likewise. From-SVN: r273723
Eric Botcazou committed -
Operational aspects, such as Default_Iterator, are view-specific, and if such an aspect appears on the full view of a private type, an object of the type cannot be iterated upon if it is not in the scope of the full view, This patch diagnoses properly an attempt to iterate over such an object. 2019-07-23 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * aspects.ads: New table Operational_Aspect, used to distinguish between aspects that are view-specific, such as those related to iterators, and representation aspects that apply to all views of a type. * aspects.adb (Find_Aspect): If the aspect being sought is operational, do not ecamine the full view of a private type to retrieve it. * sem_ch5.adb (Analyze_Iterator_Specification): Improve error message when the intended domain of iteration does not implement the required iterator aspects. gcc/testsuite/ * gnat.dg/iter5.adb: Add an expected error. * gnat.dg/iter6.adb: New testcase. From-SVN: r273722
Ed Schonberg committed -
A modified rule in SPARK RM specifies that object declarations of anonymous access type should only occur immediately in subprogram, entry or block. Now checked. There is no impact on compilation. 2019-07-23 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_spark.ads (Is_Local_Context): New function. * sem_spark.adb (Check_Declaration): Issue errors on violations of SPARK RM 3.10(4) (Process_Path): Do not issue error on borrow/observe during elaboration, as these are caught by the new rule. From-SVN: r273721
Yannick Moy committed -
Linking of an enabled ghost unit which requires a finalizer lead to an error, as the name generated by the binder for calling the finalizer was not the same as the name chosen by the compiler. Now fixed. 2019-07-23 Yannick Moy <moy@adacore.com> gcc/ada/ * exp_ch7.adb (Create_Finalizer): Force finalizer not to be Ghost enabled. * exp_dbug.adb (Get_External_Name): Explain special case of Ghost finalizer. gcc/testsuite/ * gnat.dg/ghost6.adb, gnat.dg/ghost6_pkg.ads: New testcase. From-SVN: r273720
Yannick Moy committed -
Conversion of comparison results to full vectors does, when VPMOVM2* are unavailable, not require any intermediate VMOVDQ{A,U}*: Simply use embedded masking on VPTERNLOG* right away, which is available with AVX512F (while VPMOVM2{D,Q} are available only with AVX512DQ). Note that the chosen immediate is only one of many possible ones; I was trying to make the insn here distinguishable from the pre-existing uses of vpternlog. gcc/ 2019-07-23 Jan Beulich <jbeulich@suse.com> * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>): Require only AVX512F. (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add alternative expanding to vpternlog. From-SVN: r273719
Jan Beulich committed -
From-SVN: r273718
Ren Kimura committed -
2019-07-23 Martin Liska <mliska@suse.cz> * dwarf2out.c (gen_producer_string): Canonize -flto=N to -flto in dwarf producer string. From-SVN: r273717
Martin Liska committed -
2019-07-23 Richard Biener <rguenther@suse.de> * tree-cfg.c (label_for_bb): Remove global var. (main_block_label): Take label_for_bb as argument. (cleanup_dead_labels_eh): Likewise, adjust. (cleanup_dead_labels): Adjust. From-SVN: r273716
Richard Biener committed -
2019-07-22 Paul A. Clarke <pc@us.ibm.com> [gcc] * doc/extend.texi (Basic PowerPC Built-in Functions Available on all Configurations): Add documentation for __builtin_mtfsf. From-SVN: r273715
Paul A. Clarke committed -
gcc/ Ilia Diachkov <ilia.diachkov@optimitech.com> * config/riscv/riscv-opts.h (struct riscv_align_data): New. * config/riscv/riscv.c (riscv_constant_alignment): Use riscv_align_data_type. * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New. (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. * config/riscv/riscv.opt (malign-data): New. * doc/invoke.texi (RISC-V Options): Document -malign-data=. From-SVN: r273714
Ilia Diachkov committed -
This patch is a revision to CL 185518, which added code to perform finalization of methods on types created by the importer and not directly reachable until inlining is done. The original fix invoked the finalization code at the end of Import::read_types(), but it turns out this doesn't handle the case where a type with methods is read in due to a reference from something later in the export data (a function or variable). The fix is to move the import finalization call to the end of Import::import(). Testcase for this bug is in CL 187057. Fixes golang/go#33219. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/187058 From-SVN: r273713
Ian Lance Taylor committed -
From-SVN: r273712
GCC Administrator committed
-
- 22 Jul, 2019 17 commits
-
-
* cgraph.c (dump_graphviz): New function. * cgraph.h (dump_graphviz): New function. * symtab.c (dump_graphviz): New function. * lang.opt (flag_dump_callgraph): New flag. * lto-dump.c (dump_symtab_graphviz): New function. (dump_tool_help): New option. (lto_main): Handle graphviz dumping. From-SVN: r273708
Giuliano Belinassi committed -
* testsuite/26_numerics/bit/bitops.count/*: Rename to ... * testsuite/26_numerics/bit/bit.count/*: Here. From-SVN: r273707
Jonathan Wakely committed -
This proposal has now been accepted for C++20, with a few changes. This patch adjusts std::rotl and std::rotr to match the final specification and declares the additions for C++2a mode even when __STRICT_ANSI__ is defined. * include/std/bit (__rotl, __rotr): Change second parameter from unsigned int to int and handle negative values. (rotl, rotr): Remove check for __STRICT_ANSI__. Change second parameter from unsigned int to int. Add nodiscard attribute. * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Rename to ... * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Here. Test negative shifts. * testsuite/26_numerics/bit/bitops.rot/rotr.cc: Rename to ... * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Here. Test negative shifts. From-SVN: r273706
Jonathan Wakely committed -
* include/std/bit (__ceil2): Make unrepresentable results undefined, as per P1355R2. Add debug assertion. Perform one left shift, not two, so that out of range values cause undefined behaviour. Ensure that shift will still be undefined if left operand is promoted. * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Replace checks for unrepresentable values with checks that they are not core constant expressions. * testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: New test. From-SVN: r273705
Jonathan Wakely committed -
This patch adds support to combine: 1) ushr and add into usra, example: ushr v0.16b, v0.16b, 2 add v0.16b, v0.16b, v2.16b --- usra v2.16b, v0.16b, 2 2) sshr and add into ssra, example: sshr v1.16b, v1.16b, 2 add v1.16b, v1.16b, v3.16b --- ssra v3.16b, v1.16b, 2 Committed on behalf of Sylvia Taylor <sylvia.taylor@arm.com>. Reviewed-by: <James.greenhalgh@arm.com> gcc/ChangeLog: * config/aarch64/aarch64-simd.md (*aarch64_simd_sra<mode>): New. * config/aarch64/iterators.md (SHIFTRT): New iterator. (sra_op): New attribute. gcc/testsuite/ChangeLog: * gcc.target/aarch64/simd/ssra.c: New test. * gcc.target/aarch64/simd/usra.c: New test. From-SVN: r273703
Sylvia Taylor committed -
Previously, all callee-saved regs would unconditionally be saved in interrupt functions that call another function. 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save callee-saved regs R4->R10 in an interrupt function that calls another function. 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> * gcc.target/msp430/isr-push-pop-main.c: New test. * gcc.target/msp430/isr-push-pop-isr-430.c: Likewise. * gcc.target/msp430/isr-push-pop-isr-430x.c: Likewise. * gcc.target/msp430/isr-push-pop-leaf-isr-430.c: Likewise. * gcc.target/msp430/isr-push-pop-leaf-isr-430x.c: Likewise. From-SVN: r273702
Jozef Lawrynowicz committed -
2019-07-22 Andrea Corallo <andrea.corallo@arm.com> * jit-recording.c (unary_op_reproducer_strings): Make it extern. (binary_op_reproducer_strings): Likewise. * jit-recording.h (unary_op_reproducer_strings): Likewise. (binary_op_reproducer_strings): Likewise. * libgccjit.c (gcc_jit_context_new_unary_op): Check result_type to be a numeric type. * libgccjit.c (gcc_jit_context_new_binary_op): Improve error message. 2019-07-22 Andrea Corallo <andrea.corallo@arm.com> * jit.dg/test-error-gcc_jit_context_new_unary_op-bad-res-type.c: New testcase. * jit.dg/test-error-gcc_jit_context_new_binary_op-bad-res-type.c: Adjust error message. From-SVN: r273700
Andrea Corallo committed -
Add compatibility implementations of _mm_blend_epi16 and _mm_blendv_epi8 intrinsics. Respective test cases are copied almost verbatim (minor changes to the dejagnu head lines) from i386. 2019-07-22 Paul A. Clarke <pc@us.ibm.com> [gcc] * config/rs6000/smmintrin.h (_mm_blend_epi16): New. (_mm_blendv_epi8): New. [gcc/testsuite] * gcc.target/powerpc/sse4_1-check.h: New. * gcc.target/powerpc/sse4_1-pblendvb.c: New. * gcc.target/powerpc/sse4_1-pblendw.c: New. * gcc.target/powerpc/sse4_1-pblendw-2.c: New. From-SVN: r273698
Paul A. Clarke committed -
This instructs -gnatR4 to also list the Etype of user-declared objects if it is compiler-generated, for example in: package P2 is Arr_V : array (1 .. 5) of Integer; end P2; 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (List_Entities): Also list compiled-generated types present as Etype of objects. From-SVN: r273697
Eric Botcazou committed -
2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sinfo.ads: Update the documentation about the Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags. From-SVN: r273696
Eric Botcazou committed -
This plugs a small loophole in the compiler for the case of a multiplication or a division in a fixed-point type wrapped in a no-op conversion, e.g. to the same fixed-point type. The front-end fails to generate a range check for the operation. This used to be caught by the back-end, which would generate the range check, but this is no longer the case because we now make sure to reset the Do_Range_Check flag in all cases before invoking the back-end. 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment. (Fixup_Universal_Fixed_Operation): Set the base type instead of the type of the enclosing type conversion on the operation. gcc/testsuite/ * gnat.dg/fixedpnt6.adb: New testcase. From-SVN: r273695
Eric Botcazou committed -
This patch removes a warning on a membership test whose right operand is given by a range. In many cases the check can be replaced by the use of attribute 'Valid, but if the bounds of range are type conversion this replacement would be invorrect and the warning and suggestion are misleading. 2019-07-22 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute 'Valid as a replacement for a range check on a discrete type when the bounds of the range are given by type conversions, because in such a case there are distinct types involved and the subbested attribute replacement would be misplaced. gcc/testsuite/ * gnat.dg/warn26.adb: New testcase. From-SVN: r273694
Ed Schonberg committed -
A traversal function, especially when implemented as an expression function, may need to return an if-expression or case-expression, while still respecting Legality Rule SPARK RM 3.10(5). This case is now allowed in GNATprove. There is no impact on compilation. 2019-07-22 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_spark.adb (Get_Root_Object, Is_Path_Expression, Is_Subpath_Expression): Add parameter Is_Traversal to adapt these functions to the case of paths returned from a traversal function. (Read_Indexes): Handle the case of an if-expression or case-expression. (Check_Statement): Check Emit_Messages only when issuing an error message. This is important as Emit_Messages may store the information that an error was detected. From-SVN: r273693
Yannick Moy committed -
This ovehauls the code implementing conversions involving fixed-point types in the front-end because it leaks the Do_Range_Check flag in several places to the back-end, which is a violation of the documented interface between front-end and back-end. This also does a bit of housekeeping work throughout it in the process. There should be essentially no functional changes. 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * checks.adb (Apply_Type_Conversion_Checks): Do not set Do_Range_Check flag on conversions from fixed-point types either. * exp_attr.adb: Add use and with clause for Expander. (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set the Conversion_OK flag and do not generate overflow/range checks manually. * exp_ch4.adb (Expand_N_Qualified_Expression): Remove superfluous clearing of Do_Range_Check flag. (Discrete_Range_Check): New procedure to generate a range check for discrete types. (Real_Range_Check): Remove redundant local variable and adjust. Remove useless shortcut. Clear Do_Range_Check flag on all paths. (Expand_N_Type_Conversion): Remove redundant test on Conversion_OK. Call Discrete_Range_Check to generate range checks on discrete types. Remove obsolete code for float-to-integer conversions. Add code to generate range checks for conversions involving fixed-point types. From-SVN: r273692
Eric Botcazou committed -
2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sprint.ads: Fix pasto in comment. From-SVN: r273691
Eric Botcazou committed -
The compiler reports an spurious error when the formal parameter of a subprogram is an access to a class wide interface type and the actual parameter is an allocator of an object covering such interface type. 2019-07-22 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Actuals): Replace code that displaces the pointer to an allocated object to reference its secondary dispatch table by a type conversion (which takes care of handling all cases). gcc/testsuite/ * gnat.dg/class_wide5.adb: New testcase. From-SVN: r273690
Javier Miranda committed -
This is a small enhancement to the -gnatD/-gnatG output: the base type of fixed-point types, which is usually an itype, used to be printed as ??? in this case. It is now printed in a similar fashion as the first subtype. For the following package: package P is type D is delta 128.0 / (2 ** 15) range 0.0 .. 256.0; end P; the -gnatD/-gnatG must now be: Source recreated from tree for P (spec) --------------------------------------- p_E : short_integer := 0; package p is type p__d is delta [1.0/256.0] range 0.0 .. 256.0; [type p__TdB is delta [1.0/256.0] range -[2147483648.0*2**(-8)] .. [2147483647.0*2**(-8)]] freeze p__TdB [] end p; 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sprint.adb (Sprint_Node_Actual) <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces. (Write_Itype): Minor consistency fixes throughout. Add support for printing ordinary and decimal fixed-point types and subtypes. From-SVN: r273689
Eric Botcazou committed
-