Commit Graph

132539 Commits

Author SHA1 Message Date
Martin Liska
27732ffd58 Fix for tree-ssa-pre
* tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
	is set to preserve uninitialized value for vnresult.

From-SVN: r214873
2014-09-03 12:42:01 +00:00
Kaz Kojima
a0d3407e32 pr39228.c: Use dg-add-options instead of dg-options.
* gcc.c-torture/execute/pr39228.c: Use dg-add-options instead
	of dg-options.  Add "inline" keyword to test functions.

From-SVN: r214872
2014-09-03 12:27:52 +00:00
Marek Polacek
8d95fe25c5 re PR c/62024 (__atomic_always_lock_free is not a constant expression)
PR c/62024
	* c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
	conversions.

	* g++.dg/cpp0x/pr62024.C: New test.
	* gcc.dg/pr62024.c: New test.

From-SVN: r214871
2014-09-03 11:16:29 +00:00
Chung-Ju Wu
d40f3c4030 [NDS32] No need to take padding into consideration in Andes ABI2 because we can...
[NDS32] No need to take padding into consideration in Andes ABI2 because
        we can pass arguments in registers for variadic function.

  -- By default GCC uses must_pass_in_stack_var_size_or_pad for TARGET_MUST_PASS_IN_STACK.
     For Andes ABI2, the data layout in memory will be incorrect when calling variadic function
     under big-endian configuration.

	* config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
	for TARGET_MUST_PASS_IN_STACK.

From-SVN: r214869
2014-09-03 10:19:39 +00:00
Chung-Ju Wu
650fc46935 [NDS32] Provide TARGET_ARG_PARTIAL_BYTES so that we can have structure argument
partially in registers and stack.

  -- This is needed if we would like to pass variadic arguments via registers
     that are pused on the stack by callee.  So that va_arg() can access
     arguments continously in memory.

	* config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
	for TARGET_ARG_PARTIAL_BYTES.

From-SVN: r214868
2014-09-03 10:15:06 +00:00
Chung-Ju Wu
557430f169 [NDS32] Emit stack push instructions for varargs at prologue stage and emit...
[NDS32]  Emit stack push instructions for varargs at prologue stage and
         emit stack adjustment instructions for varargs at epilogue stage.

  -- Note that we do not need to handle it in v3push/v3pop prologue/epilogue
     expanding because we do not apply v3push/v3pop for variadic function.

	* config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
	instructions for varargs implementation.
	(nds32_expand_epilogue): Emit stack adjustment instructions for
	varargs implementation.

From-SVN: r214867
2014-09-03 10:09:14 +00:00
Chung-Ju Wu
99575d60c8 [NDS32] Since we are going to provide new heuristic for fp-as-gp optimization,
we better not to set cfun->machine->fp_as_gp_p at prologue expanding.

	* config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
	optimization detection.

