platform/upstream/linaro-gcc.git
8 years ago * omp-low.c: Fix some OpenACC comment typos.
nathan [Mon, 9 Nov 2015 21:56:42 +0000 (21:56 +0000)]
* omp-low.c: Fix some OpenACC comment typos.
(lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
* omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
BUILT_IN_GOACC_GET_NUM_THREADS): Delete.

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

8 years ago2015-11-09 François Dumont <fdumont@gcc.gnu.org>
fdumont [Mon, 9 Nov 2015 21:10:18 +0000 (21:10 +0000)]
2015-11-09  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_algo.h
(partial_sort_copy): Instantiate std::iterator_traits only if concept
checks.
(lower_bound): Likewise.
(upper_bound): Likewise.
(equal_range): Likewise.
(binary_search): Likewise.
* include/bits/stl_heap.h (pop_heap): Likewise.

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

8 years ago * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
uros [Mon, 9 Nov 2015 20:06:57 +0000 (20:06 +0000)]
* config/i386/i386.md (*strmovqi_1): Fix insn enable condition.

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

8 years agoRe: [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
law [Mon, 9 Nov 2015 19:56:57 +0000 (19:56 +0000)]
Re: [PATCH] Minor refactoring in tree-ssanames.c & freelists verifier

* tree-ssanames.c (verify_ssaname_freelists): Simplify check for
being in gimple/ssa form.  Remove redundant check for SSA_NAME.
Fix comment typo.

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

8 years ago * g++.dg/cilk-plus/CK/pr66326.cc: Do not include cilk.h.
uros [Mon, 9 Nov 2015 19:49:44 +0000 (19:49 +0000)]
* g++.dg/cilk-plus/CK/pr66326.cc: Do not include cilk.h.
(main): Use _Cilk_spawn instead of cilk_spawn.

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

8 years agoResolve DejaGnu hard stop
tschwinge [Mon, 9 Nov 2015 17:53:02 +0000 (17:53 +0000)]
Resolve DejaGnu hard stop

gcc/testsuite/
* gcc.target/i386/addr-space-3.c: Fix quoting in dg-final
scan-assembler directive.

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

8 years agoSupport sized delete.
torvald [Mon, 9 Nov 2015 17:30:24 +0000 (17:30 +0000)]
Support sized delete.

This adds transactional clones of the sized version of operator delete.

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

8 years ago2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Mon, 9 Nov 2015 16:56:22 +0000 (16:56 +0000)]
2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
ISA 3.0 (power9).
(-mpower9-vector): Likewise.
(-mpower9-dform): Likewise.
(-mpower9-minmax): Likewise.
(-mtoc-fusion): Likewise.
(-mmodulo): Likewise.
(-mfloat128-hardware): Likewise.

* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
mask for ISA 3.0 (power9).
(POWERPC_MASKS): Add new ISA 3.0 switches.
(power9 cpu): Add power9 cpu.

* config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for
power9.
(ASM_CPU_SPEC): Likewise.
(EXTRA_SPECS): Likewise.

* config/rs6000/rs6000-opts.h (enum processor_type): Add
PROCESSOR_POWER9.

* config/rs6000/rs6000.c (power9_cost): Initial cost setup for
power9.
(rs6000_debug_reg_global): Add support for power9 fusion.
(rs6000_setup_reg_addr_masks): Cache mode size.
(rs6000_option_override_internal): Until real power9 tuning is
added, use -mtune=power8 for -mcpu=power9.
(rs6000_setup_reg_addr_masks): Do not allow pre-increment,
pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
of Altivec registers.
(rs6000_option_override_internal): Add support for ISA 3.0
switches.
(rs6000_loop_align): Add support for power9 cpu.
(rs6000_file_start): Likewise.
(rs6000_adjust_cost): Likewise.
(rs6000_issue_rate): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
(rs6000_register_move_cost): Likewise.
(rs6000_opt_masks): Likewise.

* config/rs6000/rs6000.md (cpu attribute): Add power9.
* config/rs6000/rs6000-tables.opt: Regenerate.

* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
_ARCH_PWR9 if power9 support is available.

* config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
* config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.

* configure.ac: Determine if the assembler supports the ISA 3.0
instructions.
* config.in (HAVE_AS_POWER9): Likewise.
* configure: Regenerate.

* doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
switches.

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

