Age | Commit message (Collapse) | Author | Files | Lines |
|
From-SVN: r253055
|
|
The BIT_AND_EXPR handling in extract_range_from_binary_expr_1
was using value_range_constant_singleton without first checking
whether the range was a constant. The earlier handling was correctly
guarded:
/* If either input range contains only non-negative values
we can truncate the result range maximum to the respective
maximum of the input range. */
if (int_cst_range0 && tree_int_cst_sgn (vr0.min) >= 0)
wmax = wi::min (wmax, vr0.max, TYPE_SIGN (expr_type));
if (int_cst_range1 && tree_int_cst_sgn (vr1.min) >= 0)
wmax = wi::min (wmax, vr1.max, TYPE_SIGN (expr_type));
so this patch uses the same guards again.
Existing tests showed the need for this once polynomial constants
are added.
2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
gcc/
* tree-vrp.c (extract_range_from_binary_expr_1): Check
int_cst_rangeN before calling value_range_constant_singleton (&vrN).
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r253054
|
|
2017-09-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/71351
* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
graphite_create_new_loop_guard): Remove, fold remaining parts
into caller ...
(translate_isl_ast_node_for): ... here and simplify.
* gfortran.dg/graphite/pr71351.f90: New testcase.
* gfortran.dg/graphite/interchange-3.f90: Adjust.
From-SVN: r253052
|
|
slightly slower and larger code)
PR target/82260
* config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
alternative always use QI mode, for -Os imov (=R,R) alternative
always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
ignore -Os.
* gcc.target/i386/pr82260-1.c: New test.
* gcc.target/i386/pr82260-2.c: New test.
From-SVN: r253050
|
|
* config/s390/s390.c (MIN_UNROLL_PROBES): Define.
(allocate_stack_space): New function, partially extracted from
s390_emit_prologue.
(s390_emit_prologue): Track offset to most recent stack probe.
Code to allocate space moved into allocate_stack_space.
Dump actions when no stack is allocated.
(s390_prologue_plus_offset): New function.
(s390_emit_stack_probe): Likewise.
* gcc.dg/stack-check-5.c: Add argument for s390.
* lib/target-supports.exp:
(check_effective_target_supports_stack_clash_protection): Enable for
s390/s390x targets.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r253049
|
|
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01426.html
* name-lookup.c (member_name_cmp): Use DECL_UID for final
ordering.
From-SVN: r253048
|
|
This patch that adds -g to the set of negatable prefixes along with -f,
-m and -W. Besides the mapping from -gno- to negated -g in option_map
and adding g to the [fmW] matches for negatable options, I had to
introduce gno- as an remapping prefix, for the option searching
machinery to backtrack to and recognize as a remapping prefix, instead
of backtracking to -g and stopping at it as if no-* was its Joined
argument. Adding such remapping prefixes to preempt further
backtracking can be accomplished by introducing the prefix as an
Undocumented option with a Joined argument and without Driver, Target,
Common, or any language-specific option. Whenever we match such a fake
options prefix, we abandon further backtracking (it matches, after all),
but find_opt returns the same code it would if it hadn't found any
match, so that we resort to option mapping.
I've arranged for such remapping prefixes to not be considered when
looking for and suggesting a correct spelling for misspelled options.
While testing that, I found a few -W-started options that were not
marked as RejectNegative but should (-Wno-a, is not something we'd like
to suggest ;-) I've also marked as such -g-started options that
it makes no sense to negate, and removed the explicit -gno- ones,
allowing their opposites to be negated.
for gcc/ChangeLog
* common.opt (Wa, Wl, Wp, g, gz=): Add
RejectNegative.
(gno-column-info): Remove.
(gcolumn-info): Drop RejectNegative.
(gno-): New prefix.
(gno-record-gcc-switches): Remove.
(grecord-gcc-switches): Drop RejectNegative.
(gno-split-dwarf): Remove.
(gsplit-dwarf): Drop RejectNegative.
(gno-strict-dwarf): Remove.
(gstrict-dwarf): Drop RejectNegative.
* config/darwin.opt (gfull, gused): Add RejectNegative.
* dwarf2out.c (gen_producer_string): Drop
gno-record-gcc-switches handler.
* optc-gen.awk: Add g to prefixes with negative forms.
* opts-common.c (remapping_prefix_p): New.
(find_opt): Check it.
(generate_canonical_option): Test g prefix.
(option_map): Add -gno- mapping.
(add_misspelling_candidates): Check remapping_prefix_p.
for gcc/ada/ChangeLog
* gcc-interface/lang.opt (gant, gnatO, gnat): Add
RejectNegative.
for gcc/c-family/ChangeLog
* c.opt (gen-decls): Add RejectNegative.
From-SVN: r253047
|
|
From-SVN: r253046
|
|
With -enable-static=no we don't build non-pic objects, but libgotool.a
is built from non-pic objects. Build the packages that go into
libgotool.a in static mode in all cases.
Also ensure that internal test packages are built, since nothing
explicitly depended on them.
Reviewed-on: https://go-review.googlesource.com/65050
From-SVN: r253042
|
|
gcc/testsuite/ChangeLog:
PR c/81854
* g++.dg/ext/attr-ifunc-2.C: Correct type errors.
* g++.dg/ext/attr-ifunc-4.C: Ditto.
* lib/target-supports.exp: Adjust for C++.
From-SVN: r253041
|
|
gcc/testsuite/ChangeLog:
PR c/81854
* gcc.dg/attr-ifunc-1.c: Correct type errors.
* gcc.dg/attr-ifunc-2.c: Ditto.
* gcc.dg/attr-ifunc-3.c: Ditto.
* gcc.dg/attr-ifunc-4.c: Ditto.
* gcc.dg/attr-ifunc-5.c: Ditto.
* gcc.dg/pr81854.c: Require ifunc support.
* gcc/testsuite/lib/target-supports.exp: Correct type error.
From-SVN: r253037
|
|
support.
* config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
thinko in stack clash protection support.
From-SVN: r253036
|
|
of explicit test.
* explow.c (compute_stack_clash_protection_loop_data): Use
CONST_INT_P instead of explicit test. Verify object is a
CONST_INT_P before looking at INTVAL.
(anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
instead of explicit test.
* gcc.target/i386/stack-check-11.c: Update test and regexp
so that it works for both i?86 and x86_64.
From-SVN: r253034
|
|
With the 32-bit SVR4 ABI we don't have a red zone, so we have to restore
the callee-saved registers before we restore the stack pointer.
The previous fix for this PR failed in two ways, for huge frames: first,
we use a negative offset from r11 in that case, so the (mem:BLK 11) access
does no good; second, sched does not handle accesses to mem:BLK correctly
in this case (does not make dependencies).
This patch fixes it by doing a store to (mem:BLK (scratch)) instead.
This means no unrelated (not to stack) loads/stores can be moved over the
stack restore either, but so be it.
PR target/77687
* config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
address instead of to r1 and r11.
gcc/testsuite/
PR target/77687
* gcc.target/powerpc/pr77687.c: New testcase.
From-SVN: r253033
|
|
P0409R2 - allow lambda capture [=, this]
* parser.c (cp_parser_lambda_introducer): For cxx2a don't pedwarn on
redundant [=, this].
* g++.dg/cpp1z/lambda-this1.C: Don't expect error for c++2a on [=, this]
capture. Add further tests.
* g++.dg/cpp0x/lambda/lambda-capture-redundancy.C: Don't expect error
for c++2a on [=, this] capture.
From-SVN: r253030
|
|
* g++.dg/cpp1z/cplusplus.C: Test that __cplusplus is equal to 201703L.
* g++.dg/cpp1z/cplusplus_1z.C: New test.
From-SVN: r253029
|
|
Reviewed-on: https://go-review.googlesource.com/64990
From-SVN: r253022
|
|
Reviewed-on: https://go-review.googlesource.com/64552
From-SVN: r253021
|
|
Reviewed-on: https://go-review.googlesource.com/64551
From-SVN: r253016
|
|
gcc/
* config.gcc: Support "knm".
* config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
* config/i386/i386-c.c (ix86_target_macros_internal): Handle
PROCESSOR_KNM.
* config/i386/i386.c (m_KNM): Define.
(processor_target_table): Add "knm".
(PTA_KNM): Define.
(ix86_option_override_internal): Add "knm".
(ix86_issue_rate): Add PROCESSOR_KNM.
(ix86_adjust_cost): Ditto.
(ia32_multipass_dfa_lookahead): Ditto.
(get_builtin_code_for_version): Handle PROCESSOR_KNM.
(fold_builtin_cpu): Add M_INTEL_KNM.
* config/i386/i386.h (processor_costs): Define TARGET_KNM.
(processor_type): Add PROCESSOR_KNM.
* config/i386/x86-tune.def: Add m_KNM.
* doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
libgcc/
* config/i386/cpuinfo.h (processor_types): Add INTEL_KNM.
* config/i386/cpuinfo.c (get_intel_cpu): Detect Knights Mill.
gcc/testsuite/
* gcc.target/i386/builtin_target.c: Test knm.
* gcc.target/i386/funcspec-56.inc: Test arch=knm.
From-SVN: r253013
|
|
From-SVN: r253012
|
|
tree-ssa-loop-manip.c:704)
2017-09-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/80213
* graphite-scop-detection.c (trivially_empty_bb_p): Labels
are allowed in empty BBs as well.
(canonicalize_loop_closed_ssa): Also look for other complex
edges.
(scop_detection::get_sese): Include the loop-closed PHI block
in loop SESEs.
(scop_detection::merge_sese): Remove code adding extra blocks.
(scop_detection::region_has_one_loop): Adjust for get_sese changes.
(build_scops): Assert the final returned scop is invalid.
From-SVN: r253008
|
|
-O2 -floop-nest-optimize)
2017-09-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/77362
* gcc.dg/graphite/pr77362.c: New testcase.
From-SVN: r253006
|
|
gcc/tree-ssa-sccvn.c:3125)
2017-09-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/82264
* tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
for GIMPLE_CONDs.
(vn_phi_lookup): Likewise.
(vn_phi_insert): Likewise.
* gcc.dg/torture/pr82264.c: New testcase.
From-SVN: r253005
|
|
uhwi or shwi...
* dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
that fits into uhwi or shwi, add DW_AT_const_value regardless
of early_dwarf without going through RTL, using add_AT_unsigned
or add_AT_int.
* g++.dg/debug/dwarf2/template-params-13.C: New test.
* g++.dg/debug/dwarf2/template-params-5.C: Adjust regexps so that
it doesn't match newlines.
* g++.dg/debug/dwarf2/template-params-3.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-3.C: Likewise.
* g++.dg/debug/dwarf2/lang-cpp98.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-2.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-1.C: Likewise.
* g++.dg/debug/dwarf2/template-func-params-5.C: Likewise.
* g++.dg/debug/dwarf2/template-params-1.C: Likewise.
* g++.dg/debug/dwarf2/template-params-2.C: Likewise.
* g++.dg/debug/dwarf2/lang-cpp14.C: Likewise.
* g++.dg/debug/dwarf2/lang-cpp11.C: Likewise.
From-SVN: r253004
|
|
* dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
(DEBUG_LTO_ABBREV_SECTION): Likewise.
(DEBUG_LTO_MACINFO_SECTION): Likewise.
(DEBUG_MACRO_SECTION): Likewise.
(DEBUG_LTO_MACRO_SECTION): Likewise.
(DEBUG_STR_DWO_SECTION): Likewise.
(DEBUG_LTO_STR_DWO_SECTION): Likewise.
(DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
(DEBUG_LTO_DWO_LINE_SECTION): Define.
(DEBUG_LTO_LINE_STR_SECTION): Define.
(init_sections_and_labels): Initialize debug_line_str_section
variable. Initialize debug_loc_section for -gdwarf-5 to
DEBUG_LOCLISTS_SECTION. Formatting fixes.
From-SVN: r253003
|
|
2017-09-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/64954
* g++.dg/cpp0x/constexpr-ctor20.C: New.
From-SVN: r253002
|
|
BIT_NOT_EXPR and conversion to signed.
2017-09-20 Richard Biener <rguenther@suse.de>
* graphite-sese-to-poly.c (extract_affine): Properly handle
POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
From-SVN: r253001
|
|
gcc/tree-dfa.c:305)
2017-09-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/81373
* graphite-scop-detection.c (build_cross_bb_scalars_def):
Force SESE live-out defs to be handled even if they are
scev_analyzable_p.
* gcc.dg/graphite/pr81373.c: New testcase.
From-SVN: r253000
|
|
stack adjustments with REG_STACK_CHECK.
* combine-stack-adj.c (combine_stack_adjustments_for_block): Do
nothing for stack adjustments with REG_STACK_CHECK.
* sched-deps.c (parse_add_or_inc): Reject insns with
REG_STACK_CHECK from dependency breaking.
* config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
(ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
* reg-notes.def (STACK_CHECK): New note.
* gcc.target/i386/stack-check-11.c: New test.
From-SVN: r252999
|
|
* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
(ix86_expand_prologue): Dump stack clash info as needed.
Call ix86_adjust_stack_and_probe_stack_clash as needed.
* gcc.dg/stack-check-4.c: New test.
* gcc.dg/stack-check-5.c: New test.
* gcc.dg/stack-check-6.c: New test.
* gcc.dg/stack-check-6a.c: New test.
* gcc.dg/stack-check-7.c: New test.
* gcc.dg/stack-check-8.c: New test.
* gcc.dg/stack-check-9.c: New test.
* gcc.dg/stack-check-10.c: New test.
* lib/target-supports.exp
(check_effective_target_supports_stack_clash_protection): Enable for
x86 and x86_64 targets.
From-SVN: r252998
|
|
* function.c (dump_stack_clash_frame_info): New function.
* function.h (dump_stack_clash_frame_info): Prototype.
(enum stack_clash_probes): New enum.
From-SVN: r252997
|
|
* config/alpha/alpha.c (alpha_expand_prologue): Also check
flag_stack_clash_protection.
* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
(arm_expand_prologue, thumb1_expand_prologue): Likewise.
(arm_frame_pointer_required): Likewise.
* config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
(ia64_expand_prologue): Likewise.
* config/mips/mips.c (mips_expand_prologue): Likewise.
* config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
(sparc_flat_expand_prologue): Likewise.
* config/spu/spu.c (spu_expand_prologue): Likewise.
From-SVN: r252996
|
|
2017-09-18 Jeff Law <law@redhat.com>
* explow.c: Include "params.h".
(anti_adjust_stack_and_probe_stack_clash): New function.
(get_stack_check_protect): Likewise.
(compute_stack_clash_protection_loop_data): Likewise.
(emit_stack_clash_protection_loop_start): Likewise.
(emit_stack_clash_protection_loop_end): Likewise.
(allocate_dynamic_stack_space): Use get_stack_check_protect.
Use anti_adjust_stack_and_probe_stack_clash.
* explow.h (compute_stack_clash_protection_loop_data): Prototype.
(emit_stack_clash_protection_loop_start): Likewise.
(emit_stack_clash_protection_loop_end): Likewise.
* rtl.h (get_stack_check_protect): Prototype.
* target.def (stack_clash_protection_final_dynamic_probe): New hook.
* targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
* targhooks.h (default_stack_clash_protection_final_dynamic_probe):
Prototype.
* doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
Add @hook.
* doc/tm.texi: Rebuilt.
* config/aarch64/aarch64.c (aarch64_expand_prologue): Use
get_stack_check_protect.
* config/alpha/alpha.c (alpha_expand_prologue): Likewise.
* config/arm/arm.c (arm_expand_prologue): Likewise.
(arm_frame_pointer_required): Likewise.
* config/i386/i386.c (ix86_expand_prologue): Likewise.
* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
* config/mips/mips.c (mips_expand_prologue): Likewise.
* config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
(sparc_flat_expand_prologue): Likewise.
* gcc.dg/stack-check-3.c: New test.
From-SVN: r252995
|
|
* common.opt (-fstack-clash-protection): New option.
* flag-types.h (enum stack_check_type): Note difference between
-fstack-check= and -fstack-clash-protection.
* params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
(PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
* toplev.c (process_options): Issue warnings/errors for cases
not handled with -fstack-clash-protection.
* doc/invoke.texi (-fstack-clash-protection): Document new option.
(-fstack-check): Note additional problem with -fstack-check=generic.
Note that -fstack-check is primarily for Ada and refer users
to -fstack-clash-protection for stack-clash-protection.
Document new params for stack clash protection.
* gcc.dg/stack-check-2.c: New test.
* lib/target-supports.exp
(check_effective_target_supports_stack_clash_protection): New function.
(check_effective_target_frame_pointer_for_non_leaf): Likewise.
(check_effective_target_caller_implicit_probes): Likewise.
From-SVN: r252994
|
|
In the 1.9 upgrade I took out the word "goroutine" from a traceback
showing a goroutine running in C code, to let TestCgoNumGoroutine
pass. However, it turns out that some code is actually checking for
that string; for example,
https://github.com/grpc/grpc-go/blob/master/test/leakcheck/leakcheck.go#L44
So keep the message the same, and change the test.
Reviewed-on: https://go-review.googlesource.com/64850
From-SVN: r252991
|
|
From-SVN: r252990
|
|
* config/i386/i386.md (*scc_bt<mode>): New insn_and_split pattern.
(*scc_bt<mode>_1): Ditto.
(*scc_bt<mode>_mask): Ditto.
testsuite/ChangeLog:
* gcc.target/i386/bt-5.c: New test.
* gcc.target/i386/bt-6.c: Ditto.
* gcc.target/i386/bt-mask-3.c: Ditto.
* gcc.target/i386/bt-mask-4.c: Ditto.
From-SVN: r252986
|
|
* g++.dg/tree-ssa/pr31146-2.C: Only do scan-tree-dump for c++14_down.
* g++.dg/tree-ssa/pr41428.C: Likewise.
* g++.dg/expr/bool1.C: Only do dg-do compile instead of dg-do run for
c++17 and up.
* g++.dg/expr/bool3.C: Likewise.
* g++.dg/expr/bitfield5.C: Likewise.
* g++.old-deja/g++.jason/bool5.C: Likewise.
From-SVN: r252985
|
|
special way.
* config/i386/i386.c (ix86_split_long_move): Do not handle
address used for LEA in a special way.
From-SVN: r252984
|
|
* simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
From-SVN: r252979
|
|
gcc/ChangeLog:
PR c/81854
* cgraphunit.c (handle_alias_pairs): Reject aliases between functions
of incompatible types.
gcc/testsuite/ChangeLog:
PR c/81854
* gcc.dg/pr81854.c: New test.
* g++.dg/ext/attr-ifunc-5.C: New test.
* g++.dg/ext/attr-ifunc-1.C: Adjust.
* g++.dg/ext/attr-ifunc-2.C: Same.
* g++.dg/ext/attr-ifunc-3.C: Same.
* g++.dg/ext/attr-ifunc-4.C: Same.
* g++.old-deja/g++.abi/vtable2.C: Same.
* gcc.dg/attr-ifunc-1.c: Same.
From-SVN: r252976
|
|
vector loads (ALTIVEC_BUILTIN_LVX_*).
[gcc]
2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
From-SVN: r252975
|
|
[gcc/testsuite]
2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/fold-vec-ld-misc.c: New.
From-SVN: r252974
|
|
integer_cst in replace_uses_by, at tree-cfg.c:1904)
2017-09-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/82244
* tree-vrp.c (remove_range_assertions): Do not propagate
a constant to abnormals but replace the assert with a copy.
* gcc.dg/torture/pr82244.c: New testcase.
From-SVN: r252973
|
|
PR rtl-optimization/57878
PR rtl-optimization/68988
* lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
avoidance test involving non_reload_pseudos. Move frequency test
below the general fragmentation avoidance test.
From-SVN: r252972
|
|
gcc/testsuite/
* gnat.dg/validity_check.adb: Minor dg-options simplification.
From-SVN: r252971
|
|
outer_projection_mupa, at graphite-sese-to-poly.c:1175)
2017-09-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/69728
* graphite-sese-to-poly.c (schedule_error): New global.
(add_loop_schedule): Handle empty domain by failing the
schedule.
(build_original_schedule): Handle schedule_error.
* gfortran.dg/graphite/pr69728.f90: New testcase.
* gcc.dg/graphite/pr69728.c: Likewise.
From-SVN: r252968
|
|
iterate to sibling loops but only to siblings of inner loops.
2017-09-19 Richard Biener <rguenther@suse.de>
* graphite-scop-detection.c (scop_detection::can_represent_loop):
Do not iterate to sibling loops but only to siblings of inner
loops.
From-SVN: r252962
|
|
From-SVN: r252961
|