]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years ago * config/i386/i386.md
uros [Fri, 29 Apr 2016 14:31:56 +0000 (14:31 +0000)] 
* config/i386/i386.md
(operations with memory inputs setting flags peephole2):
Remove uneeded REG_P checks.  Cleanup pattern generation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235641 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibgcc/
olegendo [Fri, 29 Apr 2016 14:10:26 +0000 (14:10 +0000)] 
libgcc/
* config/sh/crt1.S: Remove SH5 support.
* config/sh/crti.S: Likewise.
* config/sh/crtn.S: Likewise.
* config/sh/lib1funcs-4-300.S: Likewise.
* config/sh/lib1funcs-Os-4-200.S: Likewise.
* config/sh/lib1funcs.S: Likewise.
* config/sh/linux-unwind.h: Likewise.
* config/sh/t-sh64: Delete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235640 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
ienkovich [Fri, 29 Apr 2016 13:27:24 +0000 (13:27 +0000)] 
gcc/

* tree-vect-loop.c (vect_transform_loop): Fix
nb_iterations_upper_bound computation for vectorized loop.

gcc/testsuite/

* gcc.target/i386/vect-unpack-2.c (avx512bw_test): Avoid
optimization of vector loop.
* gcc.target/i386/vect-unpack-3.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-1.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-2.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235639 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c/70852
mpolacek [Fri, 29 Apr 2016 12:39:25 +0000 (12:39 +0000)] 
PR c/70852
* c-common.c (warn_for_memset): Check domain before accessing it.

* gcc.dg/pr70852.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235638 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR sanitizer/70342
mpolacek [Fri, 29 Apr 2016 12:32:45 +0000 (12:32 +0000)] 
PR sanitizer/70342
* fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
TARGET_EXPR_SLOT as a base.

* g++.dg/ubsan/null-7.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235637 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Fri, 29 Apr 2016 12:07:31 +0000 (12:07 +0000)] 
2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*loadqi_update): Replace use of 'rI'
        constraint with 'rCm2' constraints to limit possible immediate
        size.
        (*load_zeroextendqisi_update): Likewise.
        (*load_signextendqisi_update): Likewise.
        (*loadhi_update): Likewise.
        (*load_zeroextendhisi_update): Likewise.
        (*load_signextendhisi_update): Likewise.
        (*loadsi_update): Likewise.
        (*loadsf_update): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235636 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/predicates.md (constm1_operand): Fix comparison.
uros [Fri, 29 Apr 2016 12:00:48 +0000 (12:00 +0000)] 
* config/i386/predicates.md (constm1_operand): Fix comparison.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235635 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Handle FPX NaN within optimized floating point library.
claziss [Fri, 29 Apr 2016 10:49:26 +0000 (10:49 +0000)] 
[ARC] Handle FPX NaN within optimized floating point library.

gcc/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* testsuite/gcc.target/arc/ieee_eq.c: New test.

libgcc/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/ieee-754/eqdf2.S: Handle FPX NaN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235633 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoinclude/
olegendo [Fri, 29 Apr 2016 10:44:57 +0000 (10:44 +0000)] 
include/
* longlong.h (umul_ppmm): Remove SHMEDIA checks.
(__umulsidi3, count_leading_zeros): Remove SHMEDIA implementations.

