platform/upstream/gcc.git
8 years agoDaily bump.
GCC Administrator [Thu, 5 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235918

8 years ago[RS6000] TARGET_RELOCATABLE
Alan Modra [Thu, 5 May 2016 00:07:27 +0000 (09:37 +0930)]
[RS6000] TARGET_RELOCATABLE

For ABI_V4, -mrelocatable and -fPIC both generate position independent
code, with some extra "fixup" output for -mrelocatable.  The
similarity of these two options has led to the situation where the
sysv4.h SUBTARGET_OVERRIDE_OPTIONS sets flag_pic on seeing
-mrelocatable, and sets TARGET_RELOCATABLE on seeing -fPIC.  That
prevents LTO from properly optimizing position dependent executables,
because the mutual dependence of the flags and the fact that LTO
streaming records the state of rs6000_isa_flags, result in flag_pic
being set when it shouldn't be.

So, don't set TARGET_RELOCATABLE when -fPIC.  Places that currently
test TARGET_RELOCATABLE can instead test
TARGET_RELOCATABLE || (DEFAULT_ABI == ABI_V4 && flag_pic > 1)
or since TARGET_RELOCATABLE can only be enabled when ABI_V4,
DEFAULT_ABI == ABI_V4 && (TARGET_RELOCATABLE || flag_pic > 1).

Also, since flag_pic is set by -mrelocatable, a number of places that
currently test TARGET_RELOCATABLE can be simplified.  I also made
-mrelocatable set TARGET_NO_FP_IN_TOC, allowing TARGET_RELOCATABLE to
be removed from ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.  Reducing occurrences
of TARGET_RELOCATABLE is a good thing.

PR target/68662
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
TARGET_NO_FP_IN_TOC for -mrelocatable.
(MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
TARGET_RELOCATABLE test.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/predicates.md (easy_fp_constant): Likewise.
* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Likewise.
(rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
(rs6000_stack_info): Likewise.
(rs6000_elf_asm_out_constructor): Likewise.
(rs6000_elf_asm_out_destructor): Likewise.
(rs6000_elf_declare_function_name): Likewise.
* config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
* config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
Don't define.

From-SVN: r235914

8 years ago[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx
Alan Modra [Thu, 5 May 2016 00:01:26 +0000 (09:31 +0930)]
[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx

Modify SETs rather than using replace_rtx on the whole insn.
Removes fragile hacks preventing USE and CLOBBER being modified.

* config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.

From-SVN: r235913

8 years ago[RS6000] out-of-line exit register restore funcs
Alan Modra [Wed, 4 May 2016 21:32:27 +0000 (07:02 +0930)]
[RS6000] out-of-line exit register restore funcs

* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
out-of-line gpr restore for one or two regs if that would add
a save of lr.

From-SVN: r235907

8 years agore PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after...
Uros Bizjak [Wed, 4 May 2016 21:13:13 +0000 (23:13 +0200)]
re PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after r235442 with -O2 -m32 on Haswell.)

PR target/70873
* config/i386/i386.md
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
Change to post-epilogue_completed late splitter.  Use sse_reg_operand
as operand 0 predicate.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
Ditto.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
Ditto.  Emit the pattern using RTX.

(TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
(TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
Ditto.
(TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
sse_reg_operand as operand 0 predicate.

(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
instead of gen_rtx_REG.
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
Ditto.

From-SVN: r235906

8 years agoshrink-wrap: Remove complicated simple_return manipulations
Segher Boessenkool [Wed, 4 May 2016 20:57:08 +0000 (22:57 +0200)]
shrink-wrap: Remove complicated simple_return manipulations

Now that cfgcleanup knows how to optimize with return statements, the
epilogue insertion code doesn't have to deal with it itself anymore.

* function.c (emit_use_return_register_into_block): Delete.
(gen_return_pattern): Delete.
(emit_return_into_block): Delete.
(active_insn_between): Delete.
(convert_jumps_to_returns): Delete.
(emit_return_for_exit): Delete.
(thread_prologue_and_epilogue_insns): Delete all code dealing with
simple_return for shrink-wrapped blocks.
* shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
end of blocks that need one.
(get_unconverted_simple_return): Delete.
(convert_to_simple_return): Delete.
* shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
(convert_to_simple_return): Ditto.

From-SVN: r235905

8 years agocfgcleanup: Fold jumps and conditional branches with returns
Segher Boessenkool [Wed, 4 May 2016 20:54:47 +0000 (22:54 +0200)]
cfgcleanup: Fold jumps and conditional branches with returns

This patch makes cfgcleanup optimize jumps to returns.  There are three
cases this handles:

-- A jump to a return; this is simplified to just that return.
-- A conditional branch to a return; simplified to a conditional return.
-- A conditional branch that falls through to a return.  This is simplified
   to a conditional return (with the condition inverted), falling through
   to a jump to the original destination.  That jump can then be optimized
   further, as usual.

This handles all cases the current function.c does, and a few it misses.

* cfgcleanup.c (bb_is_just_return): New function.
(try_optimize_cfg): Simplify jumps to return, branches to return,
and branches around return.

From-SVN: r235904

8 years agocfgcleanup: Bugfix in try_simplify_condjump
Segher Boessenkool [Wed, 4 May 2016 20:50:12 +0000 (22:50 +0200)]
cfgcleanup: Bugfix in try_simplify_condjump

If the jump_block here contains just a return, we will crash later
in invert_jump.  Don't allow that case.

* cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
branch to a return.

From-SVN: r235903

8 years agore PR c++/70906 (ice in add_expr, at tree.c:7925)
Jakub Jelinek [Wed, 4 May 2016 20:44:40 +0000 (22:44 +0200)]
re PR c++/70906 (ice in add_expr, at tree.c:7925)

PR c++/70906
PR c++/70933
* tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
* tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
assert flags & OEP_HASH_CHECK, instead of asserting it
never happens.  Handle TARGET_EXPR.
* fold-const.c (operand_equal_p): For hash verification,
or in OEP_HASH_CHECK into flags.

* g++.dg/opt/pr70906.C: New test.
* g++.dg/opt/pr70933.C: New test.

From-SVN: r235902

8 years agotree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head comment.
Eric Botcazou [Wed, 4 May 2016 20:22:42 +0000 (20:22 +0000)]
tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head comment.

* tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
comment.
(compute_samebase_partition_bases): Fix typo.

From-SVN: r235900

8 years agosse.md (vec_interleave_highv8sf, [...]): Remove constraints from expanders.
Jakub Jelinek [Wed, 4 May 2016 19:56:20 +0000 (21:56 +0200)]
sse.md (vec_interleave_highv8sf, [...]): Remove constraints from expanders.

* config/i386/sse.md (vec_interleave_highv8sf,
vec_interleave_lowv8sf, vec_interleave_highv4df,
vec_interleave_lowv4df): Remove constraints from expanders.

From-SVN: r235898

8 years agos-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpage...
Samuel Thibault [Wed, 4 May 2016 19:14:05 +0000 (19:14 +0000)]
s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpagesize.

* s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize
instead of __getpagesize.

From-SVN: r235896

8 years agosse.md (sse2_movq128): Use v constraint instead of x.
Jakub Jelinek [Wed, 4 May 2016 17:02:57 +0000 (19:02 +0200)]
sse.md (sse2_movq128): Use v constraint instead of x.

* config/i386/sse.md (sse2_movq128): Use v constraint instead of x.

* gcc.target/i386/avx512vl-vmovq-1.c: New test.

From-SVN: r235893

8 years agotree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statemen...
Jan Hubicka [Wed, 4 May 2016 16:42:12 +0000 (18:42 +0200)]
tree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statement undefined.

* tree-inline.c (expand_call_inline): Fix path dealing with
making lhs of call statement undefined.

From-SVN: r235889

8 years agocgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Check availability on...
Jan Hubicka [Wed, 4 May 2016 16:36:51 +0000 (18:36 +0200)]
cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Check availability on NODE, too.

* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
Check availability on NODE, too.
* cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
(cgraph_node::call_for_symbol_and_aliases): Likewise.
(varpool_node::call_for_symbol_and_aliase): Likewise.
* ipa-pure-const.c (add_new_function): Analyze all bodies.
(propagate_pure_const): Propagate across interposable functions, too.
(skip_function_for_local_pure_const): Do not skip interposable bodies
with aliases.
(pass_local_pure_const::execute): Update.

* gcc.dg/ipa/pure-const-3.c: New testcase.

From-SVN: r235887

8 years agoc.opt (Wdangling-else): New option.
Marek Polacek [Wed, 4 May 2016 16:00:33 +0000 (16:00 +0000)]
c.opt (Wdangling-else): New option.

* c.opt (Wdangling-else): New option.

* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
OPT_Wdangling_else.

* parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
with OPT_Wdangling_else.

* doc/invoke.texi: Document -Wdangling-else.

* c-c++-common/Wdangling-else-1.c: New test.
* c-c++-common/Wdangling-else-2.c: New test.
* c-c++-common/Wdangling-else-3.c: New test.

From-SVN: r235885

8 years agomips16-attributes.c: Skip if -mmicromips flag is present.
Kwok Cheung Yeung [Wed, 4 May 2016 14:56:19 +0000 (14:56 +0000)]
mips16-attributes.c: Skip if -mmicromips flag is present.

2016-05-04  Kwok Cheung Yeung  <kcy@codesourcery.com>

* gcc.target/mips/mips16-attributes.c: Skip if -mmicromips
flag is present.

From-SVN: r235881

8 years agore PR c/48778 (gcc 4.6 -Waddress adds unhelpful new warning case when using from...
Marek Polacek [Wed, 4 May 2016 13:46:15 +0000 (13:46 +0000)]
re PR c/48778 (gcc 4.6 -Waddress adds unhelpful new warning case when using from a macro)

PR c/48778
* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
for macro expansions.

* gcc.dg/Waddress-2.c: New test.

From-SVN: r235878

8 years agoconfig.gcc: Error out when conflicting multilib is detected.
Thomas Preud'homme [Wed, 4 May 2016 13:33:58 +0000 (13:33 +0000)]
config.gcc: Error out when conflicting multilib is detected.

2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc: Error out when conflicting multilib is detected.  Do not
    loop over multilibs since no combination is legal.

From-SVN: r235877

8 years ago[RS6000] Correct PIC_OFFSET_TABLE_REGNUM
Alan Modra [Wed, 4 May 2016 13:23:58 +0000 (22:53 +0930)]
[RS6000] Correct PIC_OFFSET_TABLE_REGNUM

Leaving this as r30 results in pic_offset_table_rtx of (reg 30)
for -m64, which is completely bogus.  Various rtl analysis predicate
functions treat pic_offset_table_rtx specially..

* config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.

From-SVN: r235876

8 years ago[RS6000] Simplify sysv4.h TARGET_TOC
Alan Modra [Wed, 4 May 2016 13:21:01 +0000 (22:51 +0930)]
[RS6000] Simplify sysv4.h TARGET_TOC

We can use the TARGET_* defines here.  There isn't any reason to use
the underlying variable and masks.  Also, TARGET_RELOCATABLE implies
TARGET_MINIMAL_TOC, so there is no need to test TARGET_RELOCATABLE.

* config/rs6000/sysv4.h (TARGET_TOC): Simplify.

From-SVN: r235875

8 years ago[RS6000] Align .toc section
Alan Modra [Wed, 4 May 2016 13:17:51 +0000 (22:47 +0930)]
[RS6000] Align .toc section

Lack of any .toc section alignment causes kexec and kdump failure
when linking without the usual linker script.  This of course is
really a kexec-tools error, but it is also true that .toc ought to
always be word aligned.

* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Align .toc.

From-SVN: r235874

8 years agoUpdate MIPS P5600 processor definition to avoid IMADD
Matthew Fortune [Wed, 4 May 2016 12:59:28 +0000 (12:59 +0000)]
Update MIPS P5600 processor definition to avoid IMADD

gcc/

* config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
Clean up p5600 comments.

From-SVN: r235873

8 years agomatch.pd: Add BIT_FIELD_REF canonicalizations and vector constructor simplifications.
Richard Biener [Wed, 4 May 2016 12:37:56 +0000 (12:37 +0000)]
match.pd: Add BIT_FIELD_REF canonicalizations and vector constructor simplifications.

2016-05-04  Richard Biener  <rguenther@suse.de>

* match.pd: Add BIT_FIELD_REF canonicalizations and vector
constructor simplifications.
* fold-const.c (fold_ternary_loc): Remove duplicate functionality
here.

From-SVN: r235871

8 years agobackport: Makefile.am: Merge from upstream...
Ilya Verbin [Wed, 4 May 2016 12:29:14 +0000 (12:29 +0000)]
backport: Makefile.am: Merge from upstream...

Merge libcilkrts from upstream.

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
<https://bitbucket.org/intelcilkruntime/intel-cilk-runtime.git>.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacall_impl.h: Likewise.
* runtime/os-unix.c: Likewise.
* runtime/os.h: Likewise.
* runtime/os_mutex-unix.c: Likewise.
* runtime/os_mutex.h: Likewise.
* runtime/pedigrees.c: Likewise.
* runtime/pedigrees.h: Likewise.
* runtime/record-replay.cpp: Likewise.
* runtime/record-replay.h: Likewise.
* runtime/reducer_impl.cpp: Likewise.
* runtime/reducer_impl.h: Likewise.
* runtime/rts-common.h: Likewise.
* runtime/scheduler.c: Likewise.
* runtime/scheduler.h: Likewise.
* runtime/signal_node.c: Likewise.
* runtime/signal_node.h: Likewise.
* runtime/spin_mutex.c: Likewise.
* runtime/spin_mutex.h: Likewise.
* runtime/stats.c: Likewise.
* runtime/stats.h: Likewise.
* runtime/sysdep-unix.c: Likewise.
* runtime/sysdep.h: Likewise.
* runtime/worker_mutex.c: Likewise.
* runtime/worker_mutex.h: Likewise.
* include/cilk/reducer_vector.h: New.
* runtime/cilk_str_mem.h: New.
* runtime/config/arm/cilk-abi-vla.c: New.
* runtime/config/arm/os-fence.h: New.
* runtime/config/arm/os-unix-sysdep.c: New.
* runtime/declare-alloca.h: New.
* runtime/sslib/ignore_handler_s.c: New.
* runtime/sslib/safe_lib.h: New.
* runtime/sslib/safe_lib_errno.h: New.
* runtime/sslib/safe_str_constraint.c: New.
* runtime/sslib/safe_str_constraint.h: New.
* runtime/sslib/safe_str_lib.h: New.
* runtime/sslib/safe_types.h: New.
* runtime/sslib/safeclib_private.h: New.
* runtime/sslib/snprintf_s.h: New.
* runtime/sslib/snprintf_support.c: New.
* runtime/sslib/strcpy_s.c: New.
* runtime/sslib/strncpy_s.c: New.
* runtime/sslib/strnlen_s.c: New.
* runtime/symbol_test.c: Remove.
* Makefile.in: Regenerate.
* configure: Regenerate.

From-SVN: r235870

8 years agolibstdc++/70940 Start fixing polymorphic memory resources
Jonathan Wakely [Wed, 4 May 2016 12:08:45 +0000 (13:08 +0100)]
libstdc++/70940 Start fixing polymorphic memory resources

PR libstdc++/70940
* include/experimental/memory_resource
(__resource_adaptor_imp::do_allocate): Do not default-construct
rebound allocator.
(__resource_adaptor_imp::do_deallocate): Likewise. Use
allocator_traits to get pointer type.
(__null_memory_resource::do_allocate): Remove unused parameters.
(__null_memory_resource::do_deallocate): Likewise.
(__null_memory_resource::do_is_equal): Likewise. Add return statement.
* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
move to ...
* testsuite/experimental/memory_resource/1.cc: Here.
* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
* testsuite/experimental/memory_resource/resource_adaptor.cc: New.

From-SVN: r235868

8 years agopredicates (post_inc_mem, [...]): New predicates.
Oleg Endo [Wed, 4 May 2016 07:14:11 +0000 (07:14 +0000)]
predicates (post_inc_mem, [...]): New predicates.

gcc/
* config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
* config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
result.set_rtx is null instead of aborting.
* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
Always enable.
(USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
* config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
*mov<mode>_store_postinc): New patterns.

From-SVN: r235859

8 years agoRemove duplicate (A & B) OP (C & B) in match.pd.
Marc Glisse [Wed, 4 May 2016 05:38:18 +0000 (07:38 +0200)]
Remove duplicate (A & B) OP (C & B) in match.pd.

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

* match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
as commutative.  Check both conversions are NOP.
((A & B) OP (C & B)): Remove.

From-SVN: r235858

8 years agoDaily bump.
GCC Administrator [Wed, 4 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235856

8 years agoCombine simplify_set WORD_REGISTER_OPERATIONS
Alan Modra [Wed, 4 May 2016 00:11:32 +0000 (09:41 +0930)]
Combine simplify_set WORD_REGISTER_OPERATIONS

The comment says this test is supposed to prevent "a narrower
operation than requested", but it actually only allows a larger
subreg not one the same size.  Fix that.

* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.

From-SVN: r235852

8 years ago[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE
Alan Modra [Tue, 3 May 2016 23:51:34 +0000 (09:21 +0930)]
[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE

gcc/
PR target/70866
* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
when cr2,3,4 are all fixed regs.
gcc/testsuite/
* gcc.target/powerpc/pr70866.c: New.

From-SVN: r235851

8 years agore PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)
Bernd Schmidt [Tue, 3 May 2016 22:48:03 +0000 (22:48 +0000)]
re PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)

PR rtl-optimization/57193
* opts.c (default_options_table): Revert OPT_frename_registers change.
* doc/invoke.texi (-frename-registers, -O2): Likewise.

From-SVN: r235848

8 years agoPR c++/66561 - __builtin_LINE at al. should yield constant expressions
Martin Sebor [Tue, 3 May 2016 21:15:28 +0000 (21:15 +0000)]
PR c++/66561 - __builtin_LINE at al. should yield constant expressions

PR c++/66561 - __builtin_LINE at al. should yield constant expressions
PR c++/66639 - declare __func__, __FUNCTION__ & __PRETTY_FUNCTION__ constexpr

gcc/testsuite/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* c-c++-common/builtin_location.c: New test.
* g++.dg/cpp1y/builtin_location.C: New test.

gcc/cp/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.

gcc/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* builtins.c (fold_builtin_FILE): New function.
(fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
(fold_builtin_0): Call them.
* gimplify.c (gimplify_call_expr): Remove the handling of
BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.

PR c++/66561
* doc/extend.texi (Other Builtins): Update __builtin_FILE,
__builtin_FUNCTION, and __builtin_LINE to reflect they yield
constants.

PR c++/66639
* doc/extend.texi (Function Names as Strings): Update __func__,
__FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
constants.

From-SVN: r235845

8 years agore PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Jakub Jelinek [Tue, 3 May 2016 19:30:22 +0000 (21:30 +0200)]
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

PR tree-optimization/70916
* tree-if-conv.c: Include cfganal.h.
(pass_if_conversion::execute): Call connect_infinite_loops_to_exit
and remove_fake_exit_edges around the optimization pass.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r235842

8 years agocgraph.c (symbol_table::create_edge): Set inline_failed.
Jan Hubicka [Tue, 3 May 2016 19:05:31 +0000 (21:05 +0200)]
cgraph.c (symbol_table::create_edge): Set inline_failed.

* cgraph.c (symbol_table::create_edge): Set inline_failed.
(cgraph_edge::make_direct): Likewise.
(cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
* cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
* cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
(CIF_THUNK): New code.
* ipa-inline-analysis.c (initialize_inline_failed): Preserve
CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
(compute_inline_parameters): Set inline_failed for thunks.
(inline_analyze_function): Cleanup.
* ipa-inline.c (can_inline_edge_p): Do not deal with
call_stmt_cannot_inline_p.
(can_early_inline_edge_p): Likewise.
(early_inliner): Initialize inline_failed.
* lto-cgraph.c (lto_output_edge): Sanity check inline_failed.

* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.

From-SVN: r235839

8 years agopredicates.md (x87nonimm_ssenomem_operand): Rename from nonimm_ssenomem_operand.
Uros Bizjak [Tue, 3 May 2016 18:48:18 +0000 (20:48 +0200)]
predicates.md (x87nonimm_ssenomem_operand): Rename from nonimm_ssenomem_operand.

* config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
from nonimm_ssenomem_operand.
(nonimm_ssenomem_operand): New predicate.
* config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
as operand 0 predicate.
(*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
Disable unsupported alternatives using "enabled" attribute.
Use register_ssemem_operand as operand 0 predicate.
(*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.

From-SVN: r235837

8 years agore PR c/70859 (Bad column number in type-generic function errors)
Marek Polacek [Tue, 3 May 2016 18:03:42 +0000 (18:03 +0000)]
re PR c/70859 (Bad column number in type-generic function errors)

PR c/70859
* input.c (expansion_point_location): New function.
* input.h (expansion_point_location): Declare.

* c-common.c (builtin_function_validate_nargs): Add location
parameter.  Use it.
(check_builtin_function_arguments): Add location and arguments
parameters.  Use them.
* c-common.h (check_builtin_function_arguments): Update declaration.

* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
check_builtin_function_arguments.

* call.c (build_cxx_call): Pass location and vNULL down to
check_builtin_function_arguments.

* gcc.dg/pr70859.c: New test.
* gcc.dg/pr70859-2.c: New test.

From-SVN: r235832

8 years agoFix a typo in dwarf2out.c:resolve_args_picking_1
Pierre-Marie de Rodat [Tue, 3 May 2016 16:21:14 +0000 (16:21 +0000)]
Fix a typo in dwarf2out.c:resolve_args_picking_1

Under specific circumstances for Ada programs, such as in the testcase
this change adds, the DWARF back-end currently crashes because of
inconsistent internal state. This is due to a typo: a local variable is
called frame_offset_ but resolve_args_picking_1 wrongly modifies
emit-rtl.h's frame_offset instead.

This change fixes this typo.

gcc/
* dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
occurence with frame_offset_ ones.

gcc/testsuite/
* gnat.dg/debug5.adb: New testcase.

From-SVN: r235830

8 years ago* nl.po: Update.
Joseph Myers [Tue, 3 May 2016 15:07:25 +0000 (16:07 +0100)]
* nl.po: Update.

From-SVN: r235827

8 years agoPR70890, stage2 miscompilation
Alan Modra [Tue, 3 May 2016 14:43:35 +0000 (00:13 +0930)]
PR70890, stage2 miscompilation

PR rtl-optimization/70890
* ira.c (combine_and_move_insns): When moving def_insn, remove
equivs on use_insn.

From-SVN: r235825

8 years agoS/390: Add patterns for r<nox>sbg instructions.
Dominik Vogt [Tue, 3 May 2016 13:30:33 +0000 (13:30 +0000)]
S/390: Add patterns for r<nox>sbg instructions.

gcc/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
("*r<noxa>sbg_<mode>_srl"): New define_insns.
("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.

gcc/testsuite/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/md/rXsbg_mode_sXl.c: New test.
* gcc.target/s390/s390.exp (check_effective_target_z10_instructions):
Procedure to check for z10 instruction set.

From-SVN: r235822

8 years agoinline-8.c: Require c99_runtime.
Christophe Lyon [Tue, 3 May 2016 13:06:40 +0000 (13:06 +0000)]
inline-8.c: Require c99_runtime.

* gcc.dg/ipa/inline-8.c: Require c99_runtime.

From-SVN: r235821

8 years ago[RS6000] Fix ICE caused by rs6000_savres_strategy thinko
Alan Modra [Tue, 3 May 2016 12:38:32 +0000 (22:08 +0930)]
[RS6000] Fix ICE caused by rs6000_savres_strategy thinko

rev 235672 (git cffc0b35) changed the condition for SAVE_MULTIPLE/
STORE_MULTIPLE, wrongly allowing a single reg.

gcc/
* config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
for SAVE_MULTIPLE/STORE_MULTIPLE.
gcc/testsuite/
* gcc.target/powerpc/savres.c: Add func using a single gpr.

From-SVN: r235820

8 years ago* config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
Jakub Jelinek [Tue, 3 May 2016 12:18:57 +0000 (14:18 +0200)]
* config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,

*truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead
of x.

* gcc.target/i386/avx512f-cvt-1.c: New test.

From-SVN: r235819

8 years agoCompile ssa-thread-14.c with -fdump-tree-vrp-details
H.J. Lu [Tue, 3 May 2016 12:14:37 +0000 (12:14 +0000)]
Compile ssa-thread-14.c with -fdump-tree-vrp-details

* gcc.dg/tree-ssa/ssa-thread-14.c: Replace -fdump-tree-vrp with
-fdump-tree-vrp-details.

From-SVN: r235818

8 years agogimplify.h (get_initialized_tmp_var): Add allow_ssa parameter default true.
Richard Biener [Tue, 3 May 2016 12:06:19 +0000 (12:06 +0000)]
gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter default true.

2016-05-03  Richard Biener  <rguenther@suse.de>

* gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
default true.
(gimplify_arg): Likewise.
* gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
re-writing the result to a decl if required.
(internal_get_tmp_var): Add allow_ssa parameter
and override into_ssa with it.
(get_formal_tmp_var): Adjust.
(get_initialized_tmp_var): Add allow_ssa parameter.
(gimplify_arg): Add allow_ssa parameter and avoid generating
SSA names for the result false.
(gimplify_call_expr): If the call may return twice do not
gimplify parameters into SSA.
(prepare_gimple_addressable): Do not allow an SSA name as
temporary.
(gimplify_modify_expr): Adjust assert.  For noreturn calls
with a SSA name LHS adjust its def.
(gimplify_save_expr): Do not allow an SSA name as save-expr
result.
(gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
(gimplify_body): Init GIMPLE SSA data structures and gimplify
into-SSA.
(gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
(gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
(optimize_target_teams): Do not allow SSA names for clause operands.
(gimplify_expr): Likewise for where we mark the result addressable.
* passes.def (pass_init_datastructures): Remove.
* tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
(rewrite_stmt): Likewise.
* tree-inline.c (initialize_cfun): Properly transfer SSA state.
(replace_locals_op): Replace SSA names.
(copy_gimple_seq_and_replace_locals): Init src_cfun.
* gimple-low.c (lower_builtin_setjmp): Deal with SSA.
* cgraph.c (release_function_body): Free CFG annotations only
when we have a CFG.  Simplify.
* gimple-fold.c (gimplify_and_update_call_from_tree): Use
force_gimple_operand instead of get_initialized_tmp_var.
* tree-pass.h (make_pass_init_datastructures): Remove.
* tree-ssa.c (execute_init_datastructures): Remove.
(pass_data_init_datastructures): Likewise.
(class pass_init_datastructures): Likewise.
(make_pass_init_datastructures): Likewise.
* omp-low.c (create_omp_child_function): Init SSA data structures.
(grid_expand_target_grid_body): Likewise.
* tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
name before adding it to names_to_release.
(remove_bb): Always release SSA defs.
* tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
before dereferencing it.
* cgraphunit.c (init_lowered_empty_function): Always
int SSA data structures.
* tree-ssanames.c (release_defs): Remove assert that we are in
SSA form.
* trans-mem.c (diagnose_tm_1): Handle SSA name function.

c-family/
* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
allow call args to gimplify to SSA names.

* gcc.dg/pr30172-1.c: Adjust.
* gcc.dg/pr63743.c: Likewise.
* gcc.dg/tm/pr51696.c: Likewise.
* c-c++-common/tm/safe-1.c: Likewise.
* gcc.dg/tree-prof/val-prof-3.c: Likewise.
* gcc.dg/plugin/self-assign-test-1.c: XFAIL case that needs CSE.
* g++.dg/plugin/self-assign-test-1.C: Likewise.
* g++.dg/plugin/self-assign-test-2.C: Likewise.

From-SVN: r235817

8 years agore PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t...
Jakub Jelinek [Tue, 3 May 2016 11:45:04 +0000 (13:45 +0200)]
re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)

PR rtl-optimization/70467
* config/i386/predicates.md (x86_64_hilo_int_operand,
x86_64_hilo_general_operand): New predicates.
* config/i386/constraints.md (Wd): New constraint.
* config/i386/i386.md (mode attr di): Use Wd instead of e.
(general_hilo_operand): New mode attr.
(add<mode>3, sub<mode>3): Use <general_hilo_operand>
instead of <general_operand>.
(*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
x86_64_hilo_general_operand instead of <general_operand>.

* gcc.target/i386/pr70467-3.c: New test.
* gcc.target/i386/pr70467-4.c: New test.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r235816

8 years agore PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Jakub Jelinek [Tue, 3 May 2016 11:43:06 +0000 (13:43 +0200)]
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

PR tree-optimization/70916
* tree-if-conv.c (constant_or_ssa_name): Removed.
(fold_build_cond_expr): Use is_gimple_val instead of
constant_or_ssa_name.

From-SVN: r235815

8 years agore PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Jakub Jelinek [Tue, 3 May 2016 11:38:38 +0000 (13:38 +0200)]
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

PR tree-optimization/70916
* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.

* gcc.c-torture/compile/pr70916.c: New test.

From-SVN: r235814

8 years agore PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')
Jakub Jelinek [Tue, 3 May 2016 11:37:25 +0000 (13:37 +0200)]
re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')

PR target/49244
* tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
(optimize_atomic_bit_test_and): New function.
(pass_fold_builtins::execute): Use it.
* optabs.def (atomic_bit_test_and_set_optab,
atomic_bit_test_and_complement_optab,
atomic_bit_test_and_reset_optab): New optabs.
* internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
* builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
* builtins.c (expand_ifn_atomic_bit_test_and): New function.
* internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
* doc/md.texi (atomic_bit_test_and_set@var{mode},
atomic_bit_test_and_complement@var{mode},
atomic_bit_test_and_reset@var{mode}): Document.
* config/i386/sync.md (atomic_bit_test_and_set<mode>,
atomic_bit_test_and_complement<mode>,
atomic_bit_test_and_reset<mode>): New expanders.
(atomic_bit_test_and_set<mode>_1,
atomic_bit_test_and_complement<mode>_1,
atomic_bit_test_and_reset<mode>_1): New insns.

* gcc.target/i386/pr49244-1.c: New test.
* gcc.target/i386/pr49244-2.c: New test.

From-SVN: r235813

8 years agoPR 70687: Use wide_int in combine.c:change_zero_ext
Richard Sandiford [Tue, 3 May 2016 10:29:55 +0000 (10:29 +0000)]
PR 70687: Use wide_int in combine.c:change_zero_ext

PR 70687 reports a case where combine.c mishandles integer modes
wider than unsigned HOST_WIDE_INT.  I don't have a testcase since
the PR is just pointing out the hole.

Also, I think a ZERO_EXTEND of a vector mode could in principle satisfy
the subreg condition but wouldn't be equivalent to an AND.  E.g.:

      (zero_extend:V4DI (subreg:V4SI (reg:V4DI R) 0))

Tested on x86_64-linux-gnu.

gcc/
PR rtl-optimization/70687
* combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
instead of unsigned HOST_WIDE_INT.

From-SVN: r235811

8 years agoFix PR44281, bad RA with global regs.
Bernd Schmidt [Tue, 3 May 2016 09:35:42 +0000 (09:35 +0000)]
Fix PR44281, bad RA with global regs.

PR rtl-optimization/44281
* hard-reg-set.h (struct target_hard_regs): New field
x_fixed_nonglobal_reg_set.
(fixed_nonglobal_reg_set): New macro.
* reginfo.c (init_reg_sets_1): Initialize it.
* ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
of fixed_reg_set.
* df-scan.c (df_insn_refs_collect): Asms may reference global regs.

testsuite/
PR rtl-optimization/44281
* gcc.target/i386/pr44281.c: New test.

From-SVN: r235809

8 years agore PR tree-optimization/56541 (vectorizaton fails in conditional assignment of a...
Bin Cheng [Tue, 3 May 2016 09:04:46 +0000 (09:04 +0000)]
re PR tree-optimization/56541 (vectorizaton fails in conditional assignment of a constant)

PR tree-optimization/56541
* doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
* params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
* tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
(any_complicated_phi): new static variable.
(aggressive_if_conv): delete.
(if_convertible_phi_p): support phis with more than two arguments.
(if_convertible_bb_p): remvoe check on aggressive_if_conv and
critical pred edges.
(ifcvt_split_critical_edges): support phis with more than two
arguments by checking new parameter.  only split critical edges
if needed.
(tree_if_conversion): handle simd pragma marked loop using new
local variable aggressive_if_conv.  check any_complicated_phi.

gcc/testsuite
PR tree-optimization/56541
* gcc.dg/tree-ssa/ifc-pr56541.c: new test.
* gcc.dg/vect/pr56541.c: new test.

From-SVN: r235808

8 years agotree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on before using it.
Bin Cheng [Tue, 3 May 2016 08:54:49 +0000 (08:54 +0000)]
tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on before using it.

* tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
before using it.

From-SVN: r235807

8 years agotree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber cbase.
Bin Cheng [Tue, 3 May 2016 08:38:18 +0000 (08:38 +0000)]
tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber cbase.

* tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
cbase.

From-SVN: r235805

8 years agoMake-lang.in (cc1-checksum.c): For stage-final re-use the checksum from the previous...
Richard Biener [Tue, 3 May 2016 08:14:27 +0000 (08:14 +0000)]
Make-lang.in (cc1-checksum.c): For stage-final re-use the checksum from the previous stage.

2016-05-03  Richard Biener  <rguenther@suse.de>

c/
* Make-lang.in (cc1-checksum.c): For stage-final re-use
the checksum from the previous stage.

cp/
* Make-lang.in (cc1plus-checksum.c): For stage-final re-use
the checksum from the previous stage.

From-SVN: r235804

8 years agosh.md (udivsi3, [...]): Simplify.
Oleg Endo [Tue, 3 May 2016 06:47:34 +0000 (06:47 +0000)]
sh.md (udivsi3, [...]): Simplify.

gcc/
* config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
(mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
define_insn_and_split.
(mulsi3_i): New define_insn_and_split.
(mulsi3_call): Convert to define_insn.
(mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
Remove constraints.

From-SVN: r235803

8 years ago* c-common.h (enum c_omp_region_type): Remove stray comma.
Marek Polacek [Tue, 3 May 2016 06:40:46 +0000 (06:40 +0000)]
* c-common.h (enum c_omp_region_type): Remove stray comma.

From-SVN: r235802

8 years agoDaily bump.
GCC Administrator [Tue, 3 May 2016 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235800

8 years agomachmode.h (mode_complex): Add support to give the complex mode for a given mode.
Michael Meissner [Mon, 2 May 2016 23:23:45 +0000 (23:23 +0000)]
machmode.h (mode_complex): Add support to give the complex mode for a given mode.

[gcc]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

* machmode.h (mode_complex): Add support to give the complex mode
for a given mode.
(GET_MODE_COMPLEX_MODE): Likewise.
* stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
stored by build_complex_type and gfc_build_complex_type instead of
trying to figure out the appropriate mode based on the size. Raise
an assertion error, if the type was not set.
* genmodes.c (struct mode_data): Add field for the complex type of
the given type.
(blank_mode): Likewise.
(make_complex_modes): Remember the complex mode created in the
base type.
(emit_mode_complex): Write out the mode_complex array to map a
type mode to the complex version.
(emit_insn_modes_c): Likewise.
* tree.c (build_complex_type): Set the complex type to use before
calling layout_type.
* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
support for __float128 complex datatypes.
(rs6000_hard_regno_mode_ok): Likewise.
(rs6000_setup_reg_addr_masks): Likewise.
(rs6000_complex_function_value): Likewise.
* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
__float128 and __ibm128 complex.
(FLOAT128_IBM_P): Likewise.
(ALTIVEC_ARG_MAX_RETURN): Likewise.
* doc/extend.texi (Additional Floating Types): Document that
-mfloat128 must be used to enable __float128.  Document complex
__float128 and __ibm128 support.

[gcc/fortran]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

* trans-types.c (gfc_build_complex_type):

[gcc/testsuite]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/float128-complex-1.c: New tests for complex
__float128.
* gcc.target/powerpc/float128-complex-2.c: Likewise.

From-SVN: r235794

8 years agore PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')
Jakub Jelinek [Mon, 2 May 2016 22:12:54 +0000 (00:12 +0200)]
re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')

PR target/49244
* gimple.c (gimple_builtin_call_types_compatible_p): Allow
char/short arguments promoted to int because of promote_prototypes.

From-SVN: r235792

8 years agobackport: Since x86 psABIs require the function incoming stack must align at 16 bytes...
H.J. Lu [Mon, 2 May 2016 21:45:34 +0000 (21:45 +0000)]
backport: Since x86 psABIs require the function incoming stack must align at 16 bytes...

Backport r265322 from llvm upstream

Since x86 psABIs require the function incoming stack must align at 16
bytes, child process stack passed to clone should be aligned at 16
bytes.

PR testsuite/70520
* c-c++-common/asan/clone-test-1.c (main): Align child process
stack to 16 bytes.

From-SVN: r235790

8 years agoPR c++/62314: C++: add fixit hint to misspelled member names
David Malcolm [Mon, 2 May 2016 19:09:30 +0000 (19:09 +0000)]
PR c++/62314: C++: add fixit hint to misspelled member names

When we emit a hint about a misspelled member name, it will slightly
aid readability if we use a fixit-hint to show the proposed
name in context within the source code (and in the future this
might support some kind of auto-apply in an IDE).

This patch adds such a hint to the C++ frontend, taking us from:

test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;
               ^~~~~~

to:

test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
   return ptr->colour;
               ^~~~~~
               color

gcc/cp/ChangeLog:
PR c++/62314
* typeck.c (finish_class_member_access_expr): When
giving a hint about a possibly-misspelled member name,
add a fix-it replacement hint.

gcc/testsuite/ChangeLog:
PR c++/62314
* g++.dg/spellcheck-fields-2.C: New test case.

From-SVN: r235785

8 years ago* ChangeLog: Add missing entry.
Uros Bizjak [Mon, 2 May 2016 18:58:18 +0000 (20:58 +0200)]
* ChangeLog: Add missing entry.

From-SVN: r235783

8 years agopredicates.md (register_ssemem_operand): New predicate.
Uros Bizjak [Mon, 2 May 2016 18:52:33 +0000 (20:52 +0200)]
predicates.md (register_ssemem_operand): New predicate.

* config/i386/predicates.md (register_ssemem_operand): New predicate.
* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
*cmpi<FPCMP:unord><MODEF:mode>_mixed and
*cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
alternatives using "enabled" attribute.  Use register_ssemem_operand
as operand 1 predicate.
(*cmpi<unord>xf_i387): Split XFmode pattern from
*cmpi<FPCMP:unord><X87MODEF:mode>_i387.
(*absneg<mode>2): Merge from *absneg<mode>2_mixed and
*absneg<mode>2_i387.  Disable unsupported alternatives using
"enabled" attribute.

From-SVN: r235782

8 years agoc-common.h (enum c_omp_region_type): Define.
Cesar Philippidis [Mon, 2 May 2016 18:49:15 +0000 (11:49 -0700)]
c-common.h (enum c_omp_region_type): Define.

gcc/c-family/
* c-common.h (enum c_omp_region_type): Define.

gcc/c/
* c-parser.c (c_parser_oacc_all_clauses): Update call to
c_finish_omp_clauses.
(c_parser_omp_all_clauses): Likewise.
(c_parser_oacc_cache): Likewise.
(c_parser_oacc_loop): Likewise.
(omp_split_clauses): Likewise.
(c_parser_omp_declare_target): Likewise.
(c_parser_cilk_all_clauses): Likewise.
(c_parser_cilk_for): Likewise.
* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.

gcc/cp/
* cp-tree.h (finish_omp_clauses): Update prototype.
* parser.c (cp_parser_oacc_all_clauses): Update call to
finish_omp_clauses.
(cp_parser_omp_all_clauses): Likewise.
(cp_parser_omp_for_loop): Likewise.
(cp_omp_split_clauses): Likewise.
(cp_parser_oacc_cache): Likewise.
(cp_parser_oacc_loop): Likewise.
(cp_parser_omp_declare_target):
(cp_parser_cilk_simd_all_clauses): Likewise.
(cp_parser_cilk_for): Likewise.
* pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
arguments with enum c_omp_region_type ort.
(tsubst_omp_clauses): Update calls to finish_omp_clauses.
(tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
(tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
(tsubst_expr): Update calls to tsubst_omp_clauses.
* semantics.c (finish_omp_clauses): Replace bool arguments
allow_fields, declare_simd, and is_cilk with bitmask ort.
(finish_omp_for): Update call to finish_omp_clauses.

From-SVN: r235780

8 years agoPR c++/62314: add fixit hint for missing "template <> " in explicit specialization
David Malcolm [Mon, 2 May 2016 18:36:40 +0000 (18:36 +0000)]
PR c++/62314: add fixit hint for missing "template <> " in explicit specialization

gcc/cp/ChangeLog:
PR c++/62314
* parser.c (cp_parser_class_head): Capture the start location;
use it to emit a fix-it insertion hint when complaining
about missing "template <> " in explicit specializations.

gcc/testsuite/ChangeLog:
PR c++/62314
* g++.dg/pr62314.C: New test case.

From-SVN: r235777

8 years agoomp-low.c (lower_oacc_head_tail): Assert there is at least one marker.
Nathan Sidwell [Mon, 2 May 2016 18:27:40 +0000 (18:27 +0000)]
omp-low.c (lower_oacc_head_tail): Assert there is at least one marker.

* omp-low.c (lower_oacc_head_tail): Assert there is at least one
marker.
(oacc_loop_process): Check mask for loop termination.

From-SVN: r235775

8 years agoDon't install libvtv without --enable-vtable-verify
Rainer Orth [Mon, 2 May 2016 18:10:17 +0000 (18:10 +0000)]
Don't install libvtv without --enable-vtable-verify

* Makefile.am (toolexeclib_LTLIBRARIES): Only set if
ENABLE_VTABLE_VERIFY.
Simplify.
* Makefile.in: Regenerate.

From-SVN: r235772

8 years agoipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert accidental change.
Jan Hubicka [Mon, 2 May 2016 17:38:53 +0000 (19:38 +0200)]
ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert accidental change.

* ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
accidental change.

From-SVN: r235771

8 years ago* cif-code.def (CIF_THUNK): Add.
Jan Hubicka [Mon, 2 May 2016 17:34:32 +0000 (19:34 +0200)]
* cif-code.def (CIF_THUNK): Add.

From-SVN: r235770

8 years ago* sv.po, zh_CN.po: Update.
Joseph Myers [Mon, 2 May 2016 17:27:36 +0000 (18:27 +0100)]
* sv.po, zh_CN.po: Update.

From-SVN: r235768

8 years agoDemangler integer overflow fixes from Marcel Böhme.
Marcel Böhme [Mon, 2 May 2016 17:06:40 +0000 (17:06 +0000)]
Demangler integer overflow fixes from Marcel Böhme.

PR c++/70498
* cp-demangle.c: Parse numbers as integer instead of long to avoid
overflow after sanity checks. Include <limits.h> if available.
(INT_MAX): Define if necessary.
(d_make_template_param): Takes integer argument instead of long.
(d_make_function_param): Likewise.
(d_append_num): Likewise.
(d_identifier): Likewise.
(d_number): Parse as and return integer.
(d_compact_number): Handle overflow.
(d_source_name): Change variable type to integer for parsed number.
(d_java_resource): Likewise.
(d_special_name): Likewise.
(d_discriminator): Likewise.
(d_unnamed_type): Likewise.
* testsuite/demangle-expected: Add regression test cases.

From-SVN: r235767

8 years agoipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
Jan Hubicka [Mon, 2 May 2016 16:55:56 +0000 (18:55 +0200)]
ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions

* ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
(dump_inline_summary): Dump it.
(fp_expression_p): New predicate.
(estimate_function_body_sizes): Use it.
(inline_merge_summary): Merge fp_expressions.
(inline_read_section): Read fp_expressions.
(inline_write_summary): Write fp_expressions.
* ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
codegen boundary if either caller or callee is !fp_expressions.
* ipa-inline.h (inline_summary): Add fp_expressions.
* ipa-inline-transform.c (inline_call): When inlining !fp_expressions
to fp_expressions be sure the fp generation flags are updated.

* gcc.dg/ipa/inline-8.c: New testcase.

From-SVN: r235766

8 years agore PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t...
Jakub Jelinek [Mon, 2 May 2016 16:46:10 +0000 (18:46 +0200)]
re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)

PR rtl-optimization/70467
* cse.c (cse_insn): Handle no-op MEM moves after folding.

* gcc.target/i386/pr70467-1.c: New test.

From-SVN: r235765

8 years agore PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t...
Jakub Jelinek [Mon, 2 May 2016 16:17:02 +0000 (18:17 +0200)]
re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)

PR rtl-optimization/70467
* ipa-pure-const.c (check_call): Handle internal calls even in
ipa mode like in local mode.

From-SVN: r235764

8 years agoconfigure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
Bernd Edlinger [Mon, 2 May 2016 15:23:20 +0000 (15:23 +0000)]
configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.

2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
        * configure: Regenerated.
        * Makefile.def (gmp): Explicitly disable assembler.
        (mpfr): Adjust lib_path.
        (mpc): Likewise.
        * Makefile.in: Regenerated.

gcc/
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.

contrib/
2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * download_prerequisites: Adjust gmp/mpfr/mpc versions.

From-SVN: r235763

8 years agospec-options.c: Run the test on all targets.
Bernd Edlinger [Mon, 2 May 2016 14:41:25 +0000 (14:41 +0000)]
spec-options.c: Run the test on all targets.

2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.dg/spec-options.c: Run the test on all targets.
        * gcc.dg/foo.specs: Use cpp_unique_options.

From-SVN: r235762

8 years agoCanonicalize X u< X to UNORDERED_EXPR
Marc Glisse [Mon, 2 May 2016 14:32:53 +0000 (16:32 +0200)]
Canonicalize X u< X to UNORDERED_EXPR

2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (X u< X, X u> X): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/unord.c: New testcase.

From-SVN: r235761

8 years agoMove "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd
Marc Glisse [Mon, 2 May 2016 14:09:07 +0000 (16:09 +0200)]
Move "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd

2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* flag-types.h (enum warn_strict_overflow_code): Move ...
* coretypes.h: ... here.
* fold-const.h (fold_overflow_warning): Declare.
* fold-const.c (fold_overflow_warning): Make non-static.
(fold_comparison): Move the transformation of X +- C1 CMP C2
into X CMP C2 -+ C1 ...
* match.pd: ... here.
* gimple-fold.c (fold_stmt_1): Protect with
fold_defer_overflow_warnings.

gcc/testsuite/
* gcc.dg/tree-ssa/20040305-1.c: Adjust.

From-SVN: r235760

8 years agoomp-low.c (struct oacc_loop): Add 'inner' field.
Nathan Sidwell [Mon, 2 May 2016 13:16:22 +0000 (13:16 +0000)]
omp-low.c (struct oacc_loop): Add 'inner' field.

gcc/
* omp-low.c (struct oacc_loop): Add 'inner' field.
(new_oacc_loop_raw): Initialize it to zero.
(oacc_loop_fixed_partitions): Initialize it.
(oacc_loop_auto_partitions): Partition outermost loop to outermost
available partitioning.

gcc/testsuite/
* c-c++-common/goacc/loop-auto-1.c: Adjust expected warnings.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
expected partitioning.

From-SVN: r235756

8 years agoFix make install-gcc-specs with empty GCC_SPEC_FILES
Rainer Orth [Mon, 2 May 2016 13:08:59 +0000 (13:08 +0000)]
Fix make install-gcc-specs with empty GCC_SPEC_FILES

* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
Honor DESTDIR.

From-SVN: r235754

8 years agore PR c/70851 (internal compiler error: in create_tmp_var, at gimple-expr.c:473)
Marek Polacek [Mon, 2 May 2016 11:35:59 +0000 (11:35 +0000)]
re PR c/70851 (internal compiler error: in create_tmp_var, at gimple-expr.c:473)

PR c/70851
* c-decl.c (grokdeclarator): Diagnose when array's size has an
incomplete type.

* gcc.dg/enum-incomplete-3.c: New test.

From-SVN: r235750

8 years ago[ARC] Various instruction pattern fixes
Claudiu Zissulescu [Mon, 2 May 2016 11:26:57 +0000 (13:26 +0200)]
[ARC] Various instruction pattern fixes

gcc/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsidi3): Change operand 0 predicate to
register_operand.
(umulsidi3): Likewise.
(indirect_jump): Fix jump instruction assembly patterns.

From-SVN: r235749

8 years ago[PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value
Thomas Schwinge [Mon, 2 May 2016 11:25:17 +0000 (13:25 +0200)]
[PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value

gcc/
PR target/70860
* config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
(nvptx_function_value): Assert non-NULL cfun.

From-SVN: r235748

8 years agoMinor reformatting.
Arnaud Charlet [Mon, 2 May 2016 10:37:34 +0000 (12:37 +0200)]
Minor reformatting.

From-SVN: r235747

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:36:45 +0000 (12:36 +0200)]
[multiple changes]

2016-05-02  Tristan Gingold  <gingold@adacore.com>

* fname.adb (Is_Predefined_File_Name): Also consider non-krunched
i-* names.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Aggregate_Constraint_Checks): Separate
accessibility checks and non-null checks for aggregate components,
to prevent spurious accessibility errors.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (OK_For_Limited_Init): A type conversion is not
always legal in the in-place initialization of a limited entity
(e.g. an allocator).
* sem_res.adb (Resolve_Allocator): Improve error message with RM
reference  when allocator expression is illegal.

From-SVN: r235746

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:34:16 +0000 (12:34 +0200)]
[multiple changes]

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Call): When inlining a call to a function
declared in a package instance, locate the instance node of the
package after the actual package declaration. skipping over
pragmas that may have been introduced when the generic unit
carries aspects that are transformed into pragmas.

2016-05-02  Bob Duff  <duff@adacore.com>

* s-memory.adb (Alloc, Realloc): Move checks
for Size = 0 or size_t'Last into the Result = System.Null_Address
path for efficiency. Improve comments (based on actual C language
requirements for malloc).
* exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the
case where we are using the default Global_Pool_Object, and we
don't need the heavy finalization machinery.

From-SVN: r235745

8 years agoMinor reformatting.
Arnaud Charlet [Mon, 2 May 2016 10:31:39 +0000 (12:31 +0200)]
Minor reformatting.

From-SVN: r235744

8 years agoexp_util.ads, [...]: Minor reformatting.
Gary Dismukes [Mon, 2 May 2016 10:31:25 +0000 (10:31 +0000)]
exp_util.ads, [...]: Minor reformatting.

2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_util.ads, sem_ch12.adb: Minor reformatting.

From-SVN: r235743

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:30:23 +0000 (12:30 +0200)]
[multiple changes]

2016-05-02  Javier Miranda  <miranda@adacore.com>

* exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal.
(Remove_Side_Effects): Adding a new formal.
* exp_ch6.adb (Expand_Simple_Function_Return): Generating the
call to the _Postconditions procedure ensure that side-effects
are unconditionally removed.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch):
Use original node to determine whether the declaration is for
a formal type declaration, to take into account that formwl
private types are rewritten as private extension declarations
to simplify semantic analysis.

From-SVN: r235742

8 years agoexp_ch9.adb, [...]: Minor reformatting and typo fixes.
Gary Dismukes [Mon, 2 May 2016 10:29:12 +0000 (10:29 +0000)]
exp_ch9.adb, [...]: Minor reformatting and typo fixes.

2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo
fixes.

From-SVN: r235741

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:27:18 +0000 (12:27 +0200)]
[multiple changes]

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor
reformatting.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch4.adb (Expand_N_Allocator): If the designated type
is a private derived type with no discriminants, examine its
underlying_full_view to determine whether the full view has
defaulted discriminants, so their defaults can be used in the
call to the initialization procedure for the designated object.

From-SVN: r235740

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:18:12 +0000 (12:18 +0200)]
[multiple changes]

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_prag.adb, comperr.adb: Minor reformatting.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an
unchecked conversion if the source size is 0 (indicating that
its RM size is unknown). This will happen with packed arrays of
non-discrete types, in which case the component type is known
to match.

2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* debug.adb: Reserve -gnatd.V.

2016-05-02  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Process_Full_View): Remove from visibility
wrappers of synchronized types to avoid spurious errors with
their wrapped entity.
* exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper
if no interface primitive is covered by the subprogram and this is
not a primitive declared between two views; see Process_Full_View.
(Build_Protected_Sub_Specification): Link the dispatching
subprogram with its original non-dispatching protected subprogram
since their names differ.
(Expand_N_Protected_Type_Declaration):
If a protected subprogram overrides an interface primitive then
do not build a wrapper if it was already built.
* einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute.
* sem_ch4.adb (Names_Match): New subprogram.
* sem_ch6.adb (Check_Synchronized_Overriding): Moved
to library level and defined in the public part of the
package to invoke it from Exp_Ch9.Build_Wrapper_Spec
(Has_Matching_Entry_Or_Subprogram): New subprogram.
(Report_Conflict): New subprogram.

From-SVN: r235739

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:14:23 +0000 (12:14 +0200)]
[multiple changes]

2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

* s-unstyp.ads: Code cleanups.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Size_Too_Small_Error): Fix the error message format.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_prag.adb (Expand_attributes_In_Consequence,
Expand_Attributes): If the prefix of'Old is an unconstrained type,
for example an unconstrained formal of the enclosing subprogram,
create an object declaration with an expression to obtain the
actual subtype of the temporary.

2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* comperr.adb (Delete_SCIL_Files): Add missing handling of
N_Subprogram_Declaration.

From-SVN: r235738

8 years agoMinor reformatting.
Arnaud Charlet [Mon, 2 May 2016 10:10:21 +0000 (12:10 +0200)]
Minor reformatting.

From-SVN: r235737

8 years ago[multiple changes]
Arnaud Charlet [Mon, 2 May 2016 10:10:01 +0000 (12:10 +0200)]
[multiple changes]

2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
fixes.
* sem_prag.adb, sem_ch12.adb: Minor typo fixes.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
function call may be wrapped in an explicit type conversion.

2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

* interfac.ads: use pragma No_Elaboration_Code_All.
* s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.

2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem.adb (Analyze: If node is an error node previously created
by the parser, disable expansion to prevent subsequent glitches
in error recovery.

From-SVN: r235736

8 years agore PR rtl-optimization/70886 (-frename-registers causes boostrap comparison failures...
Eric Botcazou [Mon, 2 May 2016 10:08:59 +0000 (10:08 +0000)]
re PR rtl-optimization/70886 (-frename-registers causes boostrap comparison failures on ia64)

PR rtl-optimization/70886
* sched-deps.c (estimate_dep_weak): Canonicalize cselib values.

* cselib.h (rtx_equal_for_cselib_1): Declare.
(rtx_equal_for_cselib_p: New inline function.
* cselib.c (rtx_equal_for_cselib_p): Delete.
(rtx_equal_for_cselib_1): Make public.

From-SVN: r235735

8 years agoMinor reformatting.
Arnaud Charlet [Mon, 2 May 2016 10:07:02 +0000 (12:07 +0200)]
Minor reformatting.

From-SVN: r235734

8 years agosem_ch13.adb (Alignment_Error): Removed.
Hristian Kirtchev [Mon, 2 May 2016 10:06:45 +0000 (10:06 +0000)]
sem_ch13.adb (Alignment_Error): Removed.

2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Alignment_Error): Removed.
(Get_Alignment_Value): Code cleanup.

From-SVN: r235733