1. 15 Jul, 2015 11 commits
  2. 14 Jul, 2015 29 commits
    • constraints.md (U, v): New constraints. · 524d2e49
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/constraints.md (U, v): New constraints.
      	* config/nios2/predicates.md (rdprs_dcache_operand): New.
      	(ldstex_memory_operand): New.
      	* config/nios2/sync.md: New file.
      	* config/nios2/nios2.md (unspecv): Add new builtin function
      	UNSPECV codes.
      	(rdprs, flushd, flushda, wrpie, eni): New patterns.
      	(top-level): Include sync.md.
      	* config/nios2/nios2.c (N2_FTYPES): Add function types for
      	new builtins.
      	(N2_BUILTINS): Add arch field setting, add new builtins.
      	(enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
      	for arch field.
      	(nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
      	Also handle ldex/stex/ldsex/stsex builtins.
      	(nios2_expand_rdprs_builtin): New function.
      	(nios2_expand_cache_builtin): New function.
      	(nios2_expand_wrpie_builtin): New function.
      	(nios2_expand_eni_builtin): New function.
      	(nios2_expand_builtin): Add arch field handling and new builtin 
              cases.
      	* doc/extend.texi (Altera Nios II Built-in Functions): Document
      	new builtins.
      	* doc/md.texi (Machine Constraints): Document U and v constraints.
      
      	gcc/testsuite/
      	* gcc.target/nios2/nios2-flushd.c: New.
      	* gcc.target/nios2/nios2-rdprs.c: New.
      	* gcc.target/nios2/r2-atomic.c: New.
      	* gcc.target/nios2/r2-eni.c: New.
      	* gcc.target/nios2/r2-wrpie.c: New.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225800
      Sandra Loosemore committed
    • nios2-protos.h (nios2_expand_return): Declare. · c3ff2812
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2-protos.h (nios2_expand_return): Declare.
      	* config/nios2/nios2.c (struct GTY (()) machine_function): Add
      	callee_save_reg_size and uses_anonymous_args fields.
      	(nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
      	(nios2_create_cfa_notes): New function.
      	(nios2_adjust_stack): New function for adjusting stack.
      	(nios2_expand_prologue): Update for CDX push.n/pop.n usage.
      	Use nios2_adjust_stack.
      	(nios2_expand_epilogue): Likewise.
      	(nios2_expand_return): New function.
      	(nios2_can_use_return_insn): Update for CDX pop.n usage.
      	(nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
      	If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
      	* config/nios2/nios2.md (return): Use nios2_expand_return.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225799
      Sandra Loosemore committed
    • predicates.md (pop_operation): New. · aa32db37
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/predicates.md (pop_operation): New.
      	(ldwm_operation, stwm_operation): New.
      	(nios2_hard_register_operand): New.
      	* config/nios2/nios2-protos.h (pop_operation_p): Declare.
      	(ldstwm_operation_p): Declare.
      	(gen_ldstwm_peep): Declare.
      	* config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
      	(base_reg_adjustment_p): New.
      	(pop_operation_p): New.
      	(CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
      	(nios2_ldstwm_regset_p): New.
      	(ldstwm_operation_p): New.
      	(gen_ldst): New.
      	(nios2_ldst_parallel): New.
      	(struct ldswm_operand): Declare.
      	(compare_ldstwm_operands): New.
      	(can_use_cdx_ldstw): New.
      	(gen_ldstwm_peep): New.
      	* config/nios2/nios2-ldstwm.sml: New.
      	* config/nios2/nios2.md: Include ldstwm.md.
      	* config/nios2/ldstwm.md: Generated.
      
      	gcc/testsuite/
      	* gcc.target/nios2/cdx-ldstwm-1.c: New.
      	* gcc.target/nios2/cdx-ldstwm-2.c: New.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225798
      Sandra Loosemore committed
    • nios2.h (LABEL_ALIGN): Define. · 3bbbe009
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.h (LABEL_ALIGN): Define.
      	(REG_ALLOC_ORDER): Define.
      	(ADJUST_REG_ALLOC_ORDER): Define.
      	(HONOR_REG_ALLOC_ORDER): Define.
      	(CDX_REG_P): Define.
      	(ANDCLEAR_INT): Define.
      	* config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
      	(nios2_label_align): Declare.
      	(nios2_cdx_narrow_form_p): Declare.
      	(nios2_adjust_reg_alloc_order): Declare.
      	* config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
      	operation.
      	(nios2_large_unspec_reloc_p): New function, split from...
      	(nios2_legitimate_pic_operand_p): ...here.
      	(nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
      	(nios2_print_operand_punct_valid_p): New.
      	(nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
      	(split_mem_address): New.
      	(split_alu_insn): New.
      	(cdxreg): New.
      	(cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
      	(enum nios2_add_insn_kind): New.
      	(nios2_add_insn_names, nios2_add_insn_narrow): New.
      	(nios2_add_insn_classify): New.
      	(nios2_add_insn_asm): New.
      	(nios2_cdx_narrow_form_p): New.
      	(label_align, min_labelno, max_labelno): New.
      	(nios2_reorg): New.
      	(nios2_label_align): New.
      	(nios2_adjust_reg_alloc_order): New.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
      	(TARGET_MACHINE_DEPENDENT_REORG): Define.
      	* config/nios2/constraints.md (P): New constraint.
      	* config/nios2/predicates.md (const_and_operand): New.
      	(and_operand): New.
      	(stack_memory_operand): New.
      	* config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
      	(length): Update to use nios2_cdx_narrow_form_p().
      	(type): Add new insn type values.
      	(control, alu, st, ld, shift): Update insn reservations with
      	new insn type values.
      	(*high, *lo_sum): Define new insn patterns for constant generation.
      	(movqi_internal, movhi_internal, movsi_internal): Reduce
      	alternatives, update asm template to handle CDX variants, update
      	type attributes.
      	(zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
      	template, update type attributes.
      	(extendhisi2, extendqi<mode>2): Likewise.
      	(addsi3): Change to use function for asm string.
      	(subsi3): Add CDX notation to asm template, update type attributes.
      	(negsi3, one_cmplsi3): Likewise.
      	(andsi3): New pattern, specialized from logical patterns.
      	(<code>si3): Remove and case, combine alternatives, update asm
      	template.
      	(<shift_op>si3): Add CDX notation, update type attributes.
      	(rotrsi3): Update type attribute.
      	(*merge, extzv, insv): New insn patterns.
      	(return): Change to define_expand.
      	(simple_return): Add CDX notation, update type attributes.
      	(indirect_jump): Add CDX notation.
      	(jump): Update asm cases, update length attribute expression.
      	(*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
      	(nios2_cbranch): Update asm cases and length attribute expression
      	to handle CDX variants.
      	(nios2_cmp<code>): Update asm template.
      	(nop): Add CDX notation, update type attributes.
      	(trap): Add CDX notation.
      	(ctrapsi4): Update asm cases and length attribute expression to
      	handle CDX variant.
      	* doc/md.texi (Machine Constraints): Document P constraint.
      
      	gcc/testsuite/
      	* gcc.target/nios2/andci.c: New.
      	* gcc.target/nios2/bmx.c: New.
      	* gcc.target/nios2/cdx-add.c: New.
      	* gcc.target/nios2/cdx-branch.c: New.
      	* gcc.target/nios2/cdx-callret.c: New.
      	* gcc.target/nios2/cdx-loadstore.c: New.
      	* gcc.target/nios2/cdx-logical.c: New.
      	* gcc.target/nios2/cdx-mov.c: New.
      	* gcc.target/nios2/cdx-shift.c: New.
      	* gcc.target/nios2/cdx-sub.c: New.
      	* gcc.target/nios2/nios2-trap-insn.c: Adjust pattern.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225796
      Sandra Loosemore committed
    • tramp.c (MOVHI, ORI, JMP): Conditionalize for __nios2_arch__ level. · a03c6ae3
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	libgcc/
      	* config/nios2/tramp.c (MOVHI, ORI, JMP): Conditionalize
      	for __nios2_arch__ level.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225794
      Sandra Loosemore committed
    • re PR c++/65071 (ICE on valid, sizeof...() of template template parameter pack in return type) · 973590f3
      /cp
      2015-07-14  Andrea Azzarone  <azzaronea@gmail.com>
      
      	PR c++/65071
      	* parser.c (cp_parser_sizeof_pack): Also consider template template
      	parameters.
      
      /testsuite
      2015-07-14  Andrea Azzarone  <azzaronea@gmail.com>
      
      	PR c++/65071
      	* g++.dg/cpp0x/vt-65071.C: New.
      
      From-SVN: r225793
      Andrea Azzarone committed
    • nios2.h (SMALL_INT12): New macro. · 42e6ab74
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.h (SMALL_INT12): New macro.
      	* config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
      	(nios2_valid_addr_expr_p): Use it.
      	(nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
      	with implicit "io" instructions on R2.
      	* config/nios2/constraints.md (w): New constraint.
      	* config/nios2/predicates.md (ldstio_memory_operand): New.
      	* config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
      	operand predicate and constraint.
      	(ld<bh>io_signed, st<bhw>io>): Likewise.
      	* doc/md.texi (Machine Constraints): Document w constraint.
      
      	gcc/testsuite/
      	* gcc.target/nios2/r2-io-range.c: New.
      	* gcc.target/nios2/r2-stio-1.c: New.
      	* gcc.target/nios2/r2-stio-2.c: New.
      	* gcc.target/nios2/nios2-ldxio.c: New.
      	* gcc.target/nios2/nios2-stxio.c: Change to assemble test instead
      	of just compile.  Add more tests.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225792
      Sandra Loosemore committed
    • nios2.opt (march, mbmx, mcdx): New options. · 77c50d73
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.opt (march, mbmx, mcdx): New options.
      	* config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
      	Nios II architecture level.
      	* config/nios2/nios2.h (TARGET_ARCH_R2): New define.
      	(TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
      	(OPTION_DEFAULT_SPECS): Define.
      	(ASM_SPEC): Add -march= spec strings.
      	* config/nios2/nios2.c (nios2_option_override): Check for
      	conflicts involving new options.
      	* config.gcc (nios2*-*-*): Support --with-arch=.
      	* doc/invoke.texi (Option Summary, Nios II Options): Document
      	-march=, -mbmx,	and -mcdx.
      
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225791
      Sandra Loosemore committed
    • simplify.c (gfc_simplify_floor): Set precision of temporary to that of arg. · ff7097f2
      2015-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* simplify.c (gfc_simplify_floor): Set precision of temporary to
      	that of arg.
      
      2015-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	gfortran.dg/pr66864.f90: New test.
      
      From-SVN: r225790
      Steven G. Kargl committed
    • re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c… · 6e5ad0f9
      re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c segfaults w/ -mregparm=3 or -miamcu)
      
      2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/66626
      	* lra-constraints.c (lra_constraints): Prevent equivalence
      	substitution for static chain pseudo in functions with nonlocal
      	goto.
      
      2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/66626
      	* gcc.target/i386/pr66626.c: New.
      
      From-SVN: r225789
      Vladimir Makarov committed
    • PR 66861 Fix null pointer crash on mingw. · 5fd6ec3e
      2015-07-14  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/66861
      	* io/unix.c (compare_file_filename): Verify that u->filename is
      	non-NULL before strcmp.
      	(find_file0): Likewise.
      
      From-SVN: r225788
      Janne Blomqvist committed
    • nios2.c (TEMP_REG_NUM): Move define up in file. · 5faebb89
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
      	(nios2_emit_stack_limit_check): Add size parameter.  Handle
      	-fstack-limit-symbol as well as -fstack-limit-register.
      	(nios2_expand_prologue): Emit only a single stack limit check,
      	even if multiple stack adjustments are required.
      	(nios2_option_override): Diagnose unsupported combination of -fpic
      	and -stack-limit-symbol.
      
      	gcc/testsuite/
      	* gcc.target/nios2/nios2-stack-check-1.c: Adjust patterns.
      	* gcc.target/nios2/nios2-stack-check-2.c: Likewise.
      	* gcc.target/nios2/nios2-stack-check-3.c: New test case.
      
      From-SVN: r225787
      Sandra Loosemore committed
    • simd-3.c: (main): Change type of res and ref from int to double. · 4c1cb4da
      2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
      
      libgomp/
      	* testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
      	and ref from int to double.  Replaced their comparison with
      	an inequality of their difference and EPS.
      	* testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
      	comparison of pri and a reference number with an inequality of their
      	difference and EPS.
      	* testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
      	the comparison of sum and sum_ref with an inequality of their
      	difference and EPS.
      	* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
      	the comparison of pri and a reference number with an inequality of
      	their difference and EPS.
      
      From-SVN: r225786
      Maxim Blumenthal committed
    • * call.c (build_new_method_call_1): Call reshape_init. · e056dfd0
      From-SVN: r225784
      Jason Merrill committed
    • pt.c (check_template_shadow): Emit error + inform instead of two errors. · 87679b76
      /cp
      2015-07-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* pt.c (check_template_shadow): Emit error + inform instead of
      	two errors.
      
      /testsuite
      2015-07-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/template/crash81.C: Adjust for error + inform change.
      	* g++.dg/template/pr58878.C: Likewise.
      	* g++.dg/template/shadow1.C: Likewise.
      	* g++.dg/template/shadow2.C: Likewise.
      	* g++.old-deja/g++.benjamin/tem03.C: Likewise.
      	* g++.old-deja/g++.benjamin/tem04.C: Likewise.
      	* g++.old-deja/g++.brendan/crash7.C: Likewise.
      	* g++.old-deja/g++.pt/shadow2.C: Likewise.
      
      From-SVN: r225783
      Paolo Carlini committed
    • Remove trailing spaces in demangle.h · 721c8251
      From-SVN: r225782
      H.J. Lu committed
    • Update copyright year in include · 9cefc856
      From-SVN: r225781
      H.J. Lu committed
    • configure.tgt: Add *-*-dragonfly to supported targets. · b6735e76
      2015-07-14  John Marino  <gnugcc@marino.st>
      
      	* configure.tgt: Add *-*-dragonfly to supported targets.
      
      From-SVN: r225779
      John Marino committed
    • Sync toplevel configure with binutils-gdb · f1595603
      	Sync with binutils-gdb:
      	2015-03-17  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* configure.ac (target_configdirs): Exclude target-zlib if
      	target-libjava isn't built.
      	* configure: Regenerated.
      
      From-SVN: r225778
      H.J. Lu committed
    • Sync toplevel configure with binutils-gdb · a05c2c75
      	Sync with binutils-gdb:
      	2015-05-13  John David Anglin  <dave.anglin@bell.net>
      
      	* configure.ac: Disable configuration of GDB for HPUX targets.
      	* configure: Regenerate.
      
      	2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* configure.ac: Add --with-system-zlib.
      	* configure: Regenerated.
      
      	2015-01-28  James Bowman  <james.bowman@ftdichip.com>
      
      	* configure.ac: Add FT32 support.
      	* configure: Regenerate.
      
      	2015-01-12  Anthony Green  <green@moxielogic.com>
      
      	* configure.ac: Don't disable gprof for moxie.
      	* configure: Rebuild.
      
      From-SVN: r225777
      H.J. Lu committed
    • Sync toplevel files binutils-gdb · 1c01ebf6
      	Sync with binutils-gdb:
      	2015-05-01  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR ld/18355
      	* Makefile.def: Add extra_configure_flags to host zlib.
      	* configure.ac (extra_host_zlib_configure_flags): New.  Set
      	to --enable-host-shared When bfd is to be built as shared
      	library.  AC_SUBST.
      	* Makefile.in: Regenerated.
      
      From-SVN: r225776
      H.J. Lu committed
    • This patch syncs zlib.m4 with binutils-gdb and uses AM_ZLIB from zlib.m4 · 96a58590
      in gcc/configure.ac.
      
      config/
      
      	* zlib.m4: Sync with binutils-gdb.
      
      gcc/
      
      	* Makefile.in (top_srcdir): New.
      	* configure.ac: Use AM_ZLIB.
      	* configure: Regeneated.
      
      From-SVN: r225774
      H.J. Lu committed
    • re PR target/66840 (plugins fail to build on powerpc64le-linux-gnu) · 6ed80e1e
      2015-07-14  Matthias Klose  <doko@ubuntu.com>
      
              PR target/66840
              * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
      
      From-SVN: r225772
      Matthias Klose committed
    • Sync with src: · e59969a1
      	2015-03-30  H.J. Lu  <hongjiu.lu@intel.com>
      	* Makefile.def (dependencies): Add all-zlib to all-bfd.
      	* Makefile.in: Regenerated.
      
      From-SVN: r225769
      Hans-Peter Nilsson committed
    • re PR tree-optimization/66863 (wrong code at -Os and above on x86_64-linux-gnu) · fe9acb3a
      2015-07-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66863
      	* tree-vrp.c (register_edge_assert_for_2): Properly restrict
      	what we record for conversion use stmt lhs inequalities.
      
      	* gcc.dg/torture/pr66863.c: New testcase.
      
      From-SVN: r225768
      Richard Biener committed
    • genmatch.c (dt_node::gen_kids_1): Fix case label indenting. · 1ec1fa94
      2015-07-14  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
      	(decision_tree::gen_gimple): Likewise.
      
      From-SVN: r225765
      Richard Biener committed
    • Ignore -ftree-parallelize-loops={0,1} using gt · cf7416c3
      2015-07-14  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.c (greater_than_spec_func): Declare forward.
      	(LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
      	-ftree-parallelize-loops={0,1}.
      	(static_spec_functions): Add greater_than_spec_func function with name
      	"gt".
      	(greater_than_spec_func): New function.
      
      From-SVN: r225764
      Tom de Vries committed
    • tree-ssa-dom.c (record_temporary_equivalences): Merge wideing type conversion… · c9080ba2
      tree-ssa-dom.c (record_temporary_equivalences): Merge wideing type conversion case from record_equivalences_from_incoming_edge...
      
      2015-07-14  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-dom.c (record_temporary_equivalences): Merge
      	wideing type conversion case from record_equivalences_from_incoming_edge
      	and use record_equality to record equivalences.
      	(record_equivalences_from_incoming_edge): Call
      	record_temporary_equivalences.
      
      From-SVN: r225761
      Richard Biener committed
    • genmatch.c (struct operand): Add OP_IF and OP_WITH op_types. · 8fdc6c67
      2015-07-14  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
      	(struct if_expr): New.
      	(struct with_expr): Likewise.
      	(is_a_helper): Add helpers for if_expr and with_expr.
      	(struct simplify): Add simplify_kind enum and member.  Remove
      	ifexpr_vec member.
      	(simplify::simplify): Adjust.
      	(lower_commutative): Adjust.
      	(lower_opt_convert): Likewise.
      	(lower_cond): Likewise.
      	(replace_id): Handle with_expr and if_expr.
      	(lower_for): Adjust.
      	(dt_simplify::gen_1): New recursive worker, split out from ...
      	(dt_simplify::gen): ... here.  Deal with if and with expansion
      	recursively.
      	(capture_info::capture_info): Take context argument
      	(capture_info::walk_result): Only analyze specific result.
      	(parser::parse_result): New function.
      	(parser::parse_simplify): Adjust to parse ifs with then end
      	else case.
      	(parser::parse_if): Simplify.
      	(parser::parse_pattern): Pass down simplify kind.
      	* match.pd: Convert if structure to new syntax.
      
      From-SVN: r225760
      Richard Biener committed