gcc/
* common/config/sh/sh-common.c (sh_option_optimization_table): Remove
remaining SH5 related settings.
* config/sh/sh-protos.h (shmedia_cleanup_truncate,
shmedia_prepare_call_address): Delete.
* config/sh/sh.c (sh_print_operand, output_stack_adjust,
DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
* config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
UNSUPPORTED_SH2A): Remove m5 checks.
(sh_divide_strategy_e): Remove SH5 division strategies.
(TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
* config/sh/sh.md (divsf3): Reinstate define_expand pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235632 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Fix obsolete constraint.
claziss [Fri, 29 Apr 2016 10:11:25 +0000 (10:11 +0000)] 
[ARC] Fix obsolete constraint.

include/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* longlong.h (add_ssaaaa): Replace obsolete 'J' constraint with
'Cal' constraint.
(sub_ddmmss): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235631 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390: Improve documentation of s390_reload_costs.
krebbel [Fri, 29 Apr 2016 09:20:55 +0000 (09:20 +0000)] 
S/390: Improve documentation of s390_reload_costs.

gcc/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.c (s390_rtx_costs): Update documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235630 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR/69089: C++-11: Ingore "alignas(0)".
krebbel [Fri, 29 Apr 2016 09:20:06 +0000 (09:20 +0000)] 
PR/69089: C++-11: Ingore "alignas(0)".

gcc/c-family/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR/69089
* c-common.c (handle_aligned_attribute): Allow 0 as an argument to the
"aligned" attribute.

gcc/testsuite/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

PR/69089
* g++.dg/cpp0x/alignas6.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235629 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoClean up tests where a later dg-do completely overrides another.
krebbel [Fri, 29 Apr 2016 09:19:01 +0000 (09:19 +0000)] 
Clean up tests where a later dg-do completely overrides another.

The attached patch cleans up some (mostly unnecessary) dg-do
directives in the gcc.dg and gcc.target test cases.

gcc/testsuite/ChangeLog:

2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc/testsuite/gcc.dg/cpp/mac-dir-2.c: Remove pointless duplicate
dg-do.
* gcc/testsuite/gcc.dg/pr27003.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/cswtch.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c: Likewise.
* gcc.target/arc/mxy.c: Likewise.
* gcc.target/arc/mswape.c: Likewise.
* gcc.target/arc/mrtsc.c: Likewise.
* gcc.target/arc/mcrc.c: Likewise.
* gcc.target/arc/mdsp-packa.c: Likewise.
* gcc.target/arc/mdvbf.c: Likewise.
* gcc.target/arc/mlock.c: Likewise.
* gcc.target/arc/mmac-24.c: Likewise.
* gcc.dg/spec-options.c: Switch order of the two "dg-do run".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235628 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390: Replace LDER with LDR.
krebbel [Fri, 29 Apr 2016 09:17:35 +0000 (09:17 +0000)] 
S/390: Replace LDER with LDR.

For performance reasons it is important to write the full 64 bits of
an FPR target reg even when dealing with 32 bit values.  So we chose
lder over ler for 32 bit float register moves.  lder zero-extends the
32 bit value from the source reg to 64 bit in the target.  However,
since it actually doesn't matter whether we write the upper 32 bits
with zeros or with any other garbage we can also use ldr instead.  It
is bit shorter and therefore will do good for I-Cache usage.

gcc/ChangeLog:

2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
* config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
Change lder to ldr.
* config/s390/vector.md ("mov<mode>"): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235627 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390: Memory constraint cleanup
krebbel [Fri, 29 Apr 2016 09:14:19 +0000 (09:14 +0000)] 
S/390: Memory constraint cleanup

This fixes an issue with the long displacement memory address
constraints S and T.  These were defined to only accept long
displacement addresses.  This is wrong since a memory constraint must
not reject an address with a 0 displacement.  Reload relies on being
able to turn an invalid memory address into a valid one by reloading
the address into a base register.  The S and T constraints would
reject such an address.

This isn't really a problem for the backend since we used the
constraints with that knowledge there but it is a problem for people
writing inline assemblies.

gcc/ChangeLog:

2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>

* config/s390/constraints.md ("U", "W"): Invoke
s390_mem_constraint with "ZR" and "ZT".
* config/s390/s390.c (s390_check_qrst_address): Reject invalid
addresses when using LRA.  Accept also short displacements for S
and T constraints.  Do not check for long displacement target for
S and T constraints.
(s390_mem_constraint): Remove handling of U and W constraints.
* config/s390/s390.md (various patterns): Remove the short
displacement constraints (Q and R) if a long displacement
constraint is present.  Add longdisp as required CPU capability.
* config/s390/vector.md: Likewise.
* config/s390/vx-builtins.md: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235626 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoavr-related reload fix from Senthil Kumar Selvaraj
bernds [Fri, 29 Apr 2016 08:59:09 +0000 (08:59 +0000)] 
avr-related reload fix from Senthil Kumar Selvaraj

PR target/60040
* reload1.c (reload): Call finish_spills before
restarting reload loop. Skip select_reload_regs
if update_eliminables_and_spill returns true.

testsuite/
PR target/60040
* gcc.target/avr/pr60040-1.c: New.
* gcc.target/avr/pr60040-2.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235625 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-29 Richard Biener <rguenther@suse.de>
rguenth [Fri, 29 Apr 2016 08:47:34 +0000 (08:47 +0000)] 
2016-04-29  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/pr18589-10.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235624 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Fix unwanted match for sign extend 16-bit constant.
claziss [Fri, 29 Apr 2016 08:39:22 +0000 (08:39 +0000)] 
[ARC] Fix unwanted match for sign extend 16-bit constant.

The combine pass may conclude umulhisi3_imm pattern can accept also sign
extended 16-bit constants. This patch prohibits the combine in considering
this pattern as suitable.

gcc/
2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
* config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
(umulhisi3_imm): Update predicates and constraint letters.
(umulhisi3_reg): Declare instruction as commutative.
* config/arc/constraints.md (J12, J16): New constraints.
* config/arc/predicates.md (short_unsigned_const_operand): New
predicate.
(arc_short_operand): Likewise.
* testsuite/gcc.target/arc/umulsihi3_z.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235623 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-29 Richard Biener <rguenther@suse.de>
rguenth [Fri, 29 Apr 2016 08:36:49 +0000 (08:36 +0000)] 
2016-04-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/13962
PR tree-optimization/65686
* tree-ssa-alias.h (ptrs_compare_unequal): Declare.
* tree-ssa-alias.c (ptrs_compare_unequal): New function
using PTA to compare pointers.
* match.pd: Add pattern for pointer equality compare simplification
using ptrs_compare_unequal.

* gcc.dg/uninit-pr65686.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235622 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-29 Richard Biener <rguenther@suse.de>
rguenth [Fri, 29 Apr 2016 08:08:45 +0000 (08:08 +0000)] 
2016-04-29  Richard Biener  <rguenther@suse.de>

* stor-layout.c (layout_type): Do not build a pointer-to-element
type for arrays.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235621 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
uros [Fri, 29 Apr 2016 06:12:47 +0000 (06:12 +0000)] 
* config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
Use SWI mode iterator.  Use general_reg_operand predicate.
(Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
predicates.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235620 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Fri, 29 Apr 2016 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235619 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR middle-end/70843
jakub [Thu, 28 Apr 2016 22:23:01 +0000 (22:23 +0000)] 
PR middle-end/70843
* fold-const.c (operand_equal_p): Don't verify hash value equality
if arg0 == arg1.
* tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
and OMP_CLAUSE.

* gcc.dg/pr70843.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235615 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Andrew MacLeod <amacleod@redhat.com>
law [Thu, 28 Apr 2016 22:00:19 +0000 (22:00 +0000)] 
2016-04-28  Andrew MacLeod  <amacleod@redhat.com>

* c-array-notation.c (fix_builtin_array_notation_fn): Fix final
argument to build_modify_expr in two cases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235614 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago compiler: Mark concurrent calls.
ian [Thu, 28 Apr 2016 19:43:20 +0000 (19:43 +0000)] 
compiler: Mark concurrent calls.

    If a call expression is executed in an independent goroutine via
    use of a Go statement, mark it as concurrent.

    Reviewed-on: https://go-review.googlesource.com/18700

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235608 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/70858
jakub [Thu, 28 Apr 2016 19:33:34 +0000 (19:33 +0000)] 
PR target/70858
* config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
(bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
__builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
__builtin_ia32_pdep_di and __builtin_ia32_pext_di.

* gcc.target/i386/pr70858.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235607 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agors6000: Clean up rs6000_stack_info a bit
segher [Thu, 28 Apr 2016 19:23:55 +0000 (19:23 +0000)] 
rs6000: Clean up rs6000_stack_info a bit

- Rename "info_ptr" to "info", as in all other routines;
- Don't set fields to 0, the whole struct already is set to 0;
- Fix formatting a bit.

* config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
to info.  Don't initialize separate fields to 0.  Clean up
formatting a bit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235606 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Thu, 28 Apr 2016 19:13:47 +0000 (19:13 +0000)] 
2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/nps400-1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235603 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago compiler: Export String_index_expression.
ian [Thu, 28 Apr 2016 19:12:13 +0000 (19:12 +0000)] 
compiler: Export String_index_expression.

    Exports String_index_expression and adds the getter `string` that
    returns the underlying string.  This will be used to handle string
    indexing different from array indexing in escape analysis.

    Reviewed-on: https://go-review.googlesource.com/18545

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235602 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (peephole2s for operations with memory inputs):
uros [Thu, 28 Apr 2016 19:11:25 +0000 (19:11 +0000)] 
* config/i386/i386.md (peephole2s for operations with memory inputs):
Use SWI mode iterator.
(peephole2s for operations with memory outputs): Ditto.
Do not check for stack checking probe.

(probe_stack): Remove expander.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235601 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
amylaar [Thu, 28 Apr 2016 19:08:28 +0000 (19:08 +0000)] 
2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
            Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
gcc/testsuite:
        * gcc.target/arc/movh_cl-1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235600 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gdbinit.in: Skip line-map.h.
jason [Thu, 28 Apr 2016 19:04:23 +0000 (19:04 +0000)] 
* gdbinit.in: Skip line-map.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235598 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago Implement C++17 [[nodiscard]] attribute.
jason [Thu, 28 Apr 2016 19:01:19 +0000 (19:01 +0000)] 
Implement C++17 [[nodiscard]] attribute.

PR c++/38172
PR c++/54379
gcc/c-family/
* c-lex.c (c_common_has_attribute): Handle nodiscard.
gcc/cp/
* parser.c (cp_parser_std_attribute): Handle [[nodiscard]].
* tree.c (handle_nodiscard_attribute): New.
(cxx_attribute_table): Add [[nodiscard]].
* cvt.c (cp_get_fndecl_from_callee, cp_get_callee_fndecl): New.
(maybe_warn_nodiscard): New.
(convert_to_void): Call it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235597 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * cvt.c (cp_get_callee): New.
jason [Thu, 28 Apr 2016 19:01:13 +0000 (19:01 +0000)] 
* cvt.c (cp_get_callee): New.

* constexpr.c (get_function_named_in_call): Use it.
* cxx-pretty-print.c (postfix_expression): Use it.
* except.c (check_noexcept_r): Use it.
* method.c (check_nontriv): Use it.
* tree.c (build_aggr_init_expr): Use it.
* cp-tree.h: Declare it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235596 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
amylaar [Thu, 28 Apr 2016 18:48:43 +0000 (18:48 +0000)] 
2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
            Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
        (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
        * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
        (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
        * config/arc/arc.opt (mcmem): New option.
        * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
        supply length for r/m alternative.
        (*extendqisi2_ac): Likewise.
        (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
        r/Uex alternative.
        (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
        (movhi_insn): Likewise.
        (movsi_insn): Add r/Ucm,Ucm/w alternatives.
        (*zero_extendqihi2_i): Add r/Ucm alternative.
        (*zero_extendqisi2_ac): Likewise.
        (*zero_extendhisi2_i): Likewise.
        * config/arc/constraints.md (Uex): New memory constraint.
        (Ucm): New define_constraint.
        * config/arc/predicates.md (long_immediate_loadstore_operand):
        Return 0 for MEM with cmem_address address.
        (cmem_address_0): New predicates.
        (cmem_address_1): Likewise.
        (cmem_address_2): Likewise.
        (cmem_address): Likewise.
gcc/testsuite:
        * gcc.target/arc/cmem-1.c: New file.
        * gcc.target/arc/cmem-2.c: New file.
        * gcc.target/arc/cmem-3.c: New file.
        * gcc.target/arc/cmem-4.c: New file.
        * gcc.target/arc/cmem-5.c: New file.
        * gcc.target/arc/cmem-6.c: New file.
        * gcc.target/arc/cmem-7.c: New file.
        * gcc.target/arc/cmem-ld.inc: New file.
        * gcc.target/arc/cmem-st.inc: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235595 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agosbitmap: Remove popcount
segher [Thu, 28 Apr 2016 18:43:12 +0000 (18:43 +0000)] 
sbitmap: Remove popcount

In r193072 sbitmap_popcount was removed, so we cannot ask for the popcount
of an sbitmap anymore.  Nothing calls sbitmap_alloc_with_popcount either.
This patch removes everything else popcount-related from sbitmap.

* cfganal.c (bitmap_intersection_of_succs): Delete assert checking
dst->popcount.
(bitmap_intersection_of_preds): Ditto.
(bitmap_union_of_succs): Ditto.
(bitmap_union_of_preds): Ditto.
* sbitmap.c (do_popcount): Delete.
(BITMAP_DEBUGGING): Delete.
(sbitmap_verify_popcount): Delete.
(sbitmap_alloc): Don't initialize the popcount field.
(sbitmap_alloc_with_popcount): Delete.
(sbitmap_resize): Don't resize the popcount array.
(sbitmap_vector_alloc): Don't initialize the popcount field.
(bitmap_copy): Don't copy the popcount array.
(bitmap_clear): Don't clear the popcount array.
(bitmap_clear): Delete the popcount array handling.
(bitmap_ior_and_compl): Delete the popcount assert.
(bitmap_not): Ditto.
(bitmap_and_compl): Ditto.
(bitmap_and): Delete the popcount array handling.
(bitmap_xor): Ditto.
(bitmap_ior): Ditto.
(bitmap_or_and): Delete the popcount assert.
(bitmap_and_or): Ditto.
(popcount_table): Delete.
(sbitmap_elt_popcount): Delete.
* sbitmap.h (simple_bitmap_def): Delete the popcount field.
(bitmap_set_bit): Delete the popcount assert.
(bitmap_clear_bit): Ditto.
(sbitmap_free): Don't free the popcount array.
(sbitmap_alloc_with_popcount): Delete declaration.
(sbitmap_popcount): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235592 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ChangeLog: Remove duplicate entry.
uros [Thu, 28 Apr 2016 18:29:33 +0000 (18:29 +0000)] 
* ChangeLog: Remove duplicate entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235591 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
amylaar [Thu, 28 Apr 2016 18:21:42 +0000 (18:21 +0000)] 
2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
            Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
        (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
        * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
        (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
        * config/arc/arc.opt (mcmem): New option.
        * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
        supply length for r/m alternative.
        (*extendqisi2_ac): Likewise.
        (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
        r/Uex alternative.
        (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
        (movhi_insn): Likewise.
        (movsi_insn): Add r/Ucm,Ucm/w alternatives.
        (*zero_extendqihi2_i): Add r/Ucm alternative.
        (*zero_extendqisi2_ac): Likewise.
        (*zero_extendhisi2_i): Likewise.
        * config/arc/constraints.md (Uex): New memory constraint.
        (Ucm): New define_constraint.
        * config/arc/predicates.md (long_immediate_loadstore_operand):
        Return 0 for MEM with cmem_address address.
        (cmem_address_0): New predicates.
        (cmem_address_1): Likewise.
        (cmem_address_2): Likewise.
        (cmem_address): Likewise.
gcc/testsuite:
        * gcc.target/arc/cmem-1.c: New file.
        * gcc.target/arc/cmem-2.c: New file.
        * gcc.target/arc/cmem-3.c: New file.
        * gcc.target/arc/cmem-4.c: New file.
        * gcc.target/arc/cmem-5.c: New file.
        * gcc.target/arc/cmem-6.c: New file.
        * gcc.target/arc/cmem-7.c: New file.
        * gcc.target/arc/cmem-ld.inc: New file.
        * gcc.target/arc/cmem-st.inc: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235590 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agors6000: Rename insn_chain_scanned_p to spe_insn_chain_scanned_p
segher [Thu, 28 Apr 2016 17:51:19 +0000 (17:51 +0000)] 
rs6000: Rename insn_chain_scanned_p to spe_insn_chain_scanned_p

This makes it clearer this field is only for SPE.

* config/rs6000/rs6000.c (machine_function): Rename
insn_chain_scanned_p to spe_insn_chain_scanned_p.
(rs6000_stack_info): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235588 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Thu, 28 Apr 2016 17:16:05 +0000 (17:16 +0000)] 
2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/constraints.md (Usd): Convert to define_constraint.
        (Us<): Likewise.
        (Us>): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235587 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/70821
jakub [Thu, 28 Apr 2016 17:10:14 +0000 (17:10 +0000)] 
PR target/70821
* config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
Add new peephole2 where the first insn is *mov<mode>_or instead of
*mov<mode>_internal.

* gcc.target/i386/pr70821.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235586 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agotracer: Make bb_seen static
segher [Thu, 28 Apr 2016 17:08:39 +0000 (17:08 +0000)] 
tracer: Make bb_seen static

bb_seen is not used outside of tracer.c.

* tracer.c (bb_seen): Make static.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235585 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Thu, 28 Apr 2016 16:59:18 +0000 (16:59 +0000)] 
2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>

        * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
        support, setup defaults.
        * config/arc/arc-opts.h (enum processor_type): Add NPS400.
        * config/arc/arc.c (arc_init): Add NPS400 support.
        * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
        (TARGET_ARC700): NPS400 is also an ARC700.
        * config/arc/arc.opt: Add NPS400 options to -mcpu=.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235584 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agonds32: Fix casesi (PR70668)
segher [Thu, 28 Apr 2016 16:50:41 +0000 (16:50 +0000)] 
nds32: Fix casesi (PR70668)

Expanders do not have more elements in the operands array than declared
in the pattern.  So, we cannot use operands[5] here.  Instead just
declare and use another rtx.

PR target/70668
* config/nds32/nds32.md (casesi): Don't access the operands array
out of bounds.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235583 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
uros [Thu, 28 Apr 2016 16:35:03 +0000 (16:35 +0000)] 
* config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
(or $-1,reg peephole2): Ditto.
(strict_low_part zeroing peephole2): Use SWI12 mode iterator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235581 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agodoc/extend.texi: Discourage use of the optimize attribute
trippels [Thu, 28 Apr 2016 16:25:00 +0000 (16:25 +0000)] 
doc/extend.texi: Discourage use of the optimize attribute

* doc/extend.texi (Common Function Attributes) [optimize]:
Discourage use of the optimize attribute.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235580 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoForgotten gcc/java/ChangeLog entry.
ro [Thu, 28 Apr 2016 16:23:36 +0000 (16:23 +0000)] 
Forgotten gcc/java/ChangeLog entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235579 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoThis patch adds support for the signed and unsigned int versions of the
seurer [Thu, 28 Apr 2016 16:01:52 +0000 (16:01 +0000)] 
This patch adds support for the signed and unsigned int versions of the
vec_adde altivec builtins from the Power Architecture 64-Bit ELF V2 ABI
OpenPOWER ABI for Linux Supplement (16 July 2015 Version 1.1). There are
many of the builtins that are missing and this is the first of a series
of patches to add them.

There aren't instructions for the int versions of vec_adde so the
output code is built from other built-ins that do have instructions
which in this case is just two vec_adds with a vec_and to ensure the
carry vector is comprised of only the values 0 or 1.

The new test cases are executable tests which verify that the generated
code produces expected values. C macros were used so that the same
test case could be used for both the signed and unsigned versions. An
extra executable test case is also included to ensure that the modified
support for the __int128 versions of vec_adde is not broken. The same
test case could not be used for both int and __int128 because of some
differences in loading and storing the vectors.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
regressions. Is this ok for trunk?

[gcc]

2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
special case builtin.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
ALTIVEC_BUILTIN_VEC_ADDE.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
support for ALTIVEC_BUILTIN_VEC_ADDE.
* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
for __builtin_vec_adde.

[gcc/testsuite]

2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-adde.c: New test.
* gcc.target/powerpc/vec-adde-int128.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235577 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
jakub [Thu, 28 Apr 2016 15:57:16 +0000 (15:57 +0000)] 
* config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
* config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.

* gcc.target/i386/avx-vround-1.c: New test.
* gcc.target/i386/avx-vround-2.c: New test.
* gcc.target/i386/avx512vl-vround-1.c: New test.
* gcc.target/i386/avx512vl-vround-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235576 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDon't include minor version in GCJ ABI version (PR java/70839)
ro [Thu, 28 Apr 2016 15:25:14 +0000 (15:25 +0000)] 
Don't include minor version in GCJ ABI version (PR java/70839)

PR java/70839
* decl.c (parse_version): Remove minor handling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235575 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoCilk Plus testsuite needs massive cleanup (PR testsuite/70595)
ro [Thu, 28 Apr 2016 15:16:57 +0000 (15:16 +0000)] 
Cilk Plus testsuite needs massive cleanup (PR testsuite/70595)

gcc:
PR testsuite/70595
* doc/sourcebuild.texi (Effective-Target Keywords, Other
attributes): Document cilkplus_runtime.

gcc/testsuite:
PR testsuite/70595
* lib/target-supports.exp (check_libcilkrts_available): Rename to ...
(check_effective_target_cilkplus_runtime): ... this.
* g++.dg/cilk-plus/cilk-plus.exp: Adapt to it.
* gcc.dg/cilk-plus/cilk-plus.exp: Likewise.

* c-c++-common/cilk-plus/CK/cilk-for-2.c: Remove dg-do target selector.
Require cilkplus_runtime.
Don't add -lcilkrts.
* c-c++-common/cilk-plus/CK/cilk-fors.c: Likewise.
* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Likewise.
* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Likewise.
* c-c++-common/cilk-plus/CK/fib.c: Likewise.
* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise.
* c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise.
* c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise.
* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Likewise.
* c-c++-common/cilk-plus/CK/pr60586.c: Likewise.
* c-c++-common/cilk-plus/CK/pr69826-1.c: Likewise.
* c-c++-common/cilk-plus/CK/pr69826-2.c: Likewise.
* c-c++-common/cilk-plus/CK/spawnee_inline.c: Likewise.
* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.
* c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise.
* c-c++-common/cilk-plus/CK/steal_check.c: Likewise.
* c-c++-common/cilk-plus/CK/varargs_test.c: Likewise.
* g++.dg/cilk-plus/CK/catch_exc.cc: Likewise.
* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: Likewise.
* g++.dg/cilk-plus/CK/const_spawn.cc: Likewise.
* g++.dg/cilk-plus/CK/fib-opr-overload.cc: Likewise.
* g++.dg/cilk-plus/CK/fib-tplt.cc: Likewise.
* g++.dg/cilk-plus/CK/for1.cc: Likewise.
* g++.dg/cilk-plus/CK/lambda_spawns.cc: Likewise.
* g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc: Likewise.
* g++.dg/cilk-plus/CK/pr60586.cc: Likewise.
* g++.dg/cilk-plus/CK/pr66326.cc: Likewise.
* g++.dg/cilk-plus/CK/stl_iter.cc: Likewise.
* g++.dg/cilk-plus/CK/stl_rev_iter.cc: Likewise.
* g++.dg/cilk-plus/CK/stl_test.cc: Likewise.

* c-c++-common/cilk-plus/CK/pr63307.c: Remove dg-do target selector.
* c-c++-common/cilk-plus/SE/ef_error3.c: Likewise.

* c-c++-common/cilk-plus/SE/ef_error2.c: Explain target selector.

* c-c++-common/cilk-plus/CK/test__cilk.c: Run if
cilkplus_runtime.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235574 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoUpdate .po files.
jsm28 [Thu, 28 Apr 2016 14:36:54 +0000 (14:36 +0000)] 
Update .po files.

gcc/po:
* 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.

libcpp/po:
* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
vi.po, zh_CN.po, zh_TW.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235571 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoVerify that context of local DECLs is the current function
jamborm [Thu, 28 Apr 2016 14:35:04 +0000 (14:35 +0000)] 
Verify that context of local DECLs is the current function

2016-04-28  Martin Jambor  <mjambor@suse.cz>

* tree-cfg.c (verify_expr): Verify that local declarations belong to
this function.  Call verify_expr on MEM_REFs and bases of other
handled_components.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235570 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[internal-fn.c][committed] Convert conditional compilation on WORD_REGISTER_OPERATIONS
ktkachov [Thu, 28 Apr 2016 13:38:18 +0000 (13:38 +0000)] 
[internal-fn.c][committed] Convert conditional compilation on WORD_REGISTER_OPERATIONS

* internal-fn.c (expand_arith_overflow): Convert preprocessor check
for WORD_REGISTER_OPERATIONS to runtime check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235569 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Pass mfpuda to assembler.
claziss [Thu, 28 Apr 2016 13:08:01 +0000 (13:08 +0000)] 
[ARC] Pass mfpuda to assembler.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235568 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Fix FPX/FPUDA code gen when compiling for big-endian.
claziss [Thu, 28 Apr 2016 12:52:04 +0000 (12:52 +0000)] 
[ARC] Fix FPX/FPUDA code gen when compiling for big-endian.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_process_double_reg_moves): Fix for
big-endian compilation.
(arc_rtx_costs): Fix high/low naming.
* config/arc/arc.md (addf3): Likewise.
(subdf3): Likewise.
(muldf3): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235567 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Richard Biener <rguenther@suse.de>
rguenth [Thu, 28 Apr 2016 12:34:28 +0000 (12:34 +0000)] 
2016-04-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70840
* match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
Mark x * pow(x,c) -> pow(x,c+1) commutative.
Add powi(x,y) * powi(z,y) -> powi(x*z,y).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235566 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibstdc++/70766 use std::addressof instead of operator&
redi [Thu, 28 Apr 2016 12:33:07 +0000 (12:33 +0000)] 
libstdc++/70766 use std::addressof instead of operator&

PR libstdc++/70766
* include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
__addressof.
* include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
Likewise.
* include/std/atomic (atomic<_Tp>): Likewise.
* include/std/shared_mutex (shared_lock): Likewise.
* testsuite/24_iterators/istream_iterator/70766.cc: New test.
* testsuite/24_iterators/ostream_iterator/70766.cc : New test.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
* testsuite/29_atomics/atomic/70766.cc: New test.
* testsuite/30_threads/shared_lock/70766.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235565 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * include/bits/hashtable_policy.h (__detail::_Insert_base,
redi [Thu, 28 Apr 2016 12:32:50 +0000 (12:32 +0000)] 
* include/bits/hashtable_policy.h (__detail::_Insert_base,
__detail::_Insert): Improve comments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235564 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Define WORD_REGISTER_OPERATIONS to zero and comment why
ktkachov [Thu, 28 Apr 2016 12:24:47 +0000 (12:24 +0000)] 
[AArch64] Define WORD_REGISTER_OPERATIONS to zero and comment why

* config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
and explain why in a comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235563 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Don't use drsub* instructions when selecting fpuda.
claziss [Thu, 28 Apr 2016 12:15:06 +0000 (12:15 +0000)] 
[ARC] Don't use drsub* instructions when selecting fpuda.

The double precision floating point assist instructions are not
implementing the reverse double subtract instruction (drsub) found in
the FPX extension.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (cpu_facility): Add fpx variant.
(subdf3): Prohibit use reverse sub when assist operations option
is enabled.
* config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
instructions only when FPX is enabled.
        * testsuite/gcc.target/arc/trsub.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235562 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
uros [Thu, 28 Apr 2016 12:07:04 +0000 (12:07 +0000)] 
* config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
mult_operator when calculating "type" attribute.
(*fop_<mode>_1_i387): Ditto.
(*fop_xf_1_i387): Ditto.
(x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
Use std::swap to swap operands.  Use RTL expressions to generate
converted pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235561 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoReplace AWK script with the python script.
marxin [Thu, 28 Apr 2016 12:02:37 +0000 (12:02 +0000)] 
Replace AWK script with the python script.

* analyze_brprob: Remove.
* analyze_brprob.py: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235560 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Add TLS support.
claziss [Thu, 28 Apr 2016 11:53:46 +0000 (11:53 +0000)] 
[ARC] Add TLS support.

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
    Joern Rennecke  <joern.rennecke@embecosm.com>

* config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
declaration.
(emit_pic_move): Remove.
(arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
* config/arc/arc.c (emit_pic_move): Removed.
(TARGET_HAVE_TLS): Define.
(arc_conditional_register_usage): Test for arc_tp_regno.
(arc_print_operand, arc_print_operand_address): Handle TLS
unspecs.
(arc_needs_pcl_p): New function.
(arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
(arc_legitimate_pic_addr_p): Handle TLS unspecs.
(arc_raw_symbolic_reference_mentioned_p): Likewise.
(arc_get_tp, arc_emit_call_tls_get_addr): New function.
(arc_legitimize_tls_address): Likewise.
(DTPOFF_ZERO_SYM): Define.
(arc_legitimize_pic_address): Make it static, handle TLS cases.
(arc_output_pic_addr_const): Print TLS unspecs.
(prepare_pic_move): New function, replaces emit_pic_move.
(arc_legitimate_constant_p): Handle TLS unspecs.
(arc_legitimate_address_p): Likewise.
(arc_rewrite_small_data_p): Use assert for TLS constants.
(prepare_move_operands): Use prepare_pic_move.
(arc_legitimize_address): Legitimize tls addresses.
(arc_epilogue_uses): Check for arc_tp_regno.
(arc_eh_uses, insn_is_tls_gd_dispatch): New function.
* config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
Define.
[DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
Likewise.
[DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
%(arc_tls_extra_start_spec).
(TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
(REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
(EH_USES): Define.
(INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
* config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
(UNSPEC_TLS_OFF): Add.
(R10_REG): Define.
(tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
(get_thread_pointersi): New patterns.
* config/arc/arc.opt (mtp-regno): New option.
* config/arc/predicates.md (move_src_operand): Handle TLS symbols.
(move_dest_operand): Likewise.
* configure: Regenerate.
* configure.ac: Add arc*-*-* case to test for tls.
* doc/invoke.texi (ARC options): Document mtp-regno.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235559 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC/LIBGCC] Add TLS support.
claziss [Thu, 28 Apr 2016 11:53:34 +0000 (11:53 +0000)] 
[ARC/LIBGCC] Add TLS support.

libgcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
    Joern Rennecke  <joern.rennecke@embecosm.com>

* config/arc/crttls.S: New file.
* config/arc/t-arc: New rule.
* config.host (arc*-*-elf*, arc*-*-linux*): Add crttls.o.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235558 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR ada/70786
ebotcazou [Thu, 28 Apr 2016 10:58:38 +0000 (10:58 +0000)] 
PR ada/70786
* a-textio.adb (Get_Immediate): Add missing 'not' in expression.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235554 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARC] Add SIMD extensions for ARC HS
claziss [Thu, 28 Apr 2016 09:53:13 +0000 (09:53 +0000)] 
[ARC] Add SIMD extensions for ARC HS

gcc/
2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_vector_mode_supported_p): Add support for
the new ARC HS SIMD instructions.
(arc_preferred_simd_mode): New function.
(arc_autovectorize_vector_sizes): Likewise.
(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
(arc_init_reg_tables): Accept new ARC HS SIMD modes.
(arc_init_builtins): Add new SIMD builtin types.
(arc_split_move): Handle 64 bit vector moves.
* config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
(TARGET_PLUS_QMACW): Define.
* config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
(DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
(VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
(VSUBADD4H): New builtins.
* config/arc/simdext.md: Add new ARC HS SIMD instructions.
* testsuite/gcc.target/arc/builtin_simdarc.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235551 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/c-family/ChangeLog:
doko [Thu, 28 Apr 2016 09:12:05 +0000 (09:12 +0000)] 
gcc/c-family/ChangeLog:

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
    Matthias Klose  <doko@debian.org>

* c-common.c (get_source_date_epoch): New function, gets the environment
variable SOURCE_DATE_EPOCH and parses it as long long with error
handling.
* c-common.h (get_source_date_epoch): Prototype.
* c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.

gcc/ChangeLog:

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
    Matthias Klose  <doko@debian.org>

* doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.

libcpp/ChangeLog:

2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
    Matthias Klose  <doko@debian.org>

* include/cpplib.h (cpp_init_source_date_epoch): Prototype.
* init.c (cpp_init_source_date_epoch): New function.
* internal.h: Added source_date_epoch variable to struct
cpp_reader to store a reproducible date.
* macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from
pfile->source_date_epoch instead of localtime if source_date_epoch is
set, to be used for __DATE__ and __TIME__ macros to help reproducible
builds.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235550 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Matthias Klose <doko@ubuntu.com>
doko [Thu, 28 Apr 2016 08:22:10 +0000 (08:22 +0000)] 
2016-04-28  Matthias Klose  <doko@ubuntu.com>

        * decl.c (parse_version): Don't encode the minor version in the abi
        version.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235546 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-28 Richard Biener <rguenther@suse.de>
rguenth [Thu, 28 Apr 2016 07:55:33 +0000 (07:55 +0000)] 
2016-04-28  Richard Biener  <rguenther@suse.de>

PR middle-end/70777
* fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
canonicalization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235545 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
olegendo [Thu, 28 Apr 2016 01:18:13 +0000 (01:18 +0000)] 
gcc/
* common/config/sh/sh-common.c: Remove SH5 support.
* config/sh/constraints.md: Likewise.
* config/sh/config/sh/elf.h: Likewise.
* config/sh/linux.h: Likewise.
* config/sh/netbsd-elf.h: Likewise.
* config/sh/predicates.md: Likewise.
* config/sh/sh-c.c: Likewise.
* config/sh/sh-protos.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.h: Likewise.
* config/sh/sh.md: Likewise.
* config/sh/sh.opt: Likewise.
* config/sh/sync.md: Likewise.
* config/sh/sh64.h: Delete.
* config/sh/shmedia.h: Likewise.
* config/sh/shmedia.md: Likewise.
* config/sh/sshmedia.h: Likewise.
* config/sh/t-netbsd-sh5-64: Likewise.
* config/sh/t-sh64: Likewise.
* config/sh/ushmedia.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235544 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Thu, 28 Apr 2016 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235543 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (sign_extend to memory peephole2s): Use
uros [Wed, 27 Apr 2016 23:51:30 +0000 (23:51 +0000)] 
* config/i386/i386.md (sign_extend to memory peephole2s): Use
general_reg_operand instead of register_operand predicate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235539 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Wed, 27 Apr 2016 22:39:43 +0000 (22:39 +0000)] 
2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* params.def (MIN_PARTITION_SIZE): Set default value to 10000.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235538 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agomatch.pd: unsigned A - B > A --> A < B
glisse [Wed, 27 Apr 2016 21:30:27 +0000 (21:30 +0000)] 
match.pd: unsigned A - B > A --> A < B

2016-04-27  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (A - B > A, A + B < A): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/overflow-2.c: New testcase.
* gcc.dg/tree-ssa/minus-ovf.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235537 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoReduce nesting of parentheses in conditionals generated by genattrtab
ppalka [Wed, 27 Apr 2016 21:18:05 +0000 (21:18 +0000)] 
Reduce nesting of parentheses in conditionals generated by genattrtab

gcc/ChangeLog:

* genattrtab.c (write_test_expr): New parameter EMIT_PARENS
which defaults to true.  Emit an outer pair of parentheses only if
EMIT_PARENS.  When continuing a chain of && or || (or & or |),
don't emit parentheses for the right-hand operand.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235536 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
law [Wed, 27 Apr 2016 20:52:15 +0000 (20:52 +0000)] 
    * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235535 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/69024
law [Wed, 27 Apr 2016 20:41:52 +0000 (20:41 +0000)] 
PR c++/69024
PR c++/68997
* cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
(cilk_recognize_spawn): Renamed from recognize_spawn and change to
external linkage.
(cilk_detect_and_unwrap): Corresponding changes.
(extract_free_variables): Don't extract free variables from
AGGR_INIT_EXPR slot.
* c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
(cilk_recognize_spawn): Likewise.

PR c++/69024
PR c++/68997
* cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
instead of cilk_detect_spawn_and_unwrap.
* cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
(find_spawn): New.
(cilk_cp_detect_spawn_and_unwrap): New.
* lambda.c: Include cp-cilkplus.h.
* parser.c: Include cp-cilkplus.h.
* cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
* cp-cilkpus.h: New file.

PR c++/69024
PR c++/68997
* g++.dg/cilk-plus/CK/pr68001.cc: Fix to not depend on broken
diagnostic.
* g++.dg/cilk-plus/CK/pr69024.cc: New test.
* g++.dg/cilk-plus/CK/pr68997.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235534 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
wschmidt [Wed, 27 Apr 2016 20:22:27 +0000 (20:22 +0000)] 
2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
(altivec_lvx_<mode>_internal): Document.
(altivec_lvx_<mode>_2op): New define_insn.
(altivec_lvx_<mode>_1op): Likewise.
(altivec_lvx_<mode>_2op_si): Likewise.
(altivec_lvx_<mode>_1op_si): Likewise.
(altivec_stvx_<mode>): Remove.
(altivec_stvx_<mode>_internal): Document.
(altivec_stvx_<mode>_2op): New define_insn.
(altivec_stvx_<mode>_1op): Likewise.
(altivec_stvx_<mode>_2op_si): Likewise.
(altivec_stvx_<mode>_1op_si): Likewise.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Expand vec_ld and vec_st during parsing.
* config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
changes.
(altivec_expand_stvx_be): Likewise.
(altivec_expand_lv_builtin): Expand lvx built-ins to expose the
address-masking behavior in RTL.
(altivec_expand_stv_builtin): Expand stvx built-ins to expose the
address-masking behavior in RTL.
(altivec_expand_builtin): Change builtin code arguments for calls
to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
(insn_is_swappable_p): Avoid incorrect swap optimization in the
presence of lvx/stvx patterns.
(alignment_with_canonical_addr): New function.
(alignment_mask): Likewise.
(find_alignment_op): Likewise.
(recombine_lvx_pattern): Likewise.
(recombine_stvx_pattern): Likewise.
(recombine_lvx_stvx_patterns): Likewise.
(rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
stvx patterns from expand.
* config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
expansions.
(vector_altivec_store_<mode>): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235533 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Replace insn to zero up SIMD registers
evandro [Wed, 27 Apr 2016 19:52:58 +0000 (19:52 +0000)] 
[AArch64] Replace insn to zero up SIMD registers

gcc/
* config/aarch64/aarch64.md
(*movhf_aarch64): Add "movi %0, #0" to zero up register and
remove the "fp" attributes.
(*movsf_aarch64): Add "movi %0, #0" to zero up register and
add the "simd" attributes.
(*movdf_aarch64): Likewise.
(*movtf_aarch64): Remove the "fp" attributes.
* testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
* testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235532 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agomaybe_set_first_label_num can take an rtx_code_label *
dmalcolm [Wed, 27 Apr 2016 18:22:12 +0000 (18:22 +0000)] 
maybe_set_first_label_num can take an rtx_code_label *

The function maybe_set_first_label_num acts on a CODE_LABEL; we can
capture that in the type system.

gcc/ChangeLog:
* emit-rtl.c (maybe_set_first_label_num): Strengthen param from
rtx to rtx_code_label *.
* rtl.h (maybe_set_first_label_num): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235525 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agodf: make df_problem instances "const"
dmalcolm [Wed, 27 Apr 2016 18:18:45 +0000 (18:18 +0000)] 
df: make df_problem instances "const"

The various struct df_problem instances are constant data; mark them
as such.

gcc/ChangeLog:
* df-core.c (df_add_problem): Make the problem param be const.
(df_remove_problem): Make local "problem" be const.
* df-problems.c (problem_RD): Make const.
(problem_LR): Likewise.
(problem_LIVE): Likewise.
(problem_MIR): Likewise.
(problem_CHAIN): Likewise.
(problem_WORD_LR): Likewise.
(problem_NOTE): Likewise.
(problem_MD): Likewise.
* df-scan.c (problem_SCAN): Likewise.
* df.h (struct df_problem): Make field "dependent_problem" be
const.
(struct dataflow): Likewise for field "problem".
(df_add_problem): Make param const.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235524 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
uros [Wed, 27 Apr 2016 18:10:02 +0000 (18:10 +0000)] 
* config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
inter-unit moves to/from vector registers are enabled.  Do not disable
for TARGET_MMX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235523 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoConvert DF_SCAN etc from #define to an enum
dmalcolm [Wed, 27 Apr 2016 18:08:46 +0000 (18:08 +0000)] 
Convert DF_SCAN etc from #define to an enum

Whilst debugging an issue in df, I noticed that there are
some #define constants that could be an enum (thus making them known
to gdb).

Convert them to a new enum, and update the "id" field of
struct df_problem.

gcc/ChangeLog:
* df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
#define to...
(enum df_problem_id): ...this new enum.
(struct df_problem): Convert field "id" from "int" to
enum df_problem_id.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235522 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged
ebotcazou [Wed, 27 Apr 2016 18:08:39 +0000 (18:08 +0000)] 
* sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged
incomplete type without full view.
* sem_ch6.adb (Exchange_Limited_Views): Change into a function and
return the list of changes.
(Restore_Limited_Views): New procedure to undo the transformation made
by Exchange_Limited_Views.
(Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views
and call Restore_Limited_Views at the end, if need be.
(Possible_Freeze): Do not delay freezing because of incomplete types.
(Process_Formals): Remove kludges for class-wide types.
* types.h (By_Copy_Return): Delete.
* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around.
(TYPE_DUMMY_IN_PROFILE_P): New macro.
* gcc-interface/gigi.h (update_profiles_with): Declare.
(finish_subprog_decl): Likewise.
(get_minimal_subprog_decl): Delete.
(create_subprog_type): Likewise.
(create_param_decl): Adjust prototype.
(create_subprog_decl): Likewise.
* gcc-interface/decl.c (defer_limited_with): Rename into...
(defer_limited_with_list): ...this.
(gnat_to_gnu_entity): Adjust to above renaming.
(finalize_from_limited_with): Likewise.
(tree_entity_vec_map): New structure.
(gt_pch_nx): New helpers.
(dummy_to_subprog_map): New hash table.
(gnat_to_gnu_param): Set the SLOC here.  Remove MECH parameter and
add FIRST parameter.  Deal with the mechanism here instead of...
Do not make read-only variant of types.  Simplify expressions.
In the by-ref case, test the mechanism before must_pass_by_ref
and also TYPE_IS_BY_REFERENCE_P before building the reference type.
(gnat_to_gnu_subprog_type): New static function extracted from...
Do not special-case the type_annotate_only mode.  Call
gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type.
Deal with dummy return types.  Likewise for parameter types.  Deal
with by-reference types explicitly and add a kludge for null procedures
with untagged incomplete types.  Remove assertion on the types and be
prepared for multiple elaboration of the declarations.  Skip the whole
CICO processing if the profile is incomplete.  Handle the completion of
a previously incomplete profile.
(gnat_to_gnu_entity) <E_Variable>: Rename local variable.
Adjust couple of calls to create_param_decl.
<E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>:
Remove specific deferring code.
<E_Access_Type>: Also deal with E_Subprogram_Type designated type.
Simplify handling of dummy types and remove obsolete comment.
Constify a couple of variables.  Do not set TYPE_UNIVERSAL_ALIASING_P
on dummy types.
<E_Access_Subtype>: Tweak comment and simplify condition.
<E_Subprogram_Type>: ...here.  Call it and clean up handling.  Remove
obsolete comment and adjust call to gnat_to_gnu_param.  Adjust call to
create_subprog_decl.
<E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of
inner break statements.  Tidy up condition guarding direct use of the
full view.
(get_minimal_subprog_decl): Delete.
(finalize_from_limited_with): Call update_profiles_with on dummy types
with TYPE_DUMMY_IN_PROFILE_P set.
(is_from_limited_with_of_main): Delete.
(associate_subprog_with_dummy_type): New function.
(update_profile): Likewise.
(update_profiles_with): Likewise.
(gnat_to_gnu_profile_type): Likewise.
(init_gnat_decl): Initialize dummy_to_subprog_map.
(destroy_gnat_decl): Destroy dummy_to_subprog_map.
* gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing
TYPE_UNIVERSAL_ALIASING_P.
(gnat_get_array_descr_info): Minor tweak.
* gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl.
(build_raise_check): Likewise.
(Compilation_Unit_to_gnu): Likewise.
(Identifier_to_gnu): Accept mismatches coming from a limited context.
(Attribute_to_gnu): Remove kludge for dispatch table entities.
(process_freeze_entity): Do not retrieve old definition if there is an
address clause on the entity.  Call update_profiles_with on dummy types
with TYPE_DUMMY_IN_PROFILE_P set.
* gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set
TYPE_REFERENCE_TO to the fat pointer type.
(create_subprog_type): Delete.
(create_param_decl): Remove READONLY parameter.
(finish_subprog_decl): New function extracted from...
(create_subprog_decl): ...here.  Call it.  Remove CONST_FLAG and
VOLATILE_FLAG parameters and adjust.
(update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained
case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235521 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix comment in rtl.def
dmalcolm [Wed, 27 Apr 2016 17:54:42 +0000 (17:54 +0000)] 
Fix comment in rtl.def

Commit r210360 removed the first "i" field from the various instruction
nodes in rtx.def, moving it to an explicit "int insn_uid;" field
of the union "u2" within rtx_def.

Update the comment in rtl.def to reflect this change.  Also, fix
a stray apostrophe.

gcc/ChangeLog:
* rtl.def: Update comment for "things in the instruction chain" to
reflect the removal of the leading "i" field for INSN_UID in
r210360.  Fix bogus apostrophe.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235520 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md
uros [Wed, 27 Apr 2016 17:45:32 +0000 (17:45 +0000)] 
* config/i386/i386.md
(lea arith with mem operand + setcc peephole2): Set operator mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235519 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoExtend STV pass to 64-bit mode
hjl [Wed, 27 Apr 2016 17:32:40 +0000 (17:32 +0000)] 
Extend STV pass to 64-bit mode

128-bit SSE load and store instructions can be used for load and store
of 128-bit integers if they are the only operations on 128-bit integers.
To convert load and store of 128-bit integers to 128-bit SSE load and
store, the original STV pass, which is designed to convert 64-bit integer
operations to SSE2 operations in 32-bit mode, is extended to 64-bit mode
in the following ways:

1. Class scalar_chain is turned into base class.  The 32-bit specific
member functions are moved to the new derived class, dimode_scalar_chain.
The new derived class, timode_scalar_chain, is added to convert oad and
store of 128-bit integers to 128-bit SSE load and store.
2. Add the 64-bit version of scalar_to_vector_candidate_p and
remove_non_convertible_regs.  Only TImode load and store are allowed
for conversion.  If one instruction on the chain of dependent
instructions aren't TImode load or store, the chain of instructions
won't be converted.
3. In 64-bit, we only convert from TImode to V1TImode, which have the
same size.  The difference is only vector registers are allowed in
TImode so that 128-bit SSE load and store instructions will be used
for load and store of 128-bit integers.
4. Put the 64-bit STV pass before the CSE pass so that instructions
changed or generated by the STV pass can be CSEed.

convert_scalars_to_vector calls free_dominance_info in 64-bit mode to
work around ICE in fwprop pass:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70807

when building libgcc on Linux/x86-64.

gcc/

PR target/70155
* config/i386/i386.c (scalar_to_vector_candidate_p): Renamed
to ...
(dimode_scalar_to_vector_candidate_p): This.
(timode_scalar_to_vector_candidate_p): New function.
(scalar_to_vector_candidate_p): Likewise.
(timode_check_non_convertible_regs): Likewise.
(timode_remove_non_convertible_regs): Likewise.
(remove_non_convertible_regs): Likewise.
(remove_non_convertible_regs): Renamed to ...
(dimode_remove_non_convertible_regs): This.
(scalar_chain::~scalar_chain): Make it virtual.
(scalar_chain::compute_convert_gain): Make it pure virtual.
(scalar_chain::mark_dual_mode_def): Likewise.
(scalar_chain::convert_insn): Likewise.
(scalar_chain::convert_registers): Likewise.
(scalar_chain::add_to_queue): Make it protected.
(scalar_chain::emit_conversion_insns): Likewise.
(scalar_chain::replace_with_subreg): Likewise.
(scalar_chain::replace_with_subreg_in_insn): Likewise.
(scalar_chain::convert_op): Likewise.
(scalar_chain::convert_reg): Likewise.
(scalar_chain::make_vector_copies): Likewise.
(scalar_chain::convert_registers): New pure virtual function.
(class dimode_scalar_chain): New class.
(class timode_scalar_chain): Likewise.
(scalar_chain::mark_dual_mode_def): Renamed to ...
(dimode_scalar_chain::mark_dual_mode_def): This.
(timode_scalar_chain::mark_dual_mode_def): New function.
(timode_scalar_chain::convert_insn): Likewise.
(dimode_scalar_chain::convert_registers): Likewise.
(scalar_chain::compute_convert_gain): Renamed to ...
(dimode_scalar_chain::compute_convert_gain): This.
(scalar_chain::replace_with_subreg): Renamed to ...
(dimode_scalar_chain::replace_with_subreg): This.
(scalar_chain::replace_with_subreg_in_insn): Renamed to ...
(dimode_scalar_chain::replace_with_subreg_in_insn): This.
(scalar_chain::make_vector_copies): Renamed to ...
(dimode_scalar_chain::make_vector_copies): This.
(scalar_chain::convert_reg): Renamed to ...
(dimode_scalar_chain::convert_reg ): This.
(scalar_chain::convert_op): Renamed to ...
(dimode_scalar_chain::convert_op): This.
(scalar_chain::convert_insn): Renamed to ...
(dimode_scalar_chain::convert_insn): This.
(scalar_chain::convert): Call convert_registers.
(convert_scalars_to_vector): Change to scalar_chain pointer to
use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
in 32-bit mode.  Delete scalar_chain pointer.  Call
free_dominance_info in 64-bit mode.
(pass_stv::gate): Remove TARGET_64BIT check.
(ix86_option_override): Put the 64-bit STV pass before the CSE
pass.

gcc/testsuite/

PR target/70155
* gcc.target/i386/pr55247-2.c: Updated to check movti_internal
and movv1ti_internal patterns
* gcc.target/i386/pr70155-1.c: New test.
* gcc.target/i386/pr70155-2.c: Likewise.
* gcc.target/i386/pr70155-3.c: Likewise.
* gcc.target/i386/pr70155-4.c: Likewise.
* gcc.target/i386/pr70155-5.c: Likewise.
* gcc.target/i386/pr70155-6.c: Likewise.
* gcc.target/i386/pr70155-7.c: Likewise.
* gcc.target/i386/pr70155-8.c: Likewise.
* gcc.target/i386/pr70155-9.c: Likewise.
* gcc.target/i386/pr70155-10.c: Likewise.
* gcc.target/i386/pr70155-11.c: Likewise.
* gcc.target/i386/pr70155-12.c: Likewise.
* gcc.target/i386/pr70155-13.c: Likewise.
* gcc.target/i386/pr70155-14.c: Likewise.
* gcc.target/i386/pr70155-15.c: Likewise.
* gcc.target/i386/pr70155-16.c: Likewise.
* gcc.target/i386/pr70155-17.c: Likewise.
* gcc.target/i386/pr70155-18.c: Likewise.
* gcc.target/i386/pr70155-19.c: Likewise.
* gcc.target/i386/pr70155-20.c: Likewise.
* gcc.target/i386/pr70155-21.c: Likewise.
* gcc.target/i386/pr70155-22.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235518 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoReplace ".{5}" with ".{5,6}" in avx512vl-vmovdqa64-1.c
hjl [Wed, 27 Apr 2016 15:51:22 +0000 (15:51 +0000)] 
Replace ".{5}" with ".{5,6}" in avx512vl-vmovdqa64-1.c

* gcc.target/i386/avx512vl-vmovdqa64-1.c: Replace ".{5}" with
".{5,6}".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235516 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDWARF: turn dw_loc_descr_node field into hash map for frame offset check
pmderodat [Wed, 27 Apr 2016 15:03:40 +0000 (15:03 +0000)] 
DWARF: turn dw_loc_descr_node field into hash map for frame offset check

As discussed on
<https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01708.html>, this change
removes a field in the dw_loc_descr_node structure so we can get rid of
the CHECKING_P macro usage.

This field was used to perform consistency checks for frame offset in
DWARF procedures. As a replacement, this commit turns the "visited
nodes" set in resolve_args_picking_1 into a map that remembers for each
dw_loc_descr_node the frame offset associated to it, so that the
consistency check is still operational.

Boostrapped and regtested on x86_64-linux.

2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>

* dwarf2out.h (struct dw_loc_descr_node): Remove the
dw_loc_frame_offset field.
* dwarf2out.c (new_loc_descr): Likewise.
(resolve_args_picking_1): Turn the VISITED hash set into a
FRAME_OFFSET hash map. Use it to associate a frame offset to
visited nodes. Remove uses of the CHECKING_P macro.
(resolve_args_picking): Update call to resolve_args_picking_1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235515 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
amker [Wed, 27 Apr 2016 14:52:38 +0000 (14:52 +0000)] 
* tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
(free_loop_data): Release vuses of groups.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235514 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
amker [Wed, 27 Apr 2016 14:51:26 +0000 (14:51 +0000)] 
* tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
instead of redundant use_id and boolean have_use_for.
(struct iv_use): Change sub_id into group_id.  Remove field next.
Move fields: related_cands, n_map_members, cost_map and selected
to ...
(struct iv_group): ... here.  New structure.
(struct iv_common_cand): Use structure declaration directly.
(struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
(MAX_CONSIDERED_USES): Rename macro to ...
(MAX_CONSIDERED_GROUPS): ... here.
(n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
(dump_iv, dump_use, dump_cand): Refactor format of dump information.
(dump_uses): Rename to ...
(dump_groups): ... here.  Update all uses.
(tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
(find_induction_variables): Refactor format of dump information.
(record_sub_use): Delete.
(record_use): Update all uses.
(record_group): New function.
(record_group_use, find_interesting_uses_op): Call above functions.
Update all uses.
(find_interesting_uses_cond): Ditto.
(group_compare_offset): New function.
(split_all_small_groups): Rename to ...
(split_small_address_groups_p): ... here.  Update all uses.
(split_address_groups):  Update all uses.
(find_interesting_uses): Refactor format of dump information.
(add_candidate_1): Update all uses.  Remove redundant check on iv,
base and step.
(add_candidate, record_common_cand): Remove redundant assert.
(add_iv_candidate_for_biv): Update use.
(add_iv_candidate_derived_from_uses): Update all uses.
(add_iv_candidate_for_groups, record_important_candidates): Ditto.
(alloc_use_cost_map): Ditto.
(set_use_iv_cost, get_use_iv_cost): Rename to ...
(set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
(determine_use_iv_cost_generic): Ditto.
(determine_group_iv_cost_generic): Ditto.
(determine_use_iv_cost_address): Ditto.
(determine_group_iv_cost_address): Ditto.
(determine_use_iv_cost_condition): Ditto.
(determine_group_iv_cost_cond): Ditto.
(determine_use_iv_cost): Ditto.
(determine_group_iv_cost): Ditto.
(set_autoinc_for_original_candidates): Update all uses.
(find_iv_candidates): Update all uses.  Refactor dump information.
(determine_use_iv_costs): Ditto.
(determine_iv_costs): Ditto.
(iv_ca_cand_for_use): Rename to ...
(iv_ca_cand_for_group): ... here.  Update all uses.
(iv_ca_add_use, iv_ca_add_group): Ditto.
(iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
(iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
(iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
(iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
(try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
(create_new_iv, adjust_iv_update_pos): Ditto.
(rewrite_use_address): Delete.
(rewrite_use_address_1): Rename to ...
(rewrite_use_address): ... here.
(rewrite_use_compare): Update all uses.
(rewrite_use): Delete.
(rewrite_uses): Rename to ...
(rewrite_groups): ... here.  Update all uses.
(remove_unused_ivs, free_loop_data): Update all uses.
(tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.

gcc/testsuite/ChangeLog
* gcc.dg/tree-ssa/pr64705.c: Revise check string.
* gcc.dg/tree-ssa/scev-9.c: Ditto.
* gcc.dg/tree-ssa/scev-10.c: Ditto.
* gcc.dg/tree-ssa/scev-11.c: Ditto.
* gcc.dg/tree-ssa/scev-12.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235513 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[rtlanal.c] Convert conditional compilation on WORD_REGISTER_OPERATIONS
ktkachov [Wed, 27 Apr 2016 14:38:10 +0000 (14:38 +0000)] 
[rtlanal.c] Convert conditional compilation on WORD_REGISTER_OPERATIONS

* rtlanal.c (nonzero_bits1): Convert preprocessor check
for WORD_REGISTER_OPERATIONS to runtime check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235512 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Apr 2016 14:10:04 +0000 (14:10 +0000)] 
2016-04-27  Richard Biener  <rguenther@suse.de>

PR ipa/70760
* tree-ssa-structalias.c (find_func_aliases_for_call): Use
aggregate_value_p to determine if a function result is
returned by reference.
(ipa_pta_execute): Functions having their address taken are
not automatically nonlocal.

* g++.dg/ipa/ipa-pta-2.C: New testcase.
* gcc.dg/ipa/ipa-pta-1.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235511 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR sanitizer/70683
jakub [Wed, 27 Apr 2016 13:29:34 +0000 (13:29 +0000)] 
PR sanitizer/70683
* tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
* fold-const.c (operand_equal_p): If flag_checking and
OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
and if it returns non-zero, assert iterative_hash_expr on both
args is the same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235507 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago cp/
nathan [Wed, 27 Apr 2016 13:28:44 +0000 (13:28 +0000)] 
cp/
* constexpr.c (get_fundef_copy): Use the original function for
non-recursive evaluations.
(save_fundef_copy): Always expect a slot to be available.

testsuite/
* g++.dg/cpp0x/constexpr-recursion3.C: New.
* g++.dg/ubsan/pr63956.C: Adjust error location.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235506 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 13:28:30 +0000 (13:28 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* aa_util.adb, aa_util.ads: Removed, no longer used.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Pragma): An object
renaming declaration resulting from the expansion of an object
declaration is a suitable context for pragma Ghost.

2016-04-27  Doug Rupp  <rupp@adacore.com>

* init.c: Refine last checkin so the only requirement is the
signaling compilation unit is compiled with the same mode as
the compilation unit containing the initial landing pad.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal
specifications for Default_Iterator, including overloaded cases
where no interpretations are legal, and return types that are
not iterator types.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch5.adb (Expand_N_Assignment_Statement): Do not install
an accessibility check when the left hand side of the assignment
denotes a container cursor.
* exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed.
* sem_ch4.adb (Find_Indexing_Operations): New routine.
(Try_Container_Indexing): Code cleanup.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235505 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 13:25:54 +0000 (13:25 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed.

2016-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* errout.adb, errutil.adb: Minor reformatting.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post):
Check that the classwide version is illegal when the prefix is
an operation of an untagged synchronized type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235504 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Arnaud Charlet <charleT@adacore.com>
charlet [Wed, 27 Apr 2016 13:22:48 +0000 (13:22 +0000)] 
2016-04-27  Arnaud Charlet  <charleT@adacore.com>

* sinput-l.ads, sem_ch13.adb: Minor editing.

2016-04-27  Doug Rupp  <rupp@adacore.com>

* init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]:
Bump the pc so the lower order bit is set.

2016-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is
enabled, report an empty range in a case construct.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235503 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-27 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 27 Apr 2016 13:15:25 +0000 (13:15 +0000)] 
2016-04-27  Arnaud Charlet  <charlet@adacore.com>

* sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb,
a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235502 138bc75d-0d04-0410-961f-82ee72b054a4