From-SVN: r214866
2014-09-03 10:01:54 +00:00
Chung-Ju Wu
7f6cd86bef [NDS32] Deal with nameless arguments in nds32_function_arg and nds32_function_arg_advance.
1. We have caller prepare nameless arguments in the way of calling a normal function.

     e.g. Assume a function: void va_test (int n, ...);
          When calling "va_test (6, 11, 22, 33, 44, 55, 66);",
               r0    <- 6
               r1    <- 11
               r2    <- 22
               r3    <- 33
               r4    <- 44
               r5    <- 55
            [sp + 0] <- 66

  2. Note that we DO NOT handle it for TARGET_HARD_FLOAT case.
     The TARGET_HARD_FLOAT should push all the nameless arguments into
     stack and GCC is able to take care of them itself.
     In addition, we have not implemented hard float on trunk yet.

	* config/nds32/nds32.c (nds32_function_arg): Deal with nameless
	arguments.
	(nds32_function_arg_advance): Deal with nameless arguments.
	* config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
	(NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
	(NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.

From-SVN: r214865
2014-09-03 09:55:28 +00:00
Richard Biener
52e4630c51 tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
2014-09-03  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
	(struct bb_bitmap_sets): Remove deferred member.
	(BB_DEFERRED): Remove.
	(defer_or_phi_translate_block): Remove.
	(compute_antic_aux): Remove deferring of blocks, assert
	proper iteration order.
	(compute_antic): Do not set BB_DEFERRED.
	(eliminate): Allocate el_avail of proper size initially.

From-SVN: r214864
2014-09-03 09:50:24 +00:00
Chung-Ju Wu
4f44e960ea [NDS32] Since argument pointer must be 8-byte alignment...
[NDS32] Since argument pointer must be 8-byte alignment, our first parameter may
        require 4-byte offset if pushed varargs is not 8-byte aligned.

	* config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
	according to the value of crtl->args.pretend_args_size.

From-SVN: r214863
2014-09-03 09:44:49 +00:00
Chung-Ju Wu
35da54a608 [NDS32] Prepare necessary varargs information in compute_stack_frame().
* config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
	varargs information.

From-SVN: r214862
2014-09-03 09:37:36 +00:00
Chung-Ju Wu
d4a6a4d9a0 [NDS32] Implement TARGET_SETUP_INCOMING_VARARGS target hook.
* config/nds32/nds32.c (nds32_setup_incoming_varargs): New
	implementation for TARGET_SETUP_INCOMING_VARARGS.
	(nds32_strict_argument_naming): Refine comment.
	* config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
	Define for future implementation.

From-SVN: r214861
2014-09-03 09:32:08 +00:00
Ilya Tocar
9c6fb3ba59 adxintrin.h (_subborrow_u32): New.
gcc/
2014-09-02  Ilya Tocar  <ilya.tocar@intel.com>

        * config/i386/adxintrin.h (_subborrow_u32): New.
        (_addcarry_u32): Ditto.
        (_subborrow_u64): Ditto.
        (_addcarry_u64): Ditto.
        * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
        IX86_BUILTIN_SBB64.
        (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
        __builtin_ia32_sbb_u64


testsuite/
2014-09-02  Ilya Tocar  <ilya.tocar@intel.com>

        * gcc.target/i386/adx-addcarryx32-1.c: Test addcarry, subborrow.
        * gcc.target/i386/adx-addcarryx32-2.c: Ditto.
        * gcc.target/i386/adx-addcarryx32-3.c: Ditto.
        * gcc.target/i386/adx-addcarryx64-1.c: Ditto.
        * gcc.target/i386/adx-addcarryx64-2.c: Ditto.
        * gcc.target/i386/adx-addcarryx64-3.c: Ditto.

From-SVN: r214860
2014-09-03 13:24:34 +04:00
Chung-Ju Wu
9d93cc2467 [NDS32] Define and rename some GPR-specific stuff.
* config/nds32/nds32.c (nds32_function_arg): Define and rename some
	GPR-specific stuff.
	(nds32_function_arg_advance): Likewise.
	(nds32_init_cumulative_args): Likewise.
	* config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
	(NDS32_FIRST_GPR_REGNUM): Define.
	(NDS32_LAST_GPR_REGNUM): Define.
	(NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
	(NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
	(FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
	(machine_function): Use GRP-specific stuff.

From-SVN: r214859
2014-09-03 09:16:51 +00:00
Chung-Ju Wu
38a0632eb7 [NDS32] Remove unused variables.
* config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
	(nds32_expand_epilogue): Likewise.
	(nds32_expand_prologue_v3push): Likewise.
	(nds32_expand_epilogue_v3pop): Likewise.

From-SVN: r214858
2014-09-03 09:09:56 +00:00
Chung-Ju Wu
2da1e7c022 [NDS32] We need to make sure it is NOT a variadic function so that some v3push/v3pop preparation can be applied.
-- The rationale of such avoidance is that the 'pop25' instruction also
     contains return behavior and we have no chance to further adjust stack
     pointer before returning to caller, which is very important to
     variadic function.
  -- So we do not setup v3push/v3pop (push25/pop25) information for a
     variadic function.  It will use normal stack push/pop instead.

	* config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
	v3push/v3pop for variadic function.
	* config/nds32/nds32.md (prologue, epilogue): Likewise.

From-SVN: r214857
2014-09-03 09:04:46 +00:00
Chung-Ju Wu
6f3d3f9c7c [NDS32] Consider varargs situation when creating stack operation assembly code.
-- In fact, we only need to take care of 'push.s' situation,
     because we have to push all the nameless arguments into stack.
  -- We do not have to use 'pop.s' to restore them back to registers,
     because we can just adjust stack pointer to set frame location.
     This operation should be done in epilogue expanding.
  -- Because 'pop25' instruction also performs return operation, we will
     not use v3push/v3pop on isr and vararg functions.
     Therefore, their instruction length should be 4 bytes.

	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
	Check rtx for varargs implementation.
	(nds32_output_stack_pop): Likewise.
	* config/nds32/nds32-protos.h: Have a rtx argument for
	nds32_output_stack_push and nds32_output_stack_pop.
	* config/nds32/nds32.md: Likewise.

From-SVN: r214856
2014-09-03 08:57:02 +00:00
Chung-Ju Wu
126b11c692 [NDS32] Add a function to indentify if FUNC is an interrupt service routine.
* config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
	to check if FUNC is an interrupt service routine.
	* config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.

From-SVN: r214855
2014-09-03 08:50:14 +00:00
Chung-Ju Wu
dd1536a726 [NDS32] Preparation in nds32.h of using registers to save varargs.
-- The varargs area may also need padding bytes so that we can ensure
     that argument pointer is 8-byte alignment.

	* config/nds32/nds32.h (machine_function): Add some fields for variadic
	arguments implementation.

From-SVN: r214854
2014-09-03 08:40:40 +00:00
Chung-Ju Wu
1509ec034c [NDS32] In nds32_valid_stack_push_pop_p(), we look into OP rtx to see if we indeed save $fp/$gp/$lp registers.
* config/nds32/nds32-predicates.c
	(nds32_valid_stack_push_pop): Rename to ...
	(nds32_valid_stack_push_pop_p): ... this.
	* config/nds32/nds32-protos.h: Likewise.
	* config/nds32/predicates.md: Likewise.

From-SVN: r214853
2014-09-03 08:28:02 +00:00
Chung-Ju Wu
88437f39a8 [NDS32] Refine the implementation and consider CFA restore information for stack v3push/v3pop.
* config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
	(nds32_emit_stack_v3push): ... this.
	(nds32_gen_stack_v3pop): Rename to ...
	(nds32_emit_stack_v3pop): ... this and consider CFA restore
	information.

From-SVN: r214852
2014-09-03 08:20:49 +00:00
Chung-Ju Wu
4e9a2848eb [NDS32] Refine the implementation and consider CFA restore information for stack push/pop multiple.
* config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
	(nds32_emit_stack_push_multiple): ... this.
	(nds32_gen_stack_pop_multiple): Rename to ...
	(nds32_emit_stack_pop_multiple): ... this and consider CFA restore
	information.

From-SVN: r214851
2014-09-03 08:17:00 +00:00
Andreas Krebbel
b7d19263fe re PR bootstrap/61078 (ESA mode bootstrap failure since r209897)
2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/61078
	* config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
	and add a second splitter to handle the remaining cases.

2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/61078
	* gcc.target/s390/pr61078.c: New testcase.

From-SVN: r214850
2014-09-03 08:06:09 +00:00
Chung-Ju Wu
64a08b7f98 [NDS32] Define PIC_OFFSET_TABLE_REGNUM to $gp register.
* config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.

From-SVN: r214849
2014-09-03 08:02:37 +00:00
Uros Bizjak
7d4cef2d37 20111227-2.c: Compile only for x86 targets.
* gcc.dg/20111227-2.c: Compile only for x86 targets.
	* gcc.dg/20111227-3.c: Ditto.

From-SVN: r214848
2014-09-03 09:58:17 +02:00
Max Ostapenko
869b69b4e9 gcc-dg.exp (set-target-env-var): Change env to ::env.
gcc/testsuite/ChangeLog:

2014-09-03  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* lib/gcc-dg.exp (set-target-env-var): Change env to ::env.

From-SVN: r214846
2014-09-03 10:16:30 +03:00
Tobias Burnus
19c41621fe Missed that file in r213079 of 2014-07-26
2014-09-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/61881
        PR fortran/61888
        PR fortran/57305
        * gfortran.dg/sizeof_4.f90: New.

From-SVN: r214843
2014-09-03 08:41:37 +02:00
Trevor Saunders
134aa83c6f use rtx_code_label in lab_rtx_for_bb hash map
gcc/ChangeLog:

	* cfgexpand.c (label_rtx_for_bb): Change type to
	hash_map<basic_block, rtx_code_label *> *.
	(expand_gimple_basic_block): Adjust.
	(pass_expand::execute): Likewise.

From-SVN: r214842
2014-09-03 00:53:29 +00:00
Trevor Saunders
19f8b22971 use rtx_code_label more
gcc/

	* asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
	config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
	config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
	config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
	config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
	config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
	stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
	of rtx.

From-SVN: r214841
2014-09-03 00:52:11 +00:00
Nathan Sidwell
b20ee094df libgcov-interface.c (STRONG_ALIAS): New.
* libgcov-interface.c (STRONG_ALIAS): New.
	(__gcov_flush): Call __gcov_reset_int.
	(__gcov_reset): Strong alias for ...
	(__gcov_reset_ing): ... this renamed hidden version.
	* libgcov.h (__gcov_reset_int): New declaration.

From-SVN: r214840
2014-09-03 00:43:00 +00:00
GCC Administrator
4293bc0c2a Daily bump.
From-SVN: r214839
2014-09-03 00:16:57 +00:00
Trevor Saunders
b086d5308d support ggc hash_map and hash_set
gcc/ChangeLog:

	* alloc-pool.c: Include coretypes.h.
	* cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
	function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
	hash_set instead of htab.
	* ggc-page.c (in_gc): New variable.
	(ggc_free): Do nothing if a collection is taking place.
	(ggc_collect): Set in_gc appropriately.
	* ggc.h (gt_ggc_mx(const char *)): New function.
	(gt_pch_nx(const char *)): Likewise.
	(gt_ggc_mx(int)): Likewise.
	(gt_pch_nx(int)): Likewise.
	* hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
	(hash_map::hash_entry::pch_nx): Likewise.
	(hash_map::hash_entry::pch_nx_helper): Likewise.
(hash_map::hash_map): Adjust.
(hash_map::create_ggc): New function.
(gt_ggc_mx): Likewise.
(gt_pch_nx): Likewise.
	* hash-set.h (default_hashset_traits::ggc_mx): Likewise.
(default_hashset_traits::pch_nx): Likewise.
(hash_set::hash_entry::ggc_mx): Likewise.
(hash_set::hash_entry::pch_nx): Likewise.
(hash_set::hash_entry::pch_nx_helper): Likewise.
(hash_set::hash_set): Adjust.
(hash_set::create_ggc): New function.
(hash_set::elements): Likewise.
(gt_ggc_mx): Likewise.
(gt_pch_nx): Likewise.
	* hash-table.h (hash_table::hash_table): Adjust.
(hash_table::m_ggc): New member.
	(hash_table::~hash_table): Adjust.
	(hash_table::expand): Likewise.
	(hash_table::empty): Likewise.
(gt_ggc_mx): New function.
	(hashtab_entry_note_pointers): Likewise.
(gt_pch_nx): Likewise.

From-SVN: r214834
2014-09-02 22:46:00 +00:00
Bill Schmidt
70f0f8b2b1 rs6000-builtin.def (XVCVSXDDP_SCALE): New built-in definition.
[gcc]

2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
	built-in definition.
	(XVCVUXDDP_SCALE): Likewise.
	(XVCVDPSXDS_SCALE): Likewise.
	(XVCVDPUXDS_SCALE): Likewise.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
	entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
	VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
	VSX_BUILTIN_XVCVDPUXDS_SCALE.
	* config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
	prototype.
	* config/rs6000/rs6000.c (real.h): New include.
	(rs6000_scale_v2df): New function.
	* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
	(UNSPEC_VSX_XVCVUXDDP): Likewise.
	(UNSPEC_VSX_XVCVDPSXDS): Likewise.
	(UNSPEC_VSX_XVCVDPUXDS): Likewise.
	(vsx_xvcvsxddp_scale): New define_expand.
	(vsx_xvcvsxddp): New define_insn.
	(vsx_xvcvuxddp_scale): New define_expand.
	(vsx_xvcvuxddp): New define_insn.
	(vsx_xvcvdpsxds_scale): New define_expand.
	(vsx_xvcvdpsxds): New define_insn.
	(vsx_xvcvdpuxds_scale): New define_expand.
	(vsx_xvcvdpuxds): New define_insn.
	* doc/extend.texi (vec_ctf): Add new prototypes.
	(vec_cts): Likewise.
	(vec_ctu): Likewise.
	(vec_splat): Likewise.
	(vec_div): Likewise.
	(vec_mul): Likewise.

[gcc/testsuite]

2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/builtins-1.c: Add tests for vec_ctf,
	vec_cts, and vec_ctu.
	* gcc.target/powerpc/builtins-2.c: Likewise.

From-SVN: r214831
2014-09-02 19:31:47 +00:00
Hans-Peter Nilsson
bb42f96863 badalloc1.C (arena_size): Scale according to target pointer size.
* g++.old-deja/g++.eh/badalloc1.C [!STACK_SIZE && !__FreeBSD__]
	[!__sun__ && !__hpux__] (arena_size): Scale according to
	target pointer size.

From-SVN: r214828
2014-09-02 17:00:28 +00:00
Marek Polacek
86eb9e2fbe re PR fortran/62270 (-Wlogical-not-parentheses warnings)
PR fortran/62270
	* interface.c (compare_parameter): Fix condition.
	* trans-expr.c (gfc_conv_procedure_call): Likewise.

	* gfortran.dg/pointer_intent_7.f90: Adjust dg-error.

From-SVN: r214827
2014-09-02 16:08:05 +00:00
Kyrylo Tkachov
e9e67af148 [2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions.
PR target/62275
	* config/arm/neon.md
	(neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
	<v_cmp_result>): New pattern.
	* config/arm/iterators.md (NEON_VCVT): New int iterator.
	* config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
	vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
	vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
	* config/arm/arm.c (arm_builtin_vectorized_function): Handle
	BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.

	PR target/62275
	* gcc.target/arm/vect-lceilf_1.c: New test.
	* gcc.target/arm/vect-lfloorf_1.c: Likewise.
	* gcc.target/arm/vect-lroundf_1.c: Likewise.

From-SVN: r214826
2014-09-02 16:00:01 +00:00
Kyrylo Tkachov
ababd93626 [ARM][1/2] Implement lceil, lfloor, lround optabs with new ARMv8-A instructions.
PR target/62275
      * config/arm/iterators.md (FIXUORS): New code iterator.
      (VCVT): New int iterator.
      (su_optab): New code attribute.
      (su): Likewise.
      * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.

      PR target/62275
      * gcc.target/arm/lceil-vcvt_1.c: New test.
      * gcc.target/arm/lfloor-vcvt_1.c: Likewise.
      * gcc.target/arm/lround-vcvt_1.c: Likewise.

From-SVN: r214825
2014-09-02 15:57:56 +00:00
Kyrylo Tkachov
cd5660ab12 [AArch64] Use CC_Z and CC_NZ with csinc and similar instructions.
* config/aarch64/predicates.md (aarch64_comparison_operation):
	New special predicate.
	* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
	aarch64_comparison_operation instead of matching an operator.
	Update operand numbers.
	(csinc3<mode>_insn): Likewise.
	(*csinv3<mode>_insn): Likewise.
	(*csneg3<mode>_insn): Likewise.
	(ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
	* config/aarch64/aarch64.c (aarch64_get_condition_code):
	Return -1 instead of aborting on invalid condition codes.
	(aarch64_print_operand): Update aarch64_get_condition_code callsites
	to assert that the returned condition code is valid.
	* config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.

From-SVN: r214824
2014-09-02 15:53:08 +00:00
Paolo Carlini
cec362c90b DR 1453
/cp
2014-09-02  Paolo Carlini  <paolo.carlini@oracle.com>

	DR 1453
	* class.c (check_field_decls): A class of literal type cannot have
	volatile non-static data members and base classes.
	(explain_non_literal_class): Update.

/testsuite
2014-09-02  Paolo Carlini  <paolo.carlini@oracle.com>

	DR 1453
	* g++.dg/cpp0x/constexpr-volatile.C: New.
	* g++.dg/ext/is_literal_type2.C: Likewise.

From-SVN: r214823
2014-09-02 15:38:38 +00:00
Aldy Hernandez
4e2b2eeec9 Makefile.in (TAGS): Handle constructs in common.opt, rtl.def, tree.def, and gimple.def
* Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
	tree.def, and gimple.def

From-SVN: r214822
2014-09-02 15:09:54 +00:00
Jakub Jelinek
9a771876d3 cilk-builtins.def (__cilkrts_cilk_for_32): New.
gcc/
	* cilk-builtins.def (__cilkrts_cilk_for_32): New.
	(__cilkrts_cilk_for_64): Likewise.
	* cilk-common.c (declare_cilk_for_builtin): New function.
	(cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
	__cilkrts_cilk_for_64 bultins.
	* cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
	CILK_TI_F_LOOP_64.
	(cilk_for_32_fndecl): New define.
	(cilk_for_64_fndecl): Likewise.
	* gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
	GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
	* gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
	GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
	GF_OMP_FOR_COMBINED_INTO.
	* gimplify.c (gimplify_scan_omp_clauses): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ case.
	(gimplify_adjust_omp_clauses): Ditto.
	(gimplify_omp_for): Added CILK_FOR case.
	(gimplify_expr): Ditto.
	* omp-low.c: Include cilk.h.
	(extract_omp_for_data): Set appropriate kind for
	GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
	(scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
	(create_omp_child_function_name): Added second argument to handle
	cilk_for case.
	(cilk_for_check_loop_diff_type): New function.
	(expand_cilk_for_call): Likewise.
	(expand_cilk_for): Likewise.
	(create_omp_child_function): Set cilk_for_count; handle the cases when
	it is true; call create_omp_child_function_name with second argument.
	(expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
	(expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
	* tree-nested.c (convert_nonlocal_omp_clauses): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ case.
	(convert_local_omp_clauses): Ditto.
	* tree-pretty-print.c (dump_omp_clause): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
	(dump_generic_node): Added CILK_FOR case.
	* tree.c (omp_clause_num_ops): New element
	OMP_CLAUSE__CILK_FOR_COUNT_ (1).
	(omp_clause_code_name): New element _Cilk_for_count_.
	(walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
	* tree.def: Add tree code for CILK_FOR.

gcc/c/
	* c-parser.c (c_parser_cilk_for): New function.
	(c_parser_cilk_grainsize): Likewise.
	(c_get_temp_regvar): Likewise.
	(c_parser_statement_after_labels): Added RID_CILK_FOR case.
	(c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
	(c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
	* c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
	case.

gcc/cp/
	* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
	simplified.
	* parser.c (cp_parser_cilk_for): New function.
	(cp_parser_cilk_grainsize): Likewise.
	(cp_parser_statement): Added RID_CILK_FOR case.
	(cp_parser_omp_for_cond): Added CILK_FOR check.
	(cp_parser_omp_for_loop_init): Change function argument to accept
	tree_code instead just a bool flag; change the check to use that
	tree_code; check for initialization declaration in case of Cilk_for.
	(cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
	changed call to cp_parser_omp_for_loop_init according new arguments'
	list.
	(cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
	* pt.c (tsubst_expr): Added CILK_FOR case.
	* semantics.c: Include convert.h.
	(finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
	case; added OMP_CLAUSE__CILK_FOR_COUNT_.
	(handle_omp_for_class_iterator): New argument lastp and its usage;
	added NE_EXPR case.
	(finish_omp_for): Changed call to handle_omp_for_class_iterator
	according new arguments' list; in case of Cilk_for save very first
	decl and create empty stmt_list block; use block to build correct
	statement tree.

gcc/c-family/
	* c-cilkplus.c (cilk_for_number_of_iterations): New function.
	* c-common.c (c_common_reswords): Added _Cilk_for.
	* c-common.h (enum rid): Added RID_CILK_FOR.
	(cilk_for_number_of_iterations): Add declaration.
	* c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
	CILK_FOR.
	* c-pragma.c (init_pragma): Register "grainsize" pragma.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.

gcc/testsuite/
	* c-c++-common/cilk-plus/CK/cilk-fors.c: New test.
	* c-c++-common/cilk-plus/CK/cilk-for-2.c: New test.
	* c-c++-common/cilk-plus/CK/cilk-for-3.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_errors.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: New test.
	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: New test.
	* g++.dg/cilk-plus/CK/cf3.cc: New test.
	* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: New test.
	* g++.dg/cilk-plus/CK/for1.cc: New test.
	* g++.dg/cilk-plus/CK/stl_iter.cc: New test.
	* g++.dg/cilk-plus/CK/stl_rev_iter.cc: New test.
	* g++.dg/cilk-plus/CK/stl_test.cc: New test.

Co-Authored-By: Balaji V. Iyer <balaji.v.iyer@intel.com>
Co-Authored-By: Igor Zamyatin <igor.zamyatin@intel.com>

From-SVN: r214818
2014-09-02 12:52:29 +00:00
Segher Boessenkool
794307309b 40x.md (ppc403-integer): Move "exts" to "no dot".
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
	(ppc403-compare): Add "exts with dot" case.
	* config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
	* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
	* config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
	* config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
	* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
	* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
	* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
	* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
	cell-cmp-microcoded): Similarly.
	* config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
	* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
	* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
	* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
	* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
	* config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
	* config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
	* config/rs6000/power6.md (power6-exts): Add "no dot" condition.
	(power6-compare): Add "exts with dot" case.
	* config/rs6000/power7.md (power7-integer, power7-compare): As before.
	* config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
	* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.

	* config/rs6000/predicates.md (lwa_operand): Don't allow memory
	if avoiding Cell microcode.
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
	(is_cracked_insn): Ditto.
	(insn_must_be_first_in_group): Ditto.
	* config/rs6000/rs6000.md (dot): Adjust comment.
	(cell_micro): Handle exts+dot.
	(extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
	*extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
	extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
	(extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
	extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
	*extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
	*extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.

From-SVN: r214816
2014-09-02 13:26:20 +02:00
Segher Boessenkool
3cbab4af80 rs6000.md (QHSI): Delete.
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (QHSI): Delete.
	(EXTQI, EXTHI, EXTSI): New mode iterators.
	(zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
	*zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
	*zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
	9 anonymous instructions, and 8 splitters): Delete.
	(zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
	*zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
	*zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
	zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
	*zero_extendsi<mode>2_dot2): New.

From-SVN: r214815
2014-09-02 13:23:20 +02:00
Segher Boessenkool
eb8fb2ca61 rs6000.md (any_extend): New code iterator.
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (any_extend): New code iterator.
	(u, su): New code attributes.
	(dmode, DMODE): New mode attributes.
	(<su>mul<mode>3_highpart): New.
	(*<su>mul<mode>3_highpart): New.
	(<su>mulsi3_highpart_le): New.
	(<su>muldi3_highpart_le): New.
	(<su>mulsi3_highpart_64): New.
	(<u>mul<mode><dmode>3): New.
	(mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
	splitters): Delete.
	(mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
	splitters): Delete.

From-SVN: r214814
2014-09-02 13:21:09 +02:00
Segher Boessenkool
040a2b4319 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
	*mulsi3_internal2, and two splitters): Delete.
	(muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
	Delete.
	(mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.

From-SVN: r214813
2014-09-02 13:19:44 +02:00
Richard Biener
3f734f66fb re PR middle-end/62695 (internal compiler error: in get_constraint_for_component_ref, at tree-ssa-structalias.c:3189)
2014-09-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62695
	* tree-ssa-structalias.c (find_func_clobbers): Add missing
	vector truncate.

	* gfortran.dg/pr62695.f90: New testcase.

From-SVN: r214810
2014-09-02 08:22:33 +00:00
GCC Administrator
c0e3b4d464 Daily bump.
From-SVN: r214808
2014-09-02 00:17:06 +00:00
Oleg Endo
e3d59c5e73 re PR target/62312 ([SH] Invalid operands for opcode div0s)
gcc/
	PR target/62312
	* config/sh/sh.md (*cmp_div0s_0): Add missing constraints.

gcc/testsuite/
	PR target/62312
	* gcc.c-torture/compile/pr62312.c: New.

From-SVN: r214804
2014-09-01 22:25:09 +00:00
Andi Kleen
e04733ee53 Support slim LTO bootstrap
Change the bootstrap-lto config file to use slim (non fat) LTO..
Speeds up the LTO bootstrap by ~18% on a 4 core system.

This requires using gcc-ar/ranlib in post stage 1 builds, so these
are passed to all sub builds.

config/:

2014-09-01  Andi Kleen  <ak@linux.intel.com>

	* bootstrap-lto.mk: Implement slim bootstrap.

/:
2014-09-01  Andi Kleen  <ak@linux.intel.com>

	* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add LTO_EXPORTS.
	POSTSTAGE1_FLAGS_TO_PASS):  Add LTO_FLAGS_TO_PASS.
	* Makefile.in: Regenerate.

From-SVN: r214801
2014-09-01 16:41:28 +00:00
Andi Kleen
b5617e5f69 Add -B support to gcc-ar/ranlib/nm
To use gcc-{ar,ranlib} for boot strap we need to add a -B option
to the tool. Since ar has weird and unusual argument conventions
implement the code by hand instead of using any libraries.

gcc/:

2014-09-01  Andi Kleen  <ak@linux.intel.com>

	* file-find.c (add_prefix_begin): Add.
	(do_add_prefix): Rename from add_prefix with first argument.
	(add_prefix): Add new wrapper.
	* file-find.h (add_prefix_begin): Add.
	* gcc-ar.c (main): Support -B option.

From-SVN: r214800
2014-09-01 16:41:17 +00:00