8 years ago[AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW
ktkachov [Mon, 9 Nov 2015 15:55:56 +0000 (15:55 +0000)]
[AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW

* config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
Remove integer CONST_DOUBLE handling.  It should never occur.

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

8 years ago[AArch64] PR target/68129: Define TARGET_SUPPORTS_WIDE_INT
ktkachov [Mon, 9 Nov 2015 15:53:26 +0000 (15:53 +0000)]
[AArch64] PR target/68129: Define TARGET_SUPPORTS_WIDE_INT

PR target/68129
* config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
* config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
Delete VOIDmode case.  Assert that mode is not VOIDmode.
* config/aarch64/predicates.md (const0_operand): Remove const_double
match.

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

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

8 years agoFix memory leaks in IPA.
marxin [Mon, 9 Nov 2015 15:47:01 +0000 (15:47 +0000)]
Fix memory leaks in IPA.

* ipa-inline-analysis.c (estimate_function_body_sizes): Call
body_info release function.
* ipa-prop.c (ipa_release_body_info): New function.
(ipa_analyze_node): Call the function.
(ipa_node_params::~ipa_node_params): Release known_csts.
* ipa-prop.h (ipa_release_body_info): Declare.

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

8 years agoFix memory leaks and use a pool_allocator
marxin [Mon, 9 Nov 2015 15:45:59 +0000 (15:45 +0000)]
Fix memory leaks and use a pool_allocator

* gcc.c (record_temp_file): Release name string.
* ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead
of vec.
* lra-lives.c (free_live_range_list): Utilize
lra_live_range_pool for allocation and deallocation.
(create_live_range): Likewise.
(copy_live_range): Likewise.
(lra_merge_live_ranges): Likewise.
(remove_some_program_points_and_update_live_ranges): Likewise.
(lra_create_live_ranges_1): Release point_freq_vec that can
be not freed from previous iteration of the function.
* tree-eh.c (lower_try_finally_switch): Use auto_vec instead of
vec.
* tree-sra.c (sra_deinitialize): Release all vectors in
base_access_vec.
* tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
Release edge_info for a removed edge.
(thread_through_all_blocks): Free region vector.
* tree-ssa.h (free_dom_edge_info): Declare function extern.

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

8 years ago[PR debug/67192] Further fix C loops' back-jump location
krebbel [Mon, 9 Nov 2015 15:35:10 +0000 (15:35 +0000)]
[PR debug/67192] Further fix C loops' back-jump location

gcc/c/ChangeLog:

PR debug/67192
* c-typeck.c (c_finish_loop): For unconditional loops, set the
location of the backward-goto to the start of the loop body.

gcc/testsuite/ChangeLog:

PR debug/67192
* gcc.dg/guality/pr67192.c (f3, f4): New functions.
(main): Invoke them.

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

8 years ago[PR debug/67192] Fix C loops' back-jump location
krebbel [Mon, 9 Nov 2015 15:31:32 +0000 (15:31 +0000)]
[PR debug/67192] Fix C loops' back-jump location

gcc/c/ChangeLog:

PR debug/67192
* c-parser.c (c_parser_while_statement): Finish the loop before
parsing ahead for misleading indentation.
(c_parser_for_statement): Likewise.

gcc/testsuite/ChangeLog:

PR debug/67192
* gcc.dg/guality/pr67192.c: New test.

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

8 years agogcc/
ienkovich [Mon, 9 Nov 2015 15:11:02 +0000 (15:11 +0000)]
gcc/

* optabs.c (expand_vec_cond_expr): Always get sign from type.
* tree.c (wide_int_to_tree): Support negative values for boolean.
(build_nonstandard_boolean_type): Use signed type for booleans.

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

8 years ago2015-11-09 Richard Biener <rguenther@suse.de>
rguenth [Mon, 9 Nov 2015 14:47:09 +0000 (14:47 +0000)]
2015-11-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68248
* tree-vect-generic.c (expand_vector_operations_1): Handle
scalar rhs2.

* gcc.dg/torture/pr68248.c: New testcase.

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

8 years ago2015-11-09 Richard Biener <rguenther@suse.de>
rguenth [Mon, 9 Nov 2015 12:59:17 +0000 (12:59 +0000)]
2015-11-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56118
* tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
* tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
function.
(vect_slp_analyze_data_ref_dependences): Instead of computing
all dependences of the region DRs just analyze the code motions
SLP vectorization will perform.  Remove SLP instances that
cannot have their store/load motions applied.
(vect_analyze_data_refs): Allow DRs without a vectype
in BB vectorization.

* gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Adjust.

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

8 years agoMachine modes for address printing.
jules [Mon, 9 Nov 2015 12:16:55 +0000 (12:16 +0000)]
Machine modes for address printing.

* final.c (output_asm_insn): Pass VOIDmode to output_address.
(output_address): Add MODE argument. Pass to print_operand_address
hook.
* targhooks.c (default_print_operand_address): Add MODE argument.
* targhooks.h (default_print_operand_address): Update prototype.
* output.h (output_address): Update prototype.
* target.def (print_operand_address): Add MODE argument.
* config/vax/vax.c (print_operand_address): Pass VOIDmode to
output_address.
(print_operand): Pass access mode to output_address.
* config/mcore/mcore.c (mcore_print_operand_address): Add MODE
argument.
(mcore_print_operand): Update calls to mcore_print_operand_address.
* config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
output_address.
* config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
output_address.
* config/tilegx/tilegx.c (output_memory_reference_mode): Remove
global.
(tilegx_print_operand): Don't set above global. Update calls to
output_address.
(tilegx_print_operand_address): Add MODE argument. Use instead of
output_memory_reference_mode global.
* config/frv/frv.c (frv_print_operand_address): Add MODE argument.
(frv_print_operand): Pass mode to frv_print_operand_address calls.
* config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
output_address.
* config/cris/cris.c (cris_print_operand_address): Add MODE
argument.
(cris_print_operand): Pass mode to output_address calls.
* config/spu/spu.c (print_operand): Pass mode to output_address
calls.
* config/aarch64/aarch64.h (aarch64_print_operand)
(aarch64_print_operand_address): Remove prototypes.
* config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
global.
(aarch64_print_operand): Make static. Update calls to
output_address.
(aarch64_print_operand_address): Add MODE argument. Use instead of
aarch64_memory_reference_mode global.
(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
hooks.
* config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
Delete macro definitions.
* config/pa/pa.c (pa_print_operand): Pass mode in output_address
calls.
* config/xtensa/xtensa.c (print_operand): Pass mode in
output_address calls.
* config/h8300/h8300.c (h8300_print_operand_address): Add MODE
argument.
(h83000_print_operand): Update calls to h8300_print_operand_address
and output_address.
* config/ia64/ia64.c (ia64_print_operand_address): Add MODE
argument.
* config/tilepro/tilepro.c (output_memory_reference_mode): Delete
global.
(tilepro_print_operand): Pass mode to output_address.
(tilepro_print_operand_address): Add MODE argument. Use instead of
output_memory_reference_mode.
* config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
(nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
to output_address calls.
(nvptx_print_operand_address): Add MODE argument.
* config/alpha/alpha.c (print_operand): Pass mode argument in
output_address calls.
* config/m68k/m68k.c (print_operand): Pass mode argument in
output_address call.
* config/avr/avr.c (avr_print_operand_address): Add MODE argument.
(avr_print_operand): Update calls to avr_print_operand_address.
* config/sparc/sparc.c (sparc_print_operand_address): Add MODE
argument. Update calls to output_address.
(sparc_print_operand): Pass mode to output_address.
* config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
argument.
(iq2000_print_operand): Pass mode in output_address calls.
* config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
MODE argument.
(xstormy16_print_operand): Pass mode to
xstormy16_print_operand_address calls.
* config/mips/mips.c (mips_print_operand): Update calls to
output_address.
(mips_print_operand_address): Add MODE argument.
* config/epiphany/epiphany.c (epiphany_print_operand): Update calls
to output_address.
(epiphany_print_operand_address): Add MODE argument. Add FIXME note.
* config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
output_address.
* config/rx/rx.c (rx_print_operand_address): Add MODE argument.
(rx_print_operand): Update calls to output_address,
rx_print_operand_address.
* config/nds32/nds32.c (nds32_print_operand): Update calls to
output_address.
(nds32_print_operand_address): Add MODE argument.
* config/rs6000/rs6000.c (print_operand): Pass mem mode to
output_address calls.
* config/c6x/c6x.c (print_address_offset): Pass mem mode to
output_address call.
(c6x_print_address_operand): Update calls to output_address.
(c6x_print_operand_address): Pass mode to above.
* config/v850/v850.c (v850_print_operand_address): Add MODE
argument.
(v850_print_operand): Pass mode to v850_print_operand_address,
output_address.
* config/mmix/mmix.c (mmix_print_operand_address): Add MODE
argument.
(mmix_print_operand): Pass mode in output_address calls.
* config/sh/sh.c (sh_print_operand_address): Add MODE argument.
(sh_print_operand): Pass mem mode to output_address,
sh_print_operand_address.
* config/cr16/cr16.c (cr16_print_operand_address): Add MODE
argument.
(cr16_print_operand): Pass mode to output_address,
cr16_print_operand_address.
* config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
output_address.
* config/microblaze/microblaze.c (print_operand): Pass mode to
output_address.
* config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
output_address.
(nios2_print_operand_address): Add MODE argument. Update call to
nios2_print_operand_address.
* config/s390/s390.c (print_operand): Pass mode to output_address.
* config/m32c/m32c.c (m32c_print_operand_address): Add MODE
argument.
* config/arc/arc.c (arc_print_operand): Pass VOIDmode to
output_address.
* config/arm/arm.c (arm_print_operand_address): Add MODE argument.
Use instead of output_memory_reference_mode.
(output_memory_reference_mode): Delete global.
(arm_print_operand): Pass mem mode to output_address.
* config/m32r/m32r.c (m32r_print_operand_address): Add MODE
argument.
(m32r_print_operand): Pass mode to output_address.
* config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
argument.
(msp430_print_operand): Pass mode to msp430_print_operand_addr.
* config/i386/i386.c (ix86_print_operand): Pass mode to
output_address calls.
(ix86_print_operand_address): Add MODE argument.

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

8 years ago PR middle-end/68251
ebotcazou [Mon, 9 Nov 2015 12:14:07 +0000 (12:14 +0000)]
PR middle-end/68251
* tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
* tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
* tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.

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

8 years ago[RTL-ifcvt] PR rtl-optimization/67749: Do not emit separate SET insn in IF-ELSE case
ktkachov [Mon, 9 Nov 2015 11:40:17 +0000 (11:40 +0000)]
[RTL-ifcvt] PR rtl-optimization/67749: Do not emit separate SET insn in IF-ELSE case

PR rtl-optimization/67749
* ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
case before emitting the two blocks.  Instead modify the register
in the corresponding final insn of the basic block.

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

8 years agoSupport init priority on Solaris
ro [Mon, 9 Nov 2015 11:33:30 +0000 (11:33 +0000)]
Support init priority on Solaris

libgcc:
* config/ia64/crtbegin.S: Check HAVE_INITFINI_ARRAY_SUPPORT
value.
* config/ia64/crtend.S: Likewise.

gcc:
* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
assembler syntax.
Support Solaris ld.
Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.

* config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
HAVE_INITFINI_ARRAY_SUPPORT.
* config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT
value.

* configure.ac (gcc_cv_as_sparc_nobits): Remove.
* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
Don't check HAVE_AS_SPARC_NOBITS.
Heed SECTION_NOTYPE.

* configure: Regenerate.
* config.in: Regenerate.

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

8 years ago PR middle-end/68253
ebotcazou [Mon, 9 Nov 2015 10:45:00 +0000 (10:45 +0000)]
PR middle-end/68253
* fold-const.c (fold_truth_andor_1): Initialize new variables to 0.

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

8 years ago2015-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Mon, 9 Nov 2015 10:29:06 +0000 (10:29 +0000)]
2015-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * gcc.target/arm/thumb2-slow-flash-data.c: Add missing typespec for
    labelref and check use of constant pool by looking for .word and
    similar directives.

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

8 years agolibcilkrts/
ienkovich [Mon, 9 Nov 2015 10:12:34 +0000 (10:12 +0000)]
libcilkrts/

2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>

PR target/66326
* runtime/config/x86/os-unix-sysdep.c (sysdep_save_fp_ctrl_state):
Use fnstcw instead fnstsw.

gcc/testsuite

2015-11-09  Igor Zamyatin  <igor.zamyatin@intel.com>

PR target/66326
* g++.dg/cilk-plus/CK/pr66326.cc: New test.

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

8 years agoi386: Add address spaces for fs/gs segments and tls
rth [Mon, 9 Nov 2015 09:20:21 +0000 (09:20 +0000)]
i386: Add address spaces for fs/gs segments and tls

        * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
        __SEG_GS, __SEG_TLS.
        (ix86_register_pragmas): Register address spaces __seg_fs,
        __seg_gs, __seg_tls.
        * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
        (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
        (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
        * config/i386/i386.c (ix86_decompose_address): Likewise.
        (ix86_legitimate_address_p): Likewise.
        (memory_address_length): Likewise.  Check mem address space too.
        (ix86_print_operand): Use ix86_print_operand_address_as.
        (ix86_print_operand_address_as): Rename from
        ix86_print_operand_address, add new addr_space_t parameter.
        Validate that either the parameter or the ix86_address segment
        is default address space.  Handle ADDR_SPACE_SEG_TLS.
        (ix86_print_operand_address): New.
        (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
        (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
        (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
        (ix86_addr_space_zero_address_valid): New.
        (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
        * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
        * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
        * config/i386/predicates.md (address_no_seg_operand): Likewise.
        (vsib_address_operand): Likewise.
        (address_mpx_no_base_operand): Likewise.
        (address_mpx_no_index_operand): Likewise.
        * doc/extend.texi (x86 Named Address Spaces): New section.

        * gcc.target/i386/addr-space-1.c: New test.
        * gcc.target/i386/addr-space-2.c: New test.
        * gcc.target/i386/addr-space-3.c: New test.

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

8 years agoi386: Disallow address spaces with string insns
rth [Mon, 9 Nov 2015 09:19:59 +0000 (09:19 +0000)]
i386: Disallow address spaces with string insns

While cmps and movs allow a segment override of the ds:esi
source, the es:edi source/destination cannot be overriden.
Simplify things in the backend for now by disallowing
segments for string insns entirely.

* config/i386/i386.c (ix86_check_no_addr_space): New.
(decide_alg): Add have_as parameter.
(alg_usable_p): Likewise; disable rep algorithms if set.
(ix86_expand_set_or_movmem): Notice if either MEM has a
non-default address space.
(ix86_expand_strlen): Likewise.
* config/i386/i386.md (strmov, strset): Likewise.
(*strmovdi_rex_1): Use ix86_check_no_addr_space.
(*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
*strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
*rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
*cmpstrnqi_1, *strlenqi_1): Likewise.

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

8 years agoi386: Handle address spaces in movabs patterns
rth [Mon, 9 Nov 2015 09:19:40 +0000 (09:19 +0000)]
i386: Handle address spaces in movabs patterns

* config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
(*movabs<mode>_2): Likewise.

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

8 years agoAdd hook for modifying debug info for address spaces
rth [Mon, 9 Nov 2015 09:19:19 +0000 (09:19 +0000)]
Add hook for modifying debug info for address spaces

        * dwarf2out.c (modified_type_die): Pass the address space number
        through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
        * target.def (TARGET_ADDR_SPACE_DEBUG): New.
        * targhooks.c (default_addr_space_debug): New.
        * targhooks.h (default_addr_space_debug): Declare.
        * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
        * doc/tm.texi: Rebuild.

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

8 years agoAdd TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID
rth [Mon, 9 Nov 2015 09:18:59 +0000 (09:18 +0000)]
Add TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID

        * gimple.c (check_loadstore): Return false when 0 is a valid address.
        * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
        null when 0 is valid in the source address space.
        * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
        * targhooks.c (default_addr_space_zero_address_valid): New.
        * targhooks.h (default_addr_space_zero_address_valid): Declare.
        * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
        * doc/tm.texi: Rebuild.

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

8 years agoAvoid CSE of MEMs in different address spaces
rth [Mon, 9 Nov 2015 09:18:35 +0000 (09:18 +0000)]
Avoid CSE of MEMs in different address spaces

        * cselib.c (add_mem_for_addr): Compare address spaces when
        matching memories.
        (cselib_lookup_mem): Likewise.
        * fold-const.c (operand_equal_p): Check address spaces of
        pointer types before checking integer constants.

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

8 years agoPR tree-opt/66768
rth [Mon, 9 Nov 2015 09:18:16 +0000 (09:18 +0000)]
PR tree-opt/66768

        * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
        the correct type for the base.

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

8 years ago[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
law [Mon, 9 Nov 2015 09:02:27 +0000 (09:02 +0000)]
[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
* tree-into-ssa.c (names_to_release): No longer static.
* tree-into-ssa.h (names_to_release): Declare.
* tree-ssanames.c (verify_ssaname_freelists): New debug function.
(release_free_names_and_compact_live_names): New function extracted
from pass_release_ssa_names::execute.
(pass_release_ssa_names::execute): Use it.

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

8 years ago2015-11-08 Steven g. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 9 Nov 2015 05:50:24 +0000 (05:50 +0000)]
2015-11-08  Steven g. Kargl  <kargl@gcc.gnu.org>

PR fortran/68053
* decl.c (add_init_expr_to_sym):  Try to reduce initialization expression
before testing for a constant value.

2015-11-08  Steven g. Kargl  <kargl@gcc.gnu.org>

PR fortran/68053
* gfortran.dg/pr68053.f90: New test.

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

8 years agoConfigury changes for obstack optimization
amodra [Mon, 9 Nov 2015 04:54:15 +0000 (04:54 +0000)]
Configury changes for obstack optimization

Missed from last patch

* config.in: Regenerate.

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

8 years agoConfigury changes for obstack optimization
amodra [Mon, 9 Nov 2015 04:32:08 +0000 (04:32 +0000)]
Configury changes for obstack optimization

* configure.ac: Check size of size_t.
* configure: Regenerate.

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

8 years agoSilence obstack.c -Wc++compat warning
amodra [Mon, 9 Nov 2015 04:30:26 +0000 (04:30 +0000)]
Silence obstack.c -Wc++compat warning

* obstack.c (_obstack_newchunk): Silence -Wc++compat warning.
(_obstack_begin_worker): Likewise.  Move assignment to h->chunk
after alloc failure check.

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

8 years agoModify obstack.[hc] to avoid having to include other gnulib files
amodra [Mon, 9 Nov 2015 04:28:21 +0000 (04:28 +0000)]
Modify obstack.[hc] to avoid having to include other gnulib files

Using the standard gnulib obstack source requires importing quite a
lot of other files from gnulib, and requires build changes.

include/
* obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE.
libiberty/
* obstack.c (__alignof__): Expand alignof_type from alignof.h.
(obstack_exit_failure): Don't use exitfail.h.
(_): Include libintl.h when HAVE_LIBINTL_H and nls enabled.
Provide default.  Don't include gettext.h.
(_Noreturn): Define.
* obstacks.texi: Adjust node references to external libc info files.

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

8 years agoCopy gnulib obstack files
amodra [Mon, 9 Nov 2015 04:26:32 +0000 (04:26 +0000)]
Copy gnulib obstack files

This copies obstack.[ch] from gnulib, and updates the docs.  The next
patch should be applied if someone repeats the import at a later date.

include/
* obstack.h: Import current gnulib file.
libiberty/
* obstack.c: Import current gnulib file.
* obstacks.texi: Updated doc, from glibc's manual/memory.texi.

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

8 years agoUpdate libsanitizer obstack interceptors
amodra [Mon, 9 Nov 2015 04:23:25 +0000 (04:23 +0000)]
Update libsanitizer obstack interceptors

New obstack uses sensible types, size_t instead of int for length
params.  Since libsanitizer does not use prototypes from obstack.h to
call the real functions, it's necessary to update the libsanitizer
function declarations emitted by the INTERCEPTOR macro.

* sanitizer_common/sanitizer_common_interceptors.inc: Update size
params for _obstack_begin_1, _obstack_begin, _obstack_newchunk
interceptors.
* configure.ac: Substitute OBSTACK_DEFS.
* asan/Makefile.am: Add OBSTACK_DEFS to DEFS.
* tsan/Makefile.am: Likewise.
* configure: Regenerate.
* Makefile.in: Regenerate.
* asan/Makefile.in: Regenerate.
* interception/Makefile.in: Regenerate.
* libbacktrace/Makefile.in: Regenerate.
* lsan/Makefile.in: Regenerate.
* sanitizer_common/Makefile.in: Regenerate.
* tsan/Makefile.in: Regenerate.
* ubsan/Makefile.in: Regenerate.

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

8 years agoCorrect libvtv obstack use
amodra [Mon, 9 Nov 2015 04:19:43 +0000 (04:19 +0000)]
Correct libvtv obstack use

Fixes a compile error with both old and new obstacks due to
obstack_chunk_free having the wrong signature.  Also, setting chunk
size and alignment before obstack_init is pointless since they are
overwritten.

* vtv_malloc.cc (obstack_chunk_free): Correct param type.
(__vtv_malloc_init): Use obstack_specify_allocation.

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

8 years agoNew obstack_next_free is not an lvalue
amodra [Mon, 9 Nov 2015 04:17:53 +0000 (04:17 +0000)]
New obstack_next_free is not an lvalue

New obstack.h casts obstack_next_free to (void *), resulting in it
being a non-lvalue, and warnings on pointer arithmetic.

gcc/
* gensupport.c (add_mnemonic_string): Make len param a size_t.
(gen_mnemonic_setattr): Make "size" var a size_t.  Use
obstack_blank_fast to shrink obstack.  Cast obstack_next_free
return value.
gcc/objc/
* objc-encoding.c (encode_aggregate_within): Cast obstack_next_free
return value.

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

8 years agoFix bb-reorder problem with degenerate cond_jump (PR68182)
segher [Mon, 9 Nov 2015 03:57:19 +0000 (03:57 +0000)]
Fix bb-reorder problem with degenerate cond_jump (PR68182)

The code mistakenly thinks any cond_jump has two successors.  This is
not true if both destinations are the same, as can happen with weird
patterns as in the PR.

PR rtl-optimization/68182
* gcc/bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
branch with only one successor just like unconditional branches.

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

8 years ago[PATCH] Remove backedge handling support in tree-ssa-threadupdate.c
law [Mon, 9 Nov 2015 03:19:09 +0000 (03:19 +0000)]
[PATCH] Remove backedge handling support in tree-ssa-threadupdate.c

* tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
non-FSM path has no edges marked with EDGE_DFS_BACK.
(ssa_redirect_edges): No longer call mark_loop_for_removal.
(thread_single_edge, def_split_header_continue_p): Remove.
(bb_ends_with_multiway_branch): Likewise.
(thread_through_loop_header): Remove cases of threading from
latch through the header.  Simplify knowing we won't thread
the latch.
(thread_through_all_blocks): Simplify knowing that only the FSM
threader needs to handle backedges.

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

8 years agoDaily bump.
gccadmin [Mon, 9 Nov 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

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

8 years ago * g++.dg/lto/pr68057_0.C: Fix testcase.
hubicka [Sun, 8 Nov 2015 19:14:29 +0000 (19:14 +0000)]
* g++.dg/lto/pr68057_0.C: Fix testcase.

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

8 years agoMove tests depending on graphite to correct subdirectory.
vondele [Sun, 8 Nov 2015 19:12:53 +0000 (19:12 +0000)]
Move tests depending on graphite to correct subdirectory.

2015-11-08  Joost VandeVondele <vondele@gcc.gnu.org>

* gfortran.dg/PR67518.f90: move from here...
* gfortran.dg/graphite/PR67518.f90: to here.
* gfortran.dg/PR53852.f90: move from here...
* gfortran.dg/graphite/PR53852.f90: to here.

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

8 years agoMerge of the scalar-storage-order branch.
ebotcazou [Sun, 8 Nov 2015 18:33:42 +0000 (18:33 +0000)]
Merge of the scalar-storage-order branch.

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

8 years agoClean up fallout on ILP32 from r229831.
msebor [Sun, 8 Nov 2015 17:53:51 +0000 (17:53 +0000)]
Clean up fallout on ILP32 from r229831.

gcc/
PR c++/67942
* cp/init.c (warn_placement_new_too_small): Convert integer
operand of POINTER_PLUS_EXPR to ssize_t to determine its signed
value.

c-family/
        * c.opt (Wplacement-new): Add a period to the end of
        a sentence.

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

8 years agogcc/fortran/ChangeLog:
vehre [Sun, 8 Nov 2015 17:37:42 +0000 (17:37 +0000)]
gcc/fortran/ChangeLog:

2015-11-08  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/68218
* trans-array.c (gfc_array_init_size): Add gfc_evaluate_now() when
array spec in allocate is a function call.

gcc/testsuite/ChangeLog:

2015-11-08  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/68218
* gfortran.dg/allocate_with_arrayspec_1.f90: New test.

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

8 years ago2015-11-08 Steven G. Kargl <kargl@gc.gnu.org>
kargl [Sun, 8 Nov 2015 17:25:16 +0000 (17:25 +0000)]
2015-11-08  Steven G. Kargl  <kargl@gc.gnu.org>

PR fortran/68224
* array.c (match_array_element_spec): Check of invalid NULL().
While here, fix nearby comments.

2015-11-08  Steven G. Kargl  <kargl@gc.gnu.org>

PR fortran/68224
* gfortran.dg/pr68224.f90: New test.

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

8 years ago2015-11-08 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 8 Nov 2015 16:47:58 +0000 (16:47 +0000)]
2015-11-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68196
* class.c (has_finalizer_component): Prevent infinite recursion
through this function if the derived type and that of its
component are the same.
* trans-types.c (gfc_get_derived_type): Do the same for proc
pointers by ignoring the explicit interface for the component.

PR fortran/66465
* check.c (same_type_check): If either of the expressions is
BT_PROCEDURE, use the typespec from the symbol, rather than the
expression.

2015-11-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68196
* gfortran.dg/proc_ptr_47.f90: New test.

PR fortran/66465
* gfortran.dg/pr66465.f90: New test.

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

8 years ago[AArch64] Fix vqtb[lx][234] on big-endian
clyon [Sun, 8 Nov 2015 07:59:31 +0000 (07:59 +0000)]
[AArch64] Fix vqtb[lx][234] on big-endian

Forgot to commit the new testcases:
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqtbX.c

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

8 years agoDaily bump.
gccadmin [Sun, 8 Nov 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

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

8 years ago * config/sparc/sparc.opt (mfix-at697f): Add final period.
ebotcazou [Sat, 7 Nov 2015 22:34:20 +0000 (22:34 +0000)]
* config/sparc/sparc.opt (mfix-at697f): Add final period.

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

8 years ago * gcc.dg/Wno-frame-address.c: Skip on hppa*-*-*.
danglin [Sat, 7 Nov 2015 22:22:33 +0000 (22:22 +0000)]
* gcc.dg/Wno-frame-address.c: Skip on hppa*-*-*.

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

8 years ago2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Sat, 7 Nov 2015 20:18:17 +0000 (20:18 +0000)]
2015-11-07  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68153
* check.c (gfc_check_reshape): Improve check for valid SHAPE argument.

2015-11-07  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68153
* gfortran.dg/pr68153.f90: New test.

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

8 years ago2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Sat, 7 Nov 2015 20:04:43 +0000 (20:04 +0000)]
2015-11-07  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68151
* match.c (match_case_selector):  Check for invalid type.

2015-11-07  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68151
* gfortran.dg/pr68151.f90: New test.

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

8 years agoi386: Use the STC bb-reorder algorithm at -Os (PR67864)
segher [Sat, 7 Nov 2015 19:44:21 +0000 (19:44 +0000)]
i386: Use the STC bb-reorder algorithm at -Os (PR67864)

For x86, STC still gives better results for optimise-for-size than
"simple" does.  So use STC at -Os as well.

PR rtl-optimization/67864
* common/config/i386/i386-common.c (ix86_option_optimization_table)
<OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
at -Os and up.

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

8 years agoreplace BITS_PER_UNIT with __CHAR_BIT__ in target libs
tbsaunde [Sat, 7 Nov 2015 19:36:26 +0000 (19:36 +0000)]
replace BITS_PER_UNIT with __CHAR_BIT__ in target libs

libgcc/ChangeLog:

2015-11-07  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config/visium/lib2funcs.c (__set_trampoline_parity): Use
__CHAR_BIT__ instead of BITS_PER_UNIT.
* fixed-bit.h: Likewise.
* fp-bit.h: Likewise.
* libgcc2.c (__popcountSI2): Likewise.
(__popcountDI2): Likewise.
* libgcc2.h: Likewise.
* libgcov.h: Likewise.

libobjc/ChangeLog:

2015-11-07  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

PR libobjc/24775
* encoding.c (_darwin_rs6000_special_round_type_align): Use
__CHAR_BIT__ instead of BITS_PER_UNIT.
(objc_sizeof_type): Likewise.
(objc_layout_structure): Likewise.
(objc_layout_structure_next_member): Likewise.
(objc_layout_finish_structure): Likewise.
(objc_layout_structure_get_info): Likewise.

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

8 years ago* config/rs6000/atexit.c: New file.
dje [Sat, 7 Nov 2015 14:23:32 +0000 (14:23 +0000)]
* config/rs6000/atexit.c: New file.
* config/rs6000/t-aix-cxa (LIB2ADDEH): Build atexit.c.
* config/rs6000/libgcc-aix-cxa.ver (atexit): Add symbol to exports.
* config/rs6000/cxa_finalize.c
(catomic_compare_and_exchange_bool_acq): Negate return value.

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

8 years agoHandle internal functions in is_tm_pure_call
rsandifo [Sat, 7 Nov 2015 10:19:56 +0000 (10:19 +0000)]
Handle internal functions in is_tm_pure_call

The upcoming changes to use internal functions for things like sqrt
caused a failure in gcc.dg/tm/20100610.c, because we were trying to get
call flags from the null gimple_call_fn of an IFN_SQRT call.  We've been
making fairly heavy use of internal functions for a while now so I think
this might be latent.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
internal functions.

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

8 years agoMove #undef DEF_BUILTIN* to builtins.def
rsandifo [Sat, 7 Nov 2015 10:18:38 +0000 (10:18 +0000)]
Move #undef DEF_BUILTIN* to builtins.def

I was confused at first why tree-core.h was undefining DEF_BUILTIN_CHKP
before defining it, then undefining it again after including builtins.def.
This is because builtins.def provides a default definition of
DEF_BUILTIN_CHKP, but leaves it up to the caller to undefine it where
necessary.  Similarly to the previous internal-fn.def patch, it seems
more obvious for builtins.def to #undef things unconditionally.

One argument might have been that keeping preprocessor stuff
out of the .def files makes it easier for non-cpp parsers.  In practice
though we already have #ifs and multiline #defines, so single-line #undefs
should be easy in comparison.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/ada/
* gcc-interface/utils.c: Don't undef DEF_BUILTIN.

gcc/c-family/
* c-common.c: Don't undef DEF_BUILTIN.

gcc/jit/
* jit-builtins.c: Don't undef DEF_BUILTIN.

gcc/lto/
* lto-lang.c: Don't undef DEF_BUILTIN.

gcc/
* builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
* builtins.c, genmatch.c, tree-core.h: Don't undef them here.

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

8 years agoMove #undef DEF_INTERNAL_FN to internal-fn.def
rsandifo [Sat, 7 Nov 2015 10:17:05 +0000 (10:17 +0000)]
Move #undef DEF_INTERNAL_FN to internal-fn.def

In practice the definition of DEF_INTERNAL_FN is never reused after
including internal-fn.def, so we might as well #undef it there.

This becomes more obvious with a later patch that adds other
DEF_INTERNAL_* directives, such as DEF_INTERNAL_OPTAB_FN.
If the includer doesn't care about the information carried in
these new directives, it can simply leave the macro undefined
and internals.def will provide a definition that forwards to
DEF_INTERNAL_FN.  It doesn't make much sense for includers to have
to #undef macros that are defined by internals.def and it seems overly
complicated to get internals.def to undef macros only in the cases
where it provided a definition.  Instead I went with the approach of
#undeffing all the DEF_INTERNAL_* macros unconditionally.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* internal-fn.def: #undef DEF_INTERNAL_FN at the end.
* internal-fn.c: Don't undef it here.
* tree-core.h: Likewise.

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

8 years agoMove const char * -> int/fp folds to fold-const-call.c
rsandifo [Sat, 7 Nov 2015 10:10:44 +0000 (10:10 +0000)]
Move const char * -> int/fp folds to fold-const-call.c

This patch moves folds that deal with constant string arguments and
return a constant integer or floating-point value.  For example, it
handles strcmp ("foo", "bar") but not strstr ("foobar", "bar"),
which wouldn't currently be accepted by the gimple folders.

The builtins.c folding for strlen (via c_strlen) is a bit more general
than what the fold-const-call.c code does (and more general than we need
for the gimple folders).  I've therefore left it as-is, even though it
partially duplicates the new code.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* builtins.c (fold_builtin_nan): Delete.
(fold_builtin_memcmp): Remove case where both arguments are constant.
(fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
(fold_builtin_strspn, fold_builtin_strcspn): Likewise.
(fold_builtin_1): Remove BUILT_IN_NAN* handling.
* fold-const-call.c: Include fold-const.h.
(host_size_t_cst_p): New function.
(build_cmp_result, fold_const_builtin_nan): Likewise.
(fold_const_call_1): New function, split out from...
(fold_const_call): ...here (for all three interfaces).  Handle
constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.

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

8 years agoMove constant bitop and bswap folds to fold-const-call.c
rsandifo [Sat, 7 Nov 2015 10:08:31 +0000 (10:08 +0000)]
Move constant bitop and bswap folds to fold-const-call.c

The only folds left in builtins.c were for constants, so we can remove
the builtins.c handling entirely.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
(fold_builtin_1): Don't call them.
* fold-const-call.c: Include tm.h.
(fold_const_call_ss): New variant for integer-to-integer folds.
(fold_const_call): Call it.

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

8 years agoHandle constant fp classifications in fold-const-call.c
rsandifo [Sat, 7 Nov 2015 10:05:51 +0000 (10:05 +0000)]
Handle constant fp classifications in fold-const-call.c

Move the constant "is finite", "is infinite" and "is nan" queries
to fold-const-call.c.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* builtins.c (fold_builtin_classify): Move constant cases to...
* fold-const-call.c (fold_const_call_ss): ...here.

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

8 years agoMove c_getstr to fold-const.c
rsandifo [Sat, 7 Nov 2015 10:01:52 +0000 (10:01 +0000)]
Move c_getstr to fold-const.c

Upcoming patches to fold-const-call.c want to use c_getstr, which is
currently defined in builtins.c.  The function doesn't really do anything
related to built-ins, and I'd rather not make fold-const-call.c depend
on builtins.c and builtins.c depend on fold-const-call.c, so this patch
moves the function to fold-const.c instead.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* builtins.h (c_getstr): Move to...
* fold-const.h (c_getstr): ...here.
* builtins.c (c_getstr): Move to...
* fold-const.c (c_getstr): ...here.

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

8 years agoDon't treat rint as setting errno
rsandifo [Sat, 7 Nov 2015 10:00:31 +0000 (10:00 +0000)]
Don't treat rint as setting errno

builtins.def says that rint sets errno, but it looks like this might
be a mistake.  C99 says that rint doesn't set errno and the builtins.c
expansion code doesn't try to keep errno up to date.

Perhaps this was because earlier versions of POSIX said that
rint sets errno on overflow:

        http://pubs.opengroup.org/onlinepubs/009695399/functions/rintf.html

However, this is another instance of the observation that "rounding
functions could never overflow" (because anything using exponents
that large is already integral).  The page above also says that
differences with C99 are unintentional and the ERANGE clause has
been removed from later versions of POSIX:

        http://pubs.opengroup.org/onlinepubs/9699919799/functions/rint.html

Also, the version of POSIX that lists ERANGE for rint does the same
for nearbyint:

        http://pubs.opengroup.org/onlinepubs/009695399/functions/nearbyintf.html

and we already treat nearbyint as not setting errno.  This too has been
clarified in later versions of POSIX:

        http://pubs.opengroup.org/onlinepubs/9699919799/functions/nearbyint.html

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.

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

8 years agoAdd -fno-math-errno to gcc.dg/lto/20110201-1_0.c
rsandifo [Sat, 7 Nov 2015 09:58:32 +0000 (09:58 +0000)]
Add -fno-math-errno to gcc.dg/lto/20110201-1_0.c

At the moment the ECF_* flags for a gimple call to a built-in
function are derived from the function decl, which in turn is
derived from the global command-line options.  So if the compiler
is run with -fno-math-errno, we always assume functions don't set
errno, regardless of local optimization options.  Similarly if the
compiler is run with -fmath-errno, we always assume functions set errno.

This shows up in gcc.dg/lto/20110201-1_0.c, where we compile
the file with -O0 and use -O2 -ffast-math for a specific function.
-O2 -ffast-math is enough for us to convert cabs to sqrt as hoped,
but because of the global -fmath-errno setting, we assume that the
call to sqrt is not pure or const and create vops for it.  This makes
it appear to the gimple code that a simple sqrt optab isn't enough.

Later patches move more decisions about maths functions to gimple
and think that in this case we should use:

        y = sqrt (x);
        if (!(x >= 0))
            sqrt (x); // to set errno.

This is being tracked as PR68235.  For now the patch adds
-fno-math-errno to the dg-options for this test.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/testsuite/
PR tree-optimization/68235
* gcc.dg/lto/20110201-1_0.c: Add -fno-math-errno.

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

8 years agoTry to update dominance info in tree-call-cdce.c
rsandifo [Sat, 7 Nov 2015 09:56:04 +0000 (09:56 +0000)]
Try to update dominance info in tree-call-cdce.c

The pass would free the dominance info after making a change, but it
should be pretty easy to keep the information up-to-date when the call
has no EH edges.

Tested on x86_64-linux-gnu, arm-linux-gnueabi and aarch64-linux-gnu.

gcc/
* tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
the dominance info; free it if we can't.
(pass_call_cdce::execute): Don't free the dominance info here.

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

8 years ago[PATCH] Remove more backedge threading support
law [Sat, 7 Nov 2015 06:31:14 +0000 (06:31 +0000)]
[PATCH] Remove more backedge threading support

* tree-ssa-threadedge.c (dummy_simplify): Remove.
(thread_around_empty_blocks): Remove backedge_seen_p argument.
If we thread to a backedge, then return false.  Update recursive
call to eliminate backedge_seen_p argument.
(thread_through_normal_block): Remove backedge_seen_p argument.
Remove backedge_seen_p argument from calls to
thread_around_empty_blocks.  Remove checks on backedge_seen_p.
If we thread to a backedge, then return 0.
(thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
pass it to thread_through_normal_block or thread_through_empty_blocks.
For joiner handling, if we see a backedge, do not try normal
threading.

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

8 years agoadd original schedule to scop
spop [Sat, 7 Nov 2015 01:32:27 +0000 (01:32 +0000)]
add original schedule to scop

    * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
    * graphite-poly.c (new_scop): Initialize original_schedule.
    (free_scop): Free original_schedule.
    * graphite-poly.h (struct scop): Add field original_schedule.
    * graphite-sese-to-poly.c (build_scop_original_schedule): New.
    (build_poly_scop): Call build_scop_original_schedule.

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

8 years agodo not create unnecessary dimensions in scop scattering
spop [Sat, 7 Nov 2015 01:32:20 +0000 (01:32 +0000)]
do not create unnecessary dimensions in scop scattering

           * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
           (build_pbb_minimal_scattering_polyhedrons): New.
           (build_scop_scattering): Remove.
           (build_scop_minimal_scattering): New.
           (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
           (build_poly_scop): Call build_scop_minimal_scattering.

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

8 years ago PR go/66138
ian [Sat, 7 Nov 2015 01:24:57 +0000 (01:24 +0000)]
PR go/66138
    reflect, encoding/json, encoding/xml: fix unexported embedded structs

    Bring in three changes from the master Go repository.  These changes
    will be in Go 1.6, but they are appropriate for gccgo now because they
    resolve a long-standing discrepancy between how gc and gccgo handle the
    PkgPath field for embedded unexported struct fields.  The core issue is
    described at https://golang.org/cl/7247.  This has been reported against
    gccgo as https://gcc.gnu.org/PR66138.

    The three changes being brought over are:

    https://golang.org/cl/14010

    reflect: adjust access to unexported embedded structs

    This CL changes reflect to allow access to exported fields and
    methods in unexported embedded structs for gccgo and after gc
    has been adjusted to disallow access to embedded unexported structs.

    Adresses #12367, #7363, #11007, and #7247.

    https://golang.org/cl/14011

    encoding/json: check for exported fields in embedded structs

    Addresses issue #12367.

    https://golang.org/cl/14012

    encoding/xml: check for exported fields in embedded structs

    Addresses issue #12367.

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

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

8 years agoDaily bump.
gccadmin [Sat, 7 Nov 2015 00:16:18 +0000 (00:16 +0000)]
Daily bump.

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

8 years ago[PATCH] Allow vrp to thread across backedges using FSM threader
law [Fri, 6 Nov 2015 23:26:20 +0000 (23:26 +0000)]
[PATCH] Allow vrp to thread across backedges using FSM threader

* cfg-flags.def (IGNORE): New edge flag.
* tree-vrp.c (identify_jump_threads): Mark and clear edges
scheduled for removal with EDGE_IGNORE around call into
jump threader.  Do no thread across edges with EDGE_IGNORE,
but do allow threading across those with EDGE_DFS_BACK.

* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust to look for
realized jump threads.
* gcc.dg/tree-ssa-pr66752-3.c: Look in vrp1 dump for jump
threads rather than dom1 dump.

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

8 years agoinline asm and multi-alternative constraints
law [Fri, 6 Nov 2015 22:52:35 +0000 (22:52 +0000)]
inline asm and multi-alternative constraints

* doc/md.texi (multi-alternative constraints): Don't document
alternatives inherently tied to reload for the user documentation.

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

8 years ago2015-11-06 Michael Collison <michael.collison@linaro.org
collison [Fri, 6 Nov 2015 22:38:25 +0000 (22:38 +0000)]
2015-11-06  Michael Collison  <michael.collison@linaro.org
    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

Revert:
2015-08-01  Michael Collison  <michael.collison@linaro.org
    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* config/arm/arm.md (*arm_smin_cmp): New pattern.
(*arm_umin_cmp): Likewise.

2015-11-06  Michael Collison  <michael.collison@linaro.org
    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

Revert:
2015-08-01  Michael Collison  <michael.collison@linaro.org
    Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

* gcc.target/arm/mincmp.c: New test.

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

8 years ago2015-11-06 Dominique d'Humieres <dominiq@lps.ens.fr>
dominiq [Fri, 6 Nov 2015 21:49:18 +0000 (21:49 +0000)]
2015-11-06  Dominique d'Humieres <dominiq@lps.ens.fr>

PR fortran/54224
* gfortran.dg/warn_unused_function_2.f90: Add two new
"defined but not used" subroutines.

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

8 years agoDo not use libiberty's getpagesize on Android
brobecke [Fri, 6 Nov 2015 21:37:49 +0000 (21:37 +0000)]
Do not use libiberty's getpagesize on Android

libiberty/ChangeLog:

        * configure.ac: Set AC_CV_FUNC_GETPAGESIZE to "yes" on
        Android hosts.
        * configure: Regenerate.

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

8 years ago * gimplify.c (gimplify_omp_ordered): Fix up diagnostics
jakub [Fri, 6 Nov 2015 21:21:16 +0000 (21:21 +0000)]
* gimplify.c (gimplify_omp_ordered): Fix up diagnostics
wording.
* omp-low.c (check_omp_nesting_restrictions): Update for the
various new OpenMP 4.5 nesting restrictions, clarified
nesting glossary, closely nested region relationship clarified
to mean explicit or implicit parallel regions (target/teams),
use %</%> or %qs where appropriate.

* gcc.dg/gomp/ordered-2.c (f1): Expect an extra error.
* g++.dg/gomp/ordered-2.C (f1): Likewise.
* gfortran.dg/goacc/parallel-kernels-regions.f95: Adjust
expected diagnostics for the addition of quotes.
* gfortran.dg/gomp/target3.f90: Likewise.
* c-c++-common/goacc/nesting-fail-1.c: Likewise.
* c-c++-common/goacc-gomp/nesting-fail-1.c: Likewise.
* c-c++-common/gomp/doacross-1.c: Likewise.
* c-c++-common/gomp/nesting-warn-1.c: Likewise.
* c-c++-common/gomp/cancel-1.c (f2): Add some new tests.
Adjust expected diagnostics wording.
* c-c++-common/gomp/clauses-4.c (foo): Likewise.
Don't expect error on ordered threads simd when in for simd.
* c-c++-common/gomp/nesting-2.c: New test.
* c-c++-common/gomp/ordered-3.c (foo): Add some new tests.
* c-c++-common/gomp/ordered-4.c: New test.

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

8 years ago * gcc.dg/pragma-diag-5.c: Make test cases unique.
mrs [Fri, 6 Nov 2015 21:16:30 +0000 (21:16 +0000)]
* gcc.dg/pragma-diag-5.c: Make test cases unique.

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

8 years agodo not collect cold loops in scops
spop [Fri, 6 Nov 2015 20:43:52 +0000 (20:43 +0000)]
do not collect cold loops in scops

           * graphite-scop-detection.c (loop_is_valid_scop): Call
           optimize_loop_nest_for_speed_p.

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

8 years agoenable loop fusion on isl-15
spop [Fri, 6 Nov 2015 20:43:46 +0000 (20:43 +0000)]
enable loop fusion on isl-15

       * graphite-optimize-isl.c (optimize_isl): Call
       isl_options_set_schedule_maximize_band_depth.

       * gcc.dg/graphite/fuse-1.c: New.
       * gcc.dg/graphite/fuse-2.c: New.
       * gcc.dg/graphite/interchange-13.c: Remove bogus check.

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

8 years agoDo not allow irreducible loops/regions in a scop
spop [Fri, 6 Nov 2015 20:43:40 +0000 (20:43 +0000)]
Do not allow irreducible loops/regions in a scop

Irreducible regions are not going to be optimized by ISL
so discard them early. Passes bootstrap and regtest.

gcc/ChangeLog:

2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>

        * graphite-scop-detection.c (scop_detection::merge_sese): Entry and exit edges should not be a part of irreducible loop.
        (scop_detection::can_represent_loop_1): Loops should not be irreducible.
        (scop_detection::harmful_stmt_in_region): All the basic block should belong to reducible loops.

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

8 years ago[AArch64] Fix vqtb[lx][234] on big-endian
clyon [Fri, 6 Nov 2015 20:34:12 +0000 (20:34 +0000)]
[AArch64] Fix vqtb[lx][234] on big-endian

2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/aarch64/aarch64-simd-builtins.def: Update builtins
tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
* config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
(aarch64_tbl3<mode>) ... this, which supports v16qi too.
(aarch64_tbx4v8qi): Rename to...
aarch64_tbx4<mode>): ... this.
(aarch64_qtbl3<mode>): New pattern.
(aarch64_qtbx3<mode>): New pattern.
(aarch64_qtbl4<mode>): New pattern.
(aarch64_qtbx4<mode>): New pattern.
* config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
(vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
(vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
(vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
(vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
(vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
(vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
(vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
functions.

gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vqtbX.c: New test.

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

8 years ago PR debug/66728
mrs [Fri, 6 Nov 2015 20:16:06 +0000 (20:16 +0000)]
PR debug/66728
* dwarf2out.c (get_full_len): Return a value based upon the actual
precision needed for the value.
(add_const_value_attribute): Use a maximal wide-int for
CONST_WIDE_INTs, not VOIDmode.
(output_die): Don't ever output NULL with printf.

* rtl.h (get_precision of rtx_mode_t): Ensure we never process
BLKmode nor VOIDmode values.

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

8 years agoReimplement diagnostic_show_locus, introducing rich_location classes
dmalcolm [Fri, 6 Nov 2015 19:50:50 +0000 (19:50 +0000)]
Reimplement diagnostic_show_locus, introducing rich_location classes

gcc/ChangeLog:
* diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
and "range2".
(parse_gcc_colors): Update comment to describe default GCC_COLORS.
* diagnostic-core.h (warning_at_rich_loc): New declaration.
(error_at_rich_loc): New declaration.
(permerror_at_rich_loc): New declaration.
(inform_at_rich_loc): New declaration.
* diagnostic-show-locus.c (adjust_line): Delete.
(struct point_state): New struct.
(class colorizer): New class.
(class layout_point): New class.
(class layout_range): New class.
(struct line_bounds): New.
(class layout): New class.
(colorizer::colorizer): New ctor.
(colorizer::~colorizer): New dtor.
(layout::layout): New ctor.
(layout::print_source_line): New method.
(layout::print_annotation_line): New method.
(layout::get_state_at_point): New method.
(layout::get_x_bound_for_row): New method.
(diagnostic_show_locus): Reimplement in terms of class layout.
(diagnostic_print_caret_line): Delete.
* diagnostic.c (diagnostic_initialize): Replace
MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
(diagnostic_set_info_translated): Convert param from location_t
to rich_location *.  Eliminate calls to set_location on the
message in favor of storing the rich_location ptr there.
(diagnostic_set_info): Convert param from location_t to
rich_location *.
(diagnostic_build_prefix): Break out array into...
(diagnostic_kind_color): New variable.
(diagnostic_get_color_for_kind): New function.
(diagnostic_report_diagnostic): Colorize the option_text
using the color for the severity.
(diagnostic_append_note): Update for change in signature of
diagnostic_set_info.
(diagnostic_append_note_at_rich_loc): New function.
(emit_diagnostic): Update for change in signature of
diagnostic_set_info.
(inform): Likewise.
(inform_at_rich_loc): New function.
(inform_n): Update for change in signature of diagnostic_set_info.
(warning): Likewise.
(warning_at): Likewise.
(warning_at_rich_loc): New function.
(warning_n): Update for change in signature of diagnostic_set_info.
(pedwarn): Likewise.
(permerror): Likewise.
(permerror_at_rich_loc): New function.
(error): Update for change in signature of diagnostic_set_info.
(error_n): Likewise.
(error_at): Likewise.
(error_at_rich_loc): New function.
(sorry): Update for change in signature of diagnostic_set_info.
(fatal_error): Likewise.
(internal_error): Likewise.
(internal_error_no_backtrace): Likewise.
(source_range::debug): New function.
* diagnostic.h (struct diagnostic_info): Eliminate field
"override_column".  Add field "richloc".
(struct diagnostic_context): Add field "colorize_source_p".
(diagnostic_override_column): Delete.
(diagnostic_set_info): Convert param from location_t to
rich_location *.
(diagnostic_set_info_translated): Likewise.
(diagnostic_append_note_at_rich_loc): New function.
(diagnostic_num_locations): New function.
(diagnostic_expand_location): Get the location from the
rich_location.
(diagnostic_print_caret_line): Delete.
(diagnostic_get_color_for_kind): New declaration.
* genmatch.c (linemap_client_expand_location_to_spelling_point): New.
(error_cb): Update for change in signature of "error" callback.
(fatal_at): Likewise.
(warning_at): Likewise.
* input.c (linemap_client_expand_location_to_spelling_point): New.
* pretty-print.c (text_info::set_range): New method.
(text_info::get_location): New method.
* pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
(struct text_info): Eliminate "locations" array in favor of
"m_richloc", a rich_location *.
(textinfo::set_location): Add a "caret_p" param, and reimplement
in terms of a call to set_range.
(textinfo::get_location): Eliminate inline implementation in favor of
an out-of-line reimplementation.
(textinfo::set_range): New method.
* rtl-error.c (diagnostic_for_asm): Update for change in signature
of diagnostic_set_info.
* tree-diagnostic.c (default_tree_printer): Update for new
"caret_p" param for textinfo::set_location.
* tree-pretty-print.c (percent_K_format): Likewise.

gcc/c-family/ChangeLog:
* c-common.c (c_cpp_error): Convert parameter from location_t to
rich_location *.  Eliminate the "column_override" parameter and
the call to diagnostic_override_column.
Update the "done_lexing" clause to set range 0
on the rich_location, rather than overwriting a location_t.
* c-common.h (c_cpp_error): Convert parameter from location_t to
rich_location *.  Eliminate the "column_override" parameter.

gcc/c/ChangeLog:
* c-decl.c (warn_defaults_to): Update for change in signature
of diagnostic_set_info.
* c-errors.c (pedwarn_c99): Likewise.
(pedwarn_c90): Likewise.
* c-objc-common.c (c_tree_printer): Update for new "caret_p" param
for textinfo::set_location.

gcc/cp/ChangeLog:
* error.c (cp_printer): Update for new "caret_p" param for
textinfo::set_location.
(pedwarn_cxx98): Update for change in signature of
diagnostic_set_info.

gcc/fortran/ChangeLog:
* cpp.c (cb_cpp_error): Convert parameter from location_t to
rich_location *.  Eliminate the "column_override" parameter.
* error.c (gfc_warning): Update for change in signature of
diagnostic_set_info.
(gfc_format_decoder): Update handling of %C/%L for changes
to struct text_info.
(gfc_diagnostic_starter): Use richloc when determining whether to
print one locus or two.  When handling a location that will
involve a call to diagnostic_show_locus, only attempt to print the
locus for the primary location, and don't call into
diagnostic_print_caret_line.
(gfc_warning_now_at): Update for change in signature of
diagnostic_set_info.
(gfc_warning_now): Likewise.
(gfc_error_now): Likewise.
(gfc_fatal_error): Likewise.
(gfc_error): Likewise.
(gfc_internal_error): Likewise.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-bw.c: New file.
* gcc.dg/plugin/diagnostic-test-show-locus-color.c: New file.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.
* lib/gcc-dg.exp: Load multiline.exp.

libcpp/ChangeLog:
* errors.c (cpp_diagnostic): Update for change in signature
of "error" callback.
(cpp_diagnostic_with_line): Likewise, calling override_column
on the rich_location.
* include/cpplib.h (struct cpp_callbacks): Within "error"
callback, convert param from source_location to rich_location *,
and drop column_override param.
* include/line-map.h (struct source_range): New struct.
(struct location_range): New struct.
(class rich_location): New class.
(linemap_client_expand_location_to_spelling_point): New declaration.
* line-map.c (rich_location::rich_location): New ctors.
(rich_location::lazily_expand_location): New method.
(rich_location::override_column): New method.
(rich_location::add_range): New methods.
(rich_location::set_range): New method.

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

8 years ago * testsuite/26_numerics/complex/requirements/constexpr.cc
jason [Fri, 6 Nov 2015 19:43:33 +0000 (19:43 +0000)]
* testsuite/26_numerics/complex/requirements/constexpr.cc
* testsuite/26_numerics/complex/requirements/constexpr_functions.cc:
Use constexpr where needed.

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

8 years ago libgo: Solaris portability fixes.
ian [Fri, 6 Nov 2015 19:15:45 +0000 (19:15 +0000)]
libgo: Solaris portability fixes.

    Only build net/hook_cloexec.go on GNU/Linux and FreeBSD, because those
    are the only systems with accept4.

    Add syscall/libcall_bsd.go to define sendfile for *BSD and Solaris.

    Revert tcpsockopt_solaris.go back to the earlier version, so that it
    works on Solaris 10.

    Always pass the address of a Pid_t value to TIOCGPGRP and TIOCSPGRP.

    Include <unistd.h> in runtime/go-varargs.c.

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

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

8 years ago[Patch AArch64] Switch constant pools to separate rodata sections.
ramana [Fri, 6 Nov 2015 19:00:59 +0000 (19:00 +0000)]
[Patch AArch64] Switch constant pools to separate rodata sections.

Properly apply ..

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

Properly apply.
2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
        * config/aarch64/aarch64.c
        (aarch64_can_use_per_function_literal_pools_p): New.
        (aarch64_use_blocks_for_constant_p): Adjust declaration
        and use aarch64_can_use_function_literal_pools_p.
        (aarch64_select_rtx_section): Update.

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

8 years agolibstdc++v3: Explicitly disable carets and colorization within testsuite
dmalcolm [Fri, 6 Nov 2015 18:44:05 +0000 (18:44 +0000)]
libstdc++v3: Explicitly disable carets and colorization within testsuite

libstdc++-v3/ChangeLog:
* testsuite/lib/libstdc++.exp (v3_target_compile): Add
-fno-diagnostics-show-caret -fdiagnostics-color=never to
option's additional_flags.

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

8 years ago[Patch ARM] Unified assembler in ARM state.
ramana [Fri, 6 Nov 2015 18:43:15 +0000 (18:43 +0000)]
[Patch ARM] Unified assembler in ARM state.

gcc/ChangeLog:

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
* config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
(arm_output_multireg_pop): Likewise.
(output_move_double):  Likewise.
(output_move_quad):  Likewise.
(output_return_instruction): Likewise.
(arm_print_operand): Remove support for %( and %. print modifiers.
(arm_output_shift): Make unified asm.
(arm_declare_function_name): Likewise.
* config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
         (ASM_APP_OFF): Adjust.
         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
         (ASM_OUTPUT_REG_POP): Likewise.
* config/arm/arm.md: Adjust uses of %., %(, %)
* config/arm/sync.md: Likewise.
* config/arm/thumb2.md: Likewise.
* config/arm/ldmstm.md: Regenerate.
* config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
* doc/invoke.texi (masm-unified-syntax): Update documentation.

gcc/testsuite/ChangeLog:

2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* gcc.target/arm/combine-movs.c:
* gcc.target/arm/interrupt-1.c:
* gcc.target/arm/interrupt-2.c:
* gcc.target/arm/unaligned-memcpy-4.c:

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

8 years agoAdd stats on adhoc table to dump_line_table_statistics
dmalcolm [Fri, 6 Nov 2015 18:40:56 +0000 (18:40 +0000)]
Add stats on adhoc table to dump_line_table_statistics

gcc/ChangeLog:
* input.c (dump_line_table_statistics): Dump stats on adhoc table.

libcpp/ChangeLog:
* include/line-map.h (struct linemap_stats): Add fields
"adhoc_table_size" and "adhoc_table_entries_used".
* line-map.c (linemap_get_statistics): Populate above fields.

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

8 years ago * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
hubicka [Fri, 6 Nov 2015 17:24:28 +0000 (17:24 +0000)]
* tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
add OEP_MATCH_SIDE_EFFECTS.
* fold-const.c (operand_equal_p): Update documentation; handle
OEP_MATCH_SIDE_EFFECTS.
* tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
OEP_MATCH_SIDE_EFFECTS.

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

8 years ago2015-11-06 Benedikt Huber <benedikt.huber@theobroma-systems.com>
ptomsich [Fri, 6 Nov 2015 17:10:17 +0000 (17:10 +0000)]
2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

* config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
* config/aarch64/aarch64-protos.h: Declare.
* config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
frsqrts.
* config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
* config/aarch64/aarch64.c: New functions. Emit rsqrt estimation code when
applicable.
* config/aarch64/aarch64.md: Added enum entries.
* config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
* testsuite/gcc.target/aarch64/rsqrt_asm_check_common.h: Common macros for
assembly checks.
* testsuite/gcc.target/aarch64/rsqrt_asm_check_negative_1.c: Make sure
frsqrts and frsqrte are not emitted.
* testsuite/gcc.target/aarch64/rsqrt_asm_check_1.c: Make sure frsqrts and
frsqrte are emitted.
* testsuite/gcc.target/aarch64/rsqrt_1.c: Functional tests for rsqrt.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229866 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoXFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk"
tschwinge [Fri, 6 Nov 2015 16:44:35 +0000 (16:44 +0000)]
XFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk"

gcc/testsuite/
* gfortran.dg/goacc/combined_loop.f90: XFAIL.

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

8 years ago Support non-type constrained-type-specifiers.
jason [Fri, 6 Nov 2015 16:21:29 +0000 (16:21 +0000)]
Support non-type constrained-type-specifiers.
* parser.c (check_type_concept): Remove.
(cp_parser_maybe_constrained_type_specifier): Don't call it.
(synthesize_implicit_template_parm): Handle non-type and template
template parameters.  Also compare extra args.  Return the decl.
(cp_parser_template_argument): Handle constrained-type-specifiers for
non-type template parameters.
(finish_constrained_template_template_parm): Split out from
cp_parser_constrained_template_template_parm.
(cp_parser_nonclass_name): Move some logic into
cp_parser_maybe_concept_name.
(cp_parser_init_declarator): Fix error recovery.
(get_concept_from_constraint): Remove.
(cp_parser_simple_type_specifier): Adjust for
synthesize_implicit_template_parm returning the decl.
* constraint.cc (placeholder_extract_concept_and_args)
(equivalent_placeholder_constraints): Also handle TYPE_DECL
constrained parms.

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

8 years ago PR ipa/68057
hubicka [Fri, 6 Nov 2015 16:04:38 +0000 (16:04 +0000)]
PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.
* g++.dg/lto/pr68057_0.C: New testcase.
* g++.dg/lto/pr68057_1.C: New testcase.
* g++.dg/torture/pr68220.C: New testcase.

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

8 years ago2015-11-06 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 6 Nov 2015 15:56:48 +0000 (15:56 +0000)]
2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vtbX.c: Fix typos
in comment.

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