Age | Commit message (Collapse) | Author | Files | Lines |
|
of negative value
PR rtl-optimization/78596
* combine.c (simplify_comparison): Cast to unsigned to avoid
left shifting of negative value.
From-SVN: r243111
|
|
From-SVN: r243110
|
|
<toplevel>
* configure.ac: Don't use pkg-config to check for bdw-gc.
* configure: Regenerate.
config/
* pkg.m4: Remove.
libobjc/
* configure.ac: Don't use pkg-config to check for bdw-gc.
* configure: Regenerate.
gcc/
* doc/install.texi: Don't use pkg-config to check for bdw-gc.
From-SVN: r243108
|
|
type as objects that cannot overlap.
2016-12-01 Richard Biener <rguenther@suse.de>
* tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
treat arrays with same type as objects that cannot overlap.
* gcc.dg/torture/alias-2.c: New testcase.
From-SVN: r243107
|
|
type as objects that cannot overlap.
2016-12-01 Richard Biener <rguenther@suse.de>
* tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
treat arrays with same type as objects that cannot overlap.
* gcc.dg/torture/alias-2.c: New testcase.
From-SVN: r243106
|
|
gcc/testsuite/
* gcc.target/avr/tiny-memx.c: Only perform if target avr_tiny.
* gcc.target/avr/tiny-caller-save.c: Dito.
From-SVN: r243105
|
|
gcc/
* config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
(avr_handle_addr_attribute, avr_asm_output_aligned_decl_common)
(avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito.
From-SVN: r243104
|
|
gcc/testsuite/ChangeLog:
2016-12-01 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray_lib_alloc_4.f90: Fix for 32-bits.
From-SVN: r243101
|
|
-9223372036854775808 cannot be represented in type 'long int [4]'; cast to an unsigned type to negate this value to itself)
PR debug/78587
* dwarf2out.c (loc_descr_plus_const): For negative offset use
uint_loc_descriptor instead of int_loc_descriptor and perform negation
in unsigned HOST_WIDE_INT type.
(scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL.
* gcc.dg/debug/pr78587.c: New test.
From-SVN: r243100
|
|
(verify_rtx_sharing) gcc/emit-rtl.c:2743)
PR target/78614
* config/rs6000/rs6000.c (rs6000_frame_related): Call
set_used_flags (pat) before any simplifications. Clear used flag on
PARALLEL copy. Don't guard add_reg_note call. Call
copy_rtx_if_shared on pat before storing it into
REG_FRAME_RELATED_EXPR.
From-SVN: r243099
|
|
* gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
look inside UNSPEC_VSX_XXSPLTW vec.
From-SVN: r243097
|
|
The library initialization code in go-libmain.c sets the C variable
runtime_isarchive but failed to set the Go variable runtime.isarchive.
We don't currently have a way to let C code access an unexported Go
variable, but fortunately the only time the Go function initsig is
called with an argument of true is exactly where we want to set
isarchive. So let initsig do it.
Reviewed-on: https://go-review.googlesource.com/33753
From-SVN: r243094
|
|
After an unconditional trap there should be a barrier. In most cases
one is automatically inserted, but not if the trap is the final insn in
the instruction stream. We need to emit one explicitly.
PR rtl-optimization/78607
* combine.c (try_combine): Emit a barrier after a unconditional trap.
gcc/testsuite/
PR rtl-optimization/78607
* gcc.c-torture/compile/pr78607.c: New testcase.
From-SVN: r243092
|
|
From-SVN: r243091
|
|
From-SVN: r243085
|
|
Since gccgo can trace back through C code as easily as Go code, we
should print C functions in the traceback.
This worked before https://golang.org/cl/31230 for a dumb reason. The
default value for runtime.traceback_cache was, and is, 2 << 2, meaning
to print all functions. The old C code for runtime_parsedebugvars
would return immediately and do nothing if the environment variable
GODEBUG was not set (if GODEBUG was set it would later call
setTraceback. The new Go code for runtime.parsedebugvars does not
return immediately if GODEBUG is not set, and always calls
setTraceback. Either way, if GOTRACEBACK is not set, setTraceback
would set traceback_cache to 1 << 2, meaning to only print non-runtime
functions and having the effect of not printing plain C functions.
Keep the current handling of GODEBUG/GOTRACEBACK, which matches the gc
library, but add an extra check to print C functions by default.
Reviewed-on: https://go-review.googlesource.com/33717
From-SVN: r243083
|
|
From-SVN: r243082
|
|
printf-return-value
gcc/testsuite/ChangeLog:
PR tree-optimization/78586
* gcc.dg/tree-ssa/builtin-sprintf-2.c: New test cases.
From-SVN: r243081
|
|
2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/78602
* config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
element is not a constant or in a register, force it to a
register.
PR target/78560
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
that will be set to a vector element to be in a register.
* config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
the wrong multiplier to convert the element number to a byte
offset.
From-SVN: r243044
|
|
32-bit mode)
2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
PR tree-optimization/77856
* lra-constraints.c (inherit_in_ebb): Check original regno for
invalid invariant regs too. Set only clobbered hard regs for the
invalid invariant regs.
2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
PR tree-optimization/77856
* gcc.target/i386.c (pr77856.c): New.
From-SVN: r243038
|
|
From-SVN: r243035
|
|
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/single.c (_gfortran_caf_get_by_ref): Prevent compile time
warning.
(_gfortran_caf_send_by_ref): Same.
(_gfortran_caf_is_present): Prevent fallthrough warnings.
gcc/testsuite/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* ChangeLog: Removed wrongly placed entry.
* gfortran.dg/coarray_lib_alloc_4.f90: New test.
From-SVN: r243034
|
|
2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
Commit files forgotten in r242966.
* config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
* config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
prefix check to find wrap-around value, instead use MCU flash size.
For 8k flash devices, update link_pmem_wrap spec string to
add --pmem-wrap-around=8k.
* config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
here...
(LINK_SPEC): ...to here.
From-SVN: r243033
|
|
* g++.dg/eh/new1.C: XFAIL on AIX.
* g++.dg/eh/delete1.C: Same.
* g++.dg/init/new40.C: Same.
* g++.old-deja/g++.eh/new2.C: Same.
From-SVN: r243032
|
|
gcc/testsuite/ChangeLog:
PR c/78498
* gcc.dg/format/pr78494.c: Rename to...
* gcc.dg/format/pr78498.c: ...this.
From-SVN: r243031
|
|
gcc/ChangeLog:
PR c/78498
* selftest.c (selftest::assert_strndup_eq): New function.
(selftest::test_strndup): New function.
(selftest::test_libiberty): New function.
(selftest::selftest_c_tests): Call test_libiberty.
gcc/testsuite/ChangeLog:
PR c/78498
* gcc.dg/format/pr78494.c: New test case.
libiberty/ChangeLog:
PR c/78498
* strndup.c (strlen): Delete decl.
(strnlen): Add decl.
(strndup): Call strnlen rather than strlen.
* xstrndup.c (xstrndup): Likewise.
From-SVN: r243030
|
|
* g++.dg/debug/dwarf2/ref-1.C: Don't XFAIL scan-assembler-not on AIX.
* g++.dg/debug/dwarf2/imported-decl-2.C: Same.
* g++.dg/debug/dwarf2/refqual-1.C: Same.
* g++.dg/debug/dwarf2/refqual-2.C: Same.
From-SVN: r243029
|
|
In the testcase, IRA propagates a constant into a TRAP_IF insn, which
then becomes an unconditional trap. Unconditional traps are control
flow insns so doing this requires surgery on the cfg. We cannot do
that here, so instead refuse to do the substitution.
PR rtl-optimization/78610
* ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
instructions.
gcc/testsuite/
PR rtl-optimization/78610
* gcc.c-torture/compile/pr78610.c: New testcase.
From-SVN: r243028
|
|
32- and 64-bit modes on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1)))
PR tree-optimization/78574
* tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
header PHI that doesn't define biv.
gcc/testsuite
PR tree-optimization/78574
* gcc.c-torture/compile/pr78574.c: New test.
From-SVN: r243026
|
|
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
warnings.
From-SVN: r243025
|
|
2016-11-30 Gary Dismukes <dismukes@adacore.com>
* sem_prag.adb, sem_ch6.adb: Minor reformatting and typo fixes.
* g-sechas.adb: Minor reformatting.
* lib-xref.ads: minor grammar fix in comment.
* lib-xref-spark_specific.adb
(Is_SPARK_Reference): do not ignore references to concurrent
objects.
* sinfo.ads: Fix of unbalanced parens in comment
2016-11-30 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb (Get_Type_Reference): If the entity is a function
returning a classwide type, the type reference is obtained right
away and does not need further unwinding.
2016-11-30 Javier Miranda <miranda@adacore.com>
* sem_ch8.adb (Find_Renamed_Entity): For non-overloaded subprogram
actuals of generic units check that the spec of the renaming
and renamed entities match.
2016-11-30 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c: For CERT runtimes: do not use gcc includes, simplify
the handling.
* sem_attr.adb (Analyze_Attribute): Check No_Dynamic_Priorities
restriction for Priority Attribute.
From-SVN: r243022
|
|
components in derived...
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/libcaf.h: Add new action types for (de-)registration of
allocatable components in derived type coarrays. Add _caf_is_present
prototype.
* caf/single.c (_gfortran_caf_register): Add support for registration
only and allocation of already registered allocatable components in
derived type coarrays.
(_gfortran_caf_deregister): Add mode to deallocate but not deregister
an allocatable component in a derived type coarray.
(_gfortran_caf_is_present): New function. Query whether an
allocatable component in a derived type coarray on a remote image is
allocated.
gcc/testsuite/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray/alloc_comp_1.f90: Fix tree-dump scans to adhere
to the changed interfaces.
* gfortran.dg/coarray_alloc_comp_1.f08: Likewise.
* gfortran.dg/coarray_allocate_7.f08: Likewise.
* gfortran.dg/coarray_lib_alloc_1.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_2.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_3.f90: Likewise.
* gfortran.dg/coarray_lib_comm_1.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_4.f90: New test.
gcc/fortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* check.c (gfc_check_allocated): By pass the caf_get call and check on
the array.
* gfortran.h: Add optional flag to gfc_caf_attr.
* gfortran.texi: Document new enum values and _caf_is_present function.
* primary.c (caf_variable_attr): Add optional flag to indicate that the
expression is reffing a component.
(gfc_caf_attr): Likewise.
* trans-array.c (gfc_array_deallocate): Handle deallocation mode for
coarray deregistration.
(gfc_trans_dealloc_allocated): Likewise.
(duplicate_allocatable): Use constants instead of
creating custom constant tree node of zero or one. Use gfc_add_modify
convenience function.
(duplicate_allocatable_coarray): This function is similar to
duplicate_allocatable but tailored to handle coarrays.
(caf_enabled): Check whether in-derived-type coarray processing is
enabled.
(caf_in_coarray): Check that in-derived-type coarray processing is
enabled and currently in a derived-typed coarray.
(gfc_caf_is_dealloc_only): Return true, when deallocate only is
desired for components in derived typed coarrays.
(structure_alloc_comps): A mode for handling coarrays, that is no
longer encode in the purpose. This makes the use cases of the
routine more flexible without repeating. Allocatable components in
derived type coarrays are now registered only when nullifying an
object and allocated before copying data into them.
(gfc_nullify_alloc_comp): Use the caf_mode of structure_alloc_comps
now.
(gfc_deallocate_alloc_comp): Likewise.
(gfc_deallocate_alloc_comp_no_caf): Likewise.
(gfc_reassign_alloc_comp_caf): Likewise.
(gfc_copy_alloc_comp): Likewise.
(gfc_copy_only_alloc_comp): Likewise.
(gfc_alloc_allocatable_for_assignment): Make use to the cheaper way of
reallocating a coarray without deregistering and reregistering it.
(gfc_trans_deferred_array): Initialize the coarray token correctly for
deferred variables and tear them down on exit.
* trans-array.h: Change some prototypes to add the coarray (de-)
registration modes. Add prototype for checking if deallocate only is
selected for components in derived typed coarrays.
* trans-decl.c (gfc_build_builtin_function_decls): Generate the
declarations for the changed/new caf-lib routines.
(gfc_trans_deferred_vars): Ensure deferred variables are (de-)
registered correctly on procedure entry/exit.
(generate_coarray_sym_init): Use constants.
* trans-expr.c (gfc_conv_procedure_call): Propagate coarray allocation
modes accordingly.
(gfc_trans_alloc_subarray_assign): Likewise.
(gfc_trans_subcomponent_assign): Likewise.
(gfc_trans_structure_assign): Generate code to register the components
of a derived type coarray prior to initialization.
(gfc_conv_structure): Set flag that the structure is in a coarray.
(gfc_trans_scalar_assign): Add flag to indicate being in a coarray and
set the structure_alloc_comps modes correctly.
(gfc_trans_assignment_1): Figure being in a coarray expression.
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Adapt to new
structure_alloc_comps interface.
(conv_caf_send): Use the old API as long as possible.
(trans_caf_is_present): Generate code to check whether an allocatable
component in a derived typed coarray is allocated on a remote image.
(caf_this_image_ref): Return true, when only reffing this image.
(gfc_conv_allocated): Convert allocated queries on allocatable
components to the library API.
(conv_intrinsic_move_alloc): Adapt to new interface of
structure_alloc_comps.
* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
(gfc_omp_clause_assign_op): Likewise.
(gfc_omp_clause_dtor): Likewise.
* trans-stmt.c (gfc_trans_deallocate): Figure which mode to use when
deallocating allocatable components in derived type coarras.
* trans.c (gfc_allocate_using_lib): Renamed to
gfc_allcate_using_caf_lib.
(gfc_allocate_allocatable): Set the registration mode/type of caf-
register calls adapting to all the possible allocatable objects.
(gfc_deallocate_with_status): Add deregistration mode for allocatable
components in derived type coarrays.
(gfc_deallocate_scalar_with_status): Likewise.
* trans.h (enum gfc_coarray_type): Renamed to gfc_coarray_regtype to
avoid collision with gfc_coarray_deregtype.
From-SVN: r243021
|
|
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78593
* primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE.
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78593
* gfortran.dg/derived_result.f90: New test case.
From-SVN: r243020
|
|
reset_used_flags.
* emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of
reset_used_flags.
From-SVN: r243019
|
|
between move and following insn.
* config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
sharing the SUBREG rtx between move and following insn.
From-SVN: r243018
|
|
argument.
* ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
for REG_EQUIV argument.
From-SVN: r243017
|
|
2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33.
From-SVN: r243015
|
|
2016-11-29 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/testsuite/
* lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
-mfloat-abi=soft option.
(add_options_for_arm_arch_v8m_base): Likewise. Reindent containing
foreach loop.
From-SVN: r243013
|
|
negative value -125
PR ipa/78555
* real.c (real_hash): Add cast to avoid left
shifting of negative values.
From-SVN: r243012
|
|
PR target/78362
* config/aarch64/aarch64.md (add<mode>3): Extract inner expression
from a subreg in operands[1] and don't call REGNO on a non-reg
expression when deciding to force operands[2] into a reg.
* gcc.c-torture/compile/pr78362.c: New test.
From-SVN: r243011
|
|
In check_effective_target_freorder we check to see if the target
supports -freorder-blocks-and-partition. However we disable
-freorder-blocks-and-partition when -fprofile-use is not supplied so for
some targets we'll not see any message about lack of support for
-freorder-blocks-and-partition unless -fprofile-use is also passed.
This commit extends check_effective_target_freorder to first try
-freorder-blocks-and-partition on its own, then try -fprofile-use and
-freorder-blocks-and-partition.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp (check_effective_target_freorder): Check
additional case.
From-SVN: r243009
|
|
gcc/lto/
PR lto/78562
* lto-symtab.c (lto_symtab_merge_decls_2): Don't diagnose type
mismatch if the two types are built-in.
From-SVN: r243008
|
|
ARC700 targets have a store/load pipeline hazard, if we load within 2
cycles of a store, and the load/store are at the same address, then we
pay a multi-cycle penalty.
This commit avoids this by inserting nop instructions between the store
and the load.
gcc/ChangeLog:
* config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare.
* config/arc/arc.c (arc_store_addr_hazard_p): New function.
(workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700.
* config/arc/arc700.md: Add define_bypass for store/load.
gcc/testsuite/ChangeLog:
* gcc.target/arc/arc700-stld-hazard.c: New file.
From-SVN: r243007
|
|
fortran/interface.c:4939)
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78592
* interface.c (gfc_find_specific_dtio_proc): Rearrange code to avoid
dereferencing a null pointer.
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78592
* gfortran.dg/dtio_18.f90: New test case.
From-SVN: r243005
|
|
* cgraph.c (symbol_table::initialize): Initialize
ipa_clones_dump_file.
(cgraph_node::remove): Report to ipa_clones_dump_file.
* cgraph.h: Add new argument (suffix) to cloning methods.
* cgraphclones.c (dump_callgraph_transformation): New function.
(cgraph_node::create_clone): New argument.
(cgraph_node::create_virtual_clone): Likewise.
(cgraph_node::create_version_clone): Likewise.
* dumpfile.c: Add .ipa-clones dump file.
* dumpfile.h (enum tree_dump_index): Add TDI_clones
* ipa-inline-transform.c (clone_inlined_nodes): Report operation
to dump_callgraph_transformation.
From-SVN: r243004
|
|
PR sanitizer/78541
* gcc.dg/asan/pr78541-2.c: New test.
* gcc.dg/asan/pr78541.c: New test.
PR sanitizer/78541
* asan.c (asan_expand_mark_ifn): Properly
select a VAR_DECL from FRAME.* component reference.
From-SVN: r243003
|
|
From-SVN: r243002
|
|
The comment for the added case to simplify_truncation reads
/* Turn (truncate:M1 (*_extract:M2 (reg:M2) (len) (pos))) into
(*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
changing len. */
but I forgot to check the two modes M2 are actually the same.
PR rtl-optimization/78583
* simplify-rtx.c (simplify_truncation): Add check missing from the
previous commit.
From-SVN: r243000
|
|
PR78590 shows a problem in change_zero_ext, where we change a zero_extend
of a subreg to a logical and. We should only do this if the thing we are
taking the subreg of is a scalar integer, otherwise we will take a subreg
of (e.g.) a float in a different size, which is nonsensical and hits an
assert.
PR rtl-optimization/78590
* combine.c (change_zero_ext): Transform zero_extend of subregs only
if the subreg_reg is a scalar integer mode.
From-SVN: r242999
|
|
PR tree-optimization/78586
* gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
Don't build_int_cst min/max twice. Formatting fix.
* gcc.c-torture/execute/pr78586.c: New test.
From-SVN: r242998
|