2014-11-01 Andrew MacLeod <amacleod@redhat,com>

* optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
	and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
	* genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
	* optabs.c: (gen_move_insn): Move to expr.c.
	* expr.h: Move protypes and enums to optabs.h.
	* expr.c: (gen_move_insn): Relocate from optabs.c.
	* genemit.c (main): Include insn-codes.h.
	* gengtype.c (open_base_files): Include insn-codes.h.
	* asan.c: Include insn-codes.h.
	* bb-reorder.c: Ditto.
	* builtins.c: Ditto.
	* calls.c: Ditto.
	* cfgexpand.c: Ditto.
	* cilk-common.c: Ditto.
	* combine.c: Ditto.
	* dojump.c: Ditto.
	* dse.c: Ditto.
	* except.c: Ditto.
	* explow.c: Ditto.
	* expmed.c: Ditto.
	* function.c: Ditto.
	* ifcvt.c: Ditto.
	* internal-fn.c: Ditto.
	* loop-unroll.c: Ditto.
	* lra.c: Ditto.
	* modulo-sched.c: Ditto.
	* omp-low.c: Ditto.
	* postreload.c: Ditto.
	* ree.c: Ditto.
	* reload.c: Ditto.
	* reload1.c: Ditto.
	* shrink-wrap.c: Ditto.
	* simplify-rtx.c: Ditto.
	* stmt.c: Ditto.
	* target-globals.c: Ditto.
	* targhooks.c: Ditto.
	* toplev.c: Ditto.
	* tree-if-conv.c: Ditto.
	* tree-ssa-forwprop.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-ssa-math-opts.c: Ditto.
	* tree-ssa-phiopt.c: Ditto.
	* tree-ssa-reassoc.c: Ditto.
	* tree-switch-conversion.c: Ditto.
	* tree-vect-data-refs.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-loop.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree-vect-slp.c: Ditto.
	* tree-vect-stmts.c: Ditto.
	* tree-vrp.c: Ditto.
	* value-prof.c: Ditto.
	* config/aarch64/aarch64-builtins.c: Ditto.
	* config/alpha/alpha.c: Ditto.
	* config/arm/arm.c: Ditto.
	* config/cris/cris.c: Ditto.
	* config/epiphany/epiphany.c: Ditto.
	* config/frv/frv.c: Ditto.
	* config/h8300/h8300.c: Ditto.
	* config/ia64/ia64.c: Ditto.
	* config/iq2000/iq2000.c: Ditto.
	* config/m32c/m32c.c: Ditto.
	* config/mep/mep.c: Ditto.
	* config/microblaze/microblaze.c: Ditto.
	* config/mips/mips.c: Ditto.
	* config/mn10300/mn10300.c: Ditto.
	* config/moxie/moxie.c: Ditto.
	* config/msp430/msp430.c: Ditto.
	* config/nios2/nios2.c: Ditto.
	* config/pa/pa.c: Ditto.
	* config/rl78/rl78.c: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rx/rx.c: Ditto.
	* config/s390/s390.c: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh_treg_combine.cc: Ditto.
	* config/spu/spu.c: Ditto.
	* config/stormy16/stormy16.c: Ditto.
	* config/tilegx/mul-tables.c: Ditto.
	* config/tilegx/tilegx.c: Ditto.
	* config/tilepro/mul-tables.c: Ditto.
	* config/tilepro/tilepro.c: Ditto.
	* config/vax/vax.c: Ditto.

From-SVN: r217005
This commit is contained in:
Andrew MacLeod 2014-11-01 13:34:15 +00:00 committed by Andrew Macleod
parent a5474c4cb0
commit b0710fe1b1
83 changed files with 542 additions and 383 deletions

View File

@ -1,3 +1,89 @@
2014-11-01 Andrew MacLeod <amacleod@redhat,com>
* optabs.h: Flatten insn-codes.h to source files. Move some prototypes
and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
* genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
* optabs.c: (gen_move_insn): Move to expr.c.
* expr.h: Move protypes and enums to optabs.h.
* expr.c: (gen_move_insn): Relocate from optabs.c.
* genemit.c (main): Include insn-codes.h.
* gengtype.c (open_base_files): Include insn-codes.h.
* asan.c: Include insn-codes.h.
* bb-reorder.c: Ditto.
* builtins.c: Ditto.
* calls.c: Ditto.
* cfgexpand.c: Ditto.
* cilk-common.c: Ditto.
* combine.c: Ditto.
* dojump.c: Ditto.
* dse.c: Ditto.
* except.c: Ditto.
* explow.c: Ditto.
* expmed.c: Ditto.
* function.c: Ditto.
* ifcvt.c: Ditto.
* internal-fn.c: Ditto.
* loop-unroll.c: Ditto.
* lra.c: Ditto.
* modulo-sched.c: Ditto.
* omp-low.c: Ditto.
* postreload.c: Ditto.
* ree.c: Ditto.
* reload.c: Ditto.
* reload1.c: Ditto.
* shrink-wrap.c: Ditto.
* simplify-rtx.c: Ditto.
* stmt.c: Ditto.
* target-globals.c: Ditto.
* targhooks.c: Ditto.
* toplev.c: Ditto.
* tree-if-conv.c: Ditto.
* tree-ssa-forwprop.c: Ditto.
* tree-ssa-loop-prefetch.c: Ditto.
* tree-ssa-math-opts.c: Ditto.
* tree-ssa-phiopt.c: Ditto.
* tree-ssa-reassoc.c: Ditto.
* tree-switch-conversion.c: Ditto.
* tree-vect-data-refs.c: Ditto.
* tree-vect-generic.c: Ditto.
* tree-vect-loop.c: Ditto.
* tree-vect-patterns.c: Ditto.
* tree-vect-slp.c: Ditto.
* tree-vect-stmts.c: Ditto.
* tree-vrp.c: Ditto.
* value-prof.c: Ditto.
* config/aarch64/aarch64-builtins.c: Ditto.
* config/alpha/alpha.c: Ditto.
* config/arm/arm.c: Ditto.
* config/cris/cris.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/mep/mep.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mips/mips.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/pa/pa.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/rs6000/rs6000.c: Ditto.
* config/rx/rx.c: Ditto.
* config/s390/s390.c: Ditto.
* config/sh/sh.c: Ditto.
* config/sh/sh_treg_combine.cc: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/mul-tables.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/mul-tables.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/vax/vax.c: Ditto.
2014-11-01 James Greenhalgh <james.greenhalgh@arm.com> 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
* doc/tm.texi.in (MOVE_BY_PIECES_P): Remove. * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.

View File

@ -60,6 +60,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-pretty-print.h" #include "gimple-pretty-print.h"
#include "target.h" #include "target.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "output.h" #include "output.h"
#include "tm_p.h" #include "tm_p.h"

View File

@ -99,6 +99,7 @@
#include "tm_p.h" #include "tm_p.h"
#include "obstack.h" #include "obstack.h"
#include "expr.h" #include "expr.h"
#include "optabs.h"
#include "params.h" #include "params.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "toplev.h" /* user_defined_section_attribute */ #include "toplev.h" /* user_defined_section_attribute */

View File

@ -49,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "except.h" #include "except.h"
#include "insn-config.h" #include "insn-config.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"

View File

@ -43,6 +43,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h" #include "gimple.h"
#include "flags.h" #include "flags.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "regs.h" #include "regs.h"

View File

@ -44,6 +44,8 @@ along with GCC; see the file COPYING3. If not see
#include "cfgbuild.h" #include "cfgbuild.h"
#include "cfgcleanup.h" #include "cfgcleanup.h"
#include "basic-block.h" #include "basic-block.h"
#include "insn-codes.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "langhooks.h" #include "langhooks.h"
#include "bitmap.h" #include "bitmap.h"

View File

@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
#include "stor-layout.h" #include "stor-layout.h"
#include "langhooks.h" #include "langhooks.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "recog.h" #include "recog.h"
#include "tree-iterator.h" #include "tree-iterator.h"

View File

@ -105,8 +105,8 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h" #include "recog.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "target.h" #include "target.h"
#include "optabs.h"
#include "insn-codes.h" #include "insn-codes.h"
#include "optabs.h"
#include "rtlhooks-def.h" #include "rtlhooks-def.h"
#include "params.h" #include "params.h"
#include "tree-pass.h" #include "tree-pass.h"

View File

@ -32,6 +32,7 @@
#include "recog.h" #include "recog.h"
#include "langhooks.h" #include "langhooks.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "hash-table.h" #include "hash-table.h"
#include "vec.h" #include "vec.h"

View File

@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h" #include "flags.h"
#include "recog.h" #include "recog.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "reload.h" #include "reload.h"
#include "obstack.h" #include "obstack.h"

View File

@ -47,6 +47,7 @@
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "recog.h" #include "recog.h"

View File

@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. If not see
#include "target.h" #include "target.h"
#include "target-def.h" #include "target-def.h"
#include "ggc.h" #include "ggc.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "dominance.h" #include "dominance.h"
#include "cfg.h" #include "cfg.h"

View File

@ -42,6 +42,8 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h" #include "machmode.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "insn-codes.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "recog.h" #include "recog.h"

View File

@ -45,6 +45,7 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h" #include "machmode.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "predict.h" #include "predict.h"

View File

@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h" #include "machmode.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "c-family/c-pragma.h" /* ??? */ #include "c-family/c-pragma.h" /* ??? */

View File

@ -38,6 +38,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h" #include "flags.h"
#include "recog.h" #include "recog.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "except.h" #include "except.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -40,6 +40,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"

View File

@ -40,6 +40,7 @@
#include "varasm.h" #include "varasm.h"
#include "calls.h" #include "calls.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "except.h" #include "except.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h" #include "machmode.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "reload.h" #include "reload.h"
#include "tm_p.h" #include "tm_p.h"

View File

@ -61,6 +61,7 @@
#include "predict.h" #include "predict.h"
#include "basic-block.h" #include "basic-block.h"
#include "df.h" #include "df.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "hash-map.h" #include "hash-map.h"

View File

@ -45,6 +45,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "flags.h" #include "flags.h"

View File

@ -37,6 +37,7 @@
#include "recog.h" #include "recog.h"
#include "reload.h" #include "reload.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "hashtab.h" #include "hashtab.h"
#include "hash-set.h" #include "hash-set.h"

View File

@ -40,6 +40,7 @@
#include "varasm.h" #include "varasm.h"
#include "calls.h" #include "calls.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "except.h" #include "except.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -40,6 +40,7 @@
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"

View File

@ -35,6 +35,7 @@
#include "flags.h" #include "flags.h"
#include "recog.h" #include "recog.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "hashtab.h" #include "hashtab.h"
#include "hash-set.h" #include "hash-set.h"

View File

@ -38,6 +38,7 @@ along with GCC; see the file COPYING3. If not see
#include "dbxout.h" #include "dbxout.h"
#include "except.h" #include "except.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "reload.h" #include "reload.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -41,6 +41,7 @@
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"

View File

@ -38,6 +38,7 @@
#include "print-tree.h" #include "print-tree.h"
#include "varasm.h" #include "varasm.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "except.h" #include "except.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -45,6 +45,7 @@
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"

View File

@ -64,6 +64,7 @@ along with GCC; see the file COPYING3. If not see
#include "target-def.h" #include "target-def.h"
#include "debug.h" #include "debug.h"
#include "langhooks.h" #include "langhooks.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "hash-table.h" #include "hash-table.h"
#include "tree-ssa-alias.h" #include "tree-ssa-alias.h"

View File

@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "varasm.h" #include "varasm.h"
#include "flags.h" #include "flags.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "reload.h" #include "reload.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -46,6 +46,8 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h" #include "recog.h"
#include "tree-pass.h" #include "tree-pass.h"
#include "target.h" #include "target.h"
#include "tree-core.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include <algorithm> #include <algorithm>

View File

@ -33,6 +33,7 @@
#include "calls.h" #include "calls.h"
#include "varasm.h" #include "varasm.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "except.h" #include "except.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -40,6 +40,7 @@
#include "varasm.h" #include "varasm.h"
#include "calls.h" #include "calls.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "except.h" #include "except.h"
#include "hashtab.h" #include "hashtab.h"

View File

@ -22,6 +22,7 @@
#include "system.h" #include "system.h"
#include "coretypes.h" #include "coretypes.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "tilegx-multiply.h" #include "tilegx-multiply.h"

View File

@ -30,6 +30,7 @@
#include "recog.h" #include "recog.h"
#include "expr.h" #include "expr.h"
#include "langhooks.h" #include "langhooks.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "dominance.h" #include "dominance.h"
#include "cfg.h" #include "cfg.h"

View File

@ -22,6 +22,7 @@
#include "system.h" #include "system.h"
#include "coretypes.h" #include "coretypes.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "tilepro-multiply.h" #include "tilepro-multiply.h"

View File

@ -30,6 +30,7 @@
#include "recog.h" #include "recog.h"
#include "expr.h" #include "expr.h"
#include "langhooks.h" #include "langhooks.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "dominance.h" #include "dominance.h"
#include "cfg.h" #include "cfg.h"

View File

@ -49,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h" #include "insn-attr.h"
#include "recog.h" #include "recog.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "flags.h" #include "flags.h"
#include "debug.h" #include "debug.h"

View File

@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h" #include "insn-attr.h"
/* Include expr.h after insn-config.h so we get HAVE_conditional_move. */ /* Include expr.h after insn-config.h so we get HAVE_conditional_move. */
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "langhooks.h" #include "langhooks.h"
#include "ggc.h" #include "ggc.h"

View File

@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
#include "insn-config.h" #include "insn-config.h"
#include "expr.h" #include "expr.h"
#include "recog.h" #include "recog.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "dbgcnt.h" #include "dbgcnt.h"
#include "target.h" #include "target.h"

View File

@ -125,6 +125,8 @@ along with GCC; see the file COPYING3. If not see
#include "hard-reg-set.h" #include "hard-reg-set.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "insn-codes.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "insn-config.h" #include "insn-config.h"

View File

@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "insn-config.h" #include "insn-config.h"

View File

@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h" #include "flags.h"
#include "insn-config.h" #include "insn-config.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "recog.h" #include "recog.h"
#include "langhooks.h" #include "langhooks.h"

View File

@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h" #include "insn-attr.h"
/* Include expr.h after insn-config.h so we get HAVE_conditional_move. */ /* Include expr.h after insn-config.h so we get HAVE_conditional_move. */
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"
@ -3628,6 +3629,21 @@ emit_move_insn (rtx x, rtx y)
return last_insn; return last_insn;
} }
/* Generate the body of an instruction to copy Y into X.
It may be a list of insns, if one insn isn't enough. */
rtx
gen_move_insn (rtx x, rtx y)
{
rtx_insn *seq;
start_sequence ();
emit_move_insn_1 (x, y);
seq = get_insns ();
end_sequence ();
return seq;
}
/* If Y is representable exactly in a narrower mode, and the target can /* If Y is representable exactly in a narrower mode, and the target can
perform the extension directly from constant or memory, then emit the perform the extension directly from constant or memory, then emit the
move as an extension. */ move as an extension. */

View File

@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes, */ ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes, */
#include "tree-core.h" #include "tree-core.h"
/* For GET_MODE_BITSIZE, word_mode */ /* For GET_MODE_BITSIZE, word_mode */
#include "insn-config.h"
/* This is the 4th arg to `expand_expr'. /* This is the 4th arg to `expand_expr'.
EXPAND_STACK_PARM means we are possibly expanding a call param onto EXPAND_STACK_PARM means we are possibly expanding a call param onto
@ -71,93 +72,6 @@ typedef struct separate_ops
tree type; tree type;
tree op0, op1, op2; tree op0, op1, op2;
} *sepops; } *sepops;
/* Functions from optabs.c, commonly used, and without need for the optabs
tables: */
/* Passed to expand_simple_binop and expand_binop to say which options
to try to use if the requested operation can't be open-coded on the
requisite mode. Either OPTAB_LIB or OPTAB_LIB_WIDEN says try using
a library call. Either OPTAB_WIDEN or OPTAB_LIB_WIDEN says try
using a wider mode. OPTAB_MUST_WIDEN says try widening and don't
try anything else. */
enum optab_methods
{
OPTAB_DIRECT,
OPTAB_LIB,
OPTAB_WIDEN,
OPTAB_LIB_WIDEN,
OPTAB_MUST_WIDEN
};
/* Generate code for a simple binary or unary operation. "Simple" in
this case means "can be unambiguously described by a (mode, code)
pair and mapped to a single optab." */
extern rtx expand_simple_binop (machine_mode, enum rtx_code, rtx,
rtx, rtx, int, enum optab_methods);
extern rtx expand_simple_unop (machine_mode, enum rtx_code, rtx, rtx,
int);
/* Report whether the machine description contains an insn which can
perform the operation described by CODE and MODE. */
extern int have_insn_for (enum rtx_code, machine_mode);
/* Emit code to make a call to a constant function or a library call. */
extern void emit_libcall_block (rtx, rtx, rtx, rtx);
/* Create but don't emit one rtl instruction to perform certain operations.
Modes must match; operands must meet the operation's predicates.
Likewise for subtraction and for just copying. */
extern rtx gen_add2_insn (rtx, rtx);
extern rtx gen_add3_insn (rtx, rtx, rtx);
extern rtx gen_addptr3_insn (rtx, rtx, rtx);
extern rtx gen_sub2_insn (rtx, rtx);
extern rtx gen_sub3_insn (rtx, rtx, rtx);
extern rtx gen_move_insn (rtx, rtx);
extern int have_add2_insn (rtx, rtx);
extern int have_addptr3_insn (rtx, rtx, rtx);
extern int have_sub2_insn (rtx, rtx);
/* Emit a pair of rtl insns to compare two rtx's and to jump
to a label if the comparison is true. */
extern void emit_cmp_and_jump_insns (rtx, rtx, enum rtx_code, rtx,
machine_mode, int, rtx, int prob=-1);
/* Generate code to indirectly jump to a location given in the rtx LOC. */
extern void emit_indirect_jump (rtx);
/* Generate a conditional trap instruction. */
extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
#include "insn-config.h"
#ifdef HAVE_conditional_move
/* Emit a conditional move operation. */
rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, machine_mode,
rtx, rtx, machine_mode, int);
/* Return nonzero if the conditional move is supported. */
int can_conditionally_move_p (machine_mode mode);
#endif
rtx emit_conditional_add (rtx, enum rtx_code, rtx, rtx, machine_mode,
rtx, rtx, machine_mode, int);
rtx expand_sync_operation (rtx, rtx, enum rtx_code);
rtx expand_sync_fetch_operation (rtx, rtx, enum rtx_code, bool, rtx);
rtx expand_sync_lock_test_and_set (rtx, rtx, rtx);
rtx expand_atomic_exchange (rtx, rtx, rtx, enum memmodel);
rtx expand_atomic_load (rtx, rtx, enum memmodel);
rtx expand_atomic_store (rtx, rtx, enum memmodel, bool);
rtx expand_atomic_fetch_op (rtx, rtx, rtx, enum rtx_code, enum memmodel,
bool);
rtx expand_atomic_test_and_set (rtx, rtx, enum memmodel);
rtx expand_atomic_clear (rtx, enum memmodel);
void expand_atomic_thread_fence (enum memmodel);
void expand_atomic_signal_fence (enum memmodel);
/* Functions from expmed.c: */ /* Functions from expmed.c: */
@ -334,6 +248,7 @@ extern rtx store_by_pieces (rtx, unsigned HOST_WIDE_INT,
/* Emit insns to set X from Y. */ /* Emit insns to set X from Y. */
extern rtx_insn *emit_move_insn (rtx, rtx); extern rtx_insn *emit_move_insn (rtx, rtx);
extern rtx gen_move_insn (rtx, rtx);
/* Emit insns to set X from Y, with no frills. */ /* Emit insns to set X from Y, with no frills. */
extern rtx_insn *emit_move_insn_1 (rtx, rtx); extern rtx_insn *emit_move_insn_1 (rtx, rtx);
@ -671,18 +586,6 @@ extern int safe_from_p (const_rtx, tree, int);
extern bool split_comparison (enum rtx_code, machine_mode, extern bool split_comparison (enum rtx_code, machine_mode,
enum rtx_code *, enum rtx_code *); enum rtx_code *, enum rtx_code *);
/* Call this once to initialize the contents of the optabs
appropriately for the current target machine. */
extern void init_optabs (void);
extern void init_all_optabs (struct target_optabs *);
/* Call this to initialize an optab function entry. */
extern rtx init_one_libfunc (const char *);
extern rtx set_user_assembler_libfunc (const char *, const char *);
/* Build a decl for a libfunc named NAME. */
extern tree build_libfunc_function (const char *);
/* Get the personality libfunc for a function decl. */ /* Get the personality libfunc for a function decl. */
rtx get_personality_function (tree); rtx get_personality_function (tree);

View File

@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "regs.h" #include "regs.h"

View File

@ -809,6 +809,7 @@ from the machine description file `md'. */\n\n");
printf ("#include \"input.h\"\n"); printf ("#include \"input.h\"\n");
printf ("#include \"function.h\"\n"); printf ("#include \"function.h\"\n");
printf ("#include \"expr.h\"\n"); printf ("#include \"expr.h\"\n");
printf ("#include \"insn-codes.h\"\n");
printf ("#include \"optabs.h\"\n"); printf ("#include \"optabs.h\"\n");
printf ("#include \"dfp.h\"\n"); printf ("#include \"dfp.h\"\n");
printf ("#include \"flags.h\"\n"); printf ("#include \"flags.h\"\n");

View File

@ -1826,7 +1826,7 @@ open_base_files (void)
{ {
/* The order of files here matters very much. */ /* The order of files here matters very much. */
static const char *const ifiles[] = { static const char *const ifiles[] = {
"config.h", "system.h", "coretypes.h", "tm.h", "config.h", "system.h", "coretypes.h", "tm.h", "insn-codes.h",
"hashtab.h", "splay-tree.h", "obstack.h", "bitmap.h", "input.h", "hashtab.h", "splay-tree.h", "obstack.h", "bitmap.h", "input.h",
"tree.h", "rtl.h", "wide-int.h", "hashtab.h", "hash-set.h", "vec.h", "tree.h", "rtl.h", "wide-int.h", "hashtab.h", "hash-set.h", "vec.h",
"machmode.h", "tm.h", "hard-reg-set.h", "input.h", "predict.h", "machmode.h", "tm.h", "hard-reg-set.h", "input.h", "predict.h",

View File

@ -398,6 +398,68 @@ main (int argc, char **argv)
fprintf (h_file, "#define NUM_OPTAB_PATTERNS %u\n", fprintf (h_file, "#define NUM_OPTAB_PATTERNS %u\n",
(unsigned) patterns.length ()); (unsigned) patterns.length ());
fprintf (h_file,
"typedef enum optab_tag optab;\n"
"typedef enum optab_tag convert_optab;\n"
"typedef enum optab_tag direct_optab;\n"
"\n"
"struct optab_libcall_d\n"
"{\n"
" char libcall_suffix;\n"
" const char *libcall_basename;\n"
" void (*libcall_gen) (optab, const char *name,\n"
" char suffix, machine_mode);\n"
"};\n"
"\n"
"struct convert_optab_libcall_d\n"
"{\n"
" const char *libcall_basename;\n"
" void (*libcall_gen) (convert_optab, const char *name,\n"
" machine_mode, machine_mode);\n"
"};\n"
"\n"
"/* Given an enum insn_code, access the function to construct\n"
" the body of that kind of insn. */\n"
"#define GEN_FCN(CODE) (insn_data[CODE].genfun)\n"
"\n"
"/* Contains the optab used for each rtx code, and vice-versa. */\n"
"extern const optab code_to_optab_[NUM_RTX_CODE];\n"
"extern const enum rtx_code optab_to_code_[NUM_OPTABS];\n"
"\n"
"static inline optab\n"
"code_to_optab (enum rtx_code code)\n"
"{\n"
" return code_to_optab_[code];\n"
"}\n"
"\n"
"static inline enum rtx_code\n"
"optab_to_code (optab op)\n"
"{\n"
" return optab_to_code_[op];\n"
"}\n"
"\n"
"extern const struct convert_optab_libcall_d convlib_def[NUM_CONVLIB_OPTABS];\n"
"extern const struct optab_libcall_d normlib_def[NUM_NORMLIB_OPTABS];\n"
"\n"
"/* Returns the active icode for the given (encoded) optab. */\n"
"extern enum insn_code raw_optab_handler (unsigned);\n"
"extern bool swap_optab_enable (optab, machine_mode, bool);\n"
"\n"
"/* Target-dependent globals. */\n"
"struct target_optabs {\n"
" /* Patterns that are used by optabs that are enabled for this target. */\n"
" bool pat_enable[NUM_OPTAB_PATTERNS];\n"
"};\n"
"extern void init_all_optabs (struct target_optabs *);\n"
"\n"
"extern struct target_optabs default_target_optabs;\n"
"extern struct target_optabs *this_fn_optabs;\n"
"#if SWITCHABLE_TARGET\n"
"extern struct target_optabs *this_target_optabs;\n"
"#else\n"
"#define this_target_optabs (&default_target_optabs)\n"
"#endif\n");
fprintf (s_file, fprintf (s_file,
"#include \"config.h\"\n" "#include \"config.h\"\n"
"#include \"system.h\"\n" "#include \"system.h\"\n"
@ -413,6 +475,7 @@ main (int argc, char **argv)
"#include \"flags.h\"\n" "#include \"flags.h\"\n"
"#include \"insn-config.h\"\n" "#include \"insn-config.h\"\n"
"#include \"expr.h\"\n" "#include \"expr.h\"\n"
"#include \"insn-codes.h\"\n"
"#include \"optabs.h\"\n" "#include \"optabs.h\"\n"
"\n" "\n"
"struct optab_pat {\n" "struct optab_pat {\n"

View File

@ -44,6 +44,7 @@
#include "basic-block.h" #include "basic-block.h"
#include "expr.h" #include "expr.h"
#include "output.h" #include "output.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "tm_p.h" #include "tm_p.h"

View File

@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "internal-fn.h" #include "internal-fn.h"
#include "stor-layout.h" #include "stor-layout.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "predict.h" #include "predict.h"
#include "vec.h" #include "vec.h"

View File

@ -39,6 +39,8 @@ along with GCC; see the file COPYING3. If not see
#include "basic-block.h" #include "basic-block.h"
#include "cfgloop.h" #include "cfgloop.h"
#include "params.h" #include "params.h"
#include "insn-codes.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "hash-table.h" #include "hash-table.h"
#include "recog.h" #include "recog.h"

View File

@ -112,6 +112,8 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h" #include "machmode.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "tree-core.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "predict.h" #include "predict.h"
#include "dominance.h" #include "dominance.h"

View File

@ -48,6 +48,9 @@ along with GCC; see the file COPYING3. If not see
#include "sched-int.h" #include "sched-int.h"
#include "target.h" #include "target.h"
#include "cfgloop.h" #include "cfgloop.h"
#include "tree-core.h"
#include "insn-codes.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "params.h" #include "params.h"
#include "gcov-io.h" #include "gcov-io.h"

View File

@ -73,6 +73,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pass.h" #include "tree-pass.h"
#include "except.h" #include "except.h"
#include "splay-tree.h" #include "splay-tree.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "cfgloop.h" #include "cfgloop.h"
#include "target.h" #include "target.h"

View File

@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "function.h" #include "function.h"
#include "except.h" #include "except.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "recog.h" #include "recog.h"
@ -4894,21 +4895,6 @@ have_sub2_insn (rtx x, rtx y)
return 1; return 1;
} }
/* Generate the body of an instruction to copy Y into X.
It may be a list of insns, if one insn isn't enough. */
rtx
gen_move_insn (rtx x, rtx y)
{
rtx_insn *seq;
start_sequence ();
emit_move_insn_1 (x, y);
seq = get_insns ();
end_sequence ();
return seq;
}
/* Return the insn code used to extend FROM_MODE to TO_MODE. /* Return the insn code used to extend FROM_MODE to TO_MODE.
UNSIGNEDP specifies zero-extension instead of sign-extension. If UNSIGNEDP specifies zero-extension instead of sign-extension. If

View File

@ -20,244 +20,11 @@ along with GCC; see the file COPYING3. If not see
#ifndef GCC_OPTABS_H #ifndef GCC_OPTABS_H
#define GCC_OPTABS_H #define GCC_OPTABS_H
#include "insn-codes.h"
#include "insn-opinit.h" #include "insn-opinit.h"
typedef enum optab_tag optab;
typedef enum optab_tag convert_optab;
typedef enum optab_tag direct_optab;
struct optab_libcall_d
{
char libcall_suffix;
const char *libcall_basename;
void (*libcall_gen) (optab, const char *name,
char suffix, machine_mode);
};
struct convert_optab_libcall_d
{
const char *libcall_basename;
void (*libcall_gen) (convert_optab, const char *name,
machine_mode, machine_mode);
};
/* Given an enum insn_code, access the function to construct
the body of that kind of insn. */
#define GEN_FCN(CODE) (insn_data[CODE].genfun)
/* Contains the optab used for each rtx code, and vice-versa. */
extern const optab code_to_optab_[NUM_RTX_CODE];
extern const enum rtx_code optab_to_code_[NUM_OPTABS];
static inline optab
code_to_optab (enum rtx_code code)
{
return code_to_optab_[code];
}
static inline enum rtx_code
optab_to_code (optab op)
{
return optab_to_code_[op];
}
extern const struct convert_optab_libcall_d convlib_def[NUM_CONVLIB_OPTABS];
extern const struct optab_libcall_d normlib_def[NUM_NORMLIB_OPTABS];
/* Returns the active icode for the given (encoded) optab. */
extern enum insn_code raw_optab_handler (unsigned);
extern bool swap_optab_enable (optab, machine_mode, bool);
/* Target-dependent globals. */
struct target_optabs {
/* Patterns that are used by optabs that are enabled for this target. */
bool pat_enable[NUM_OPTAB_PATTERNS];
};
extern struct target_optabs default_target_optabs;
extern struct target_optabs *this_fn_optabs;
#if SWITCHABLE_TARGET
extern struct target_optabs *this_target_optabs;
#else
#define this_target_optabs (&default_target_optabs)
#endif
/* Define functions given in optabs.c. */
extern rtx expand_widen_pattern_expr (sepops ops, rtx op0, rtx op1, rtx wide_op,
rtx target, int unsignedp);
extern rtx expand_ternary_op (machine_mode mode, optab ternary_optab,
rtx op0, rtx op1, rtx op2, rtx target,
int unsignedp);
/* Expand a binary operation given optab and rtx operands. */
extern rtx expand_binop (machine_mode, optab, rtx, rtx, rtx, int,
enum optab_methods);
extern rtx simplify_expand_binop (machine_mode mode, optab binoptab,
rtx op0, rtx op1, rtx target, int unsignedp,
enum optab_methods methods);
extern bool force_expand_binop (machine_mode, optab, rtx, rtx, rtx, int,
enum optab_methods);
/* Expand a binary operation with both signed and unsigned forms. */
extern rtx sign_expand_binop (machine_mode, optab, optab, rtx, rtx,
rtx, int, enum optab_methods);
/* Generate code to perform an operation on one operand with two results. */
extern int expand_twoval_unop (optab, rtx, rtx, rtx, int);
/* Generate code to perform an operation on two operands with two results. */
extern int expand_twoval_binop (optab, rtx, rtx, rtx, rtx, int);
/* Generate code to perform an operation on two operands with two
results, using a library function. */
extern bool expand_twoval_binop_libfunc (optab, rtx, rtx, rtx, rtx,
enum rtx_code);
/* Expand a unary arithmetic operation given optab rtx operand. */
extern rtx expand_unop (machine_mode, optab, rtx, rtx, int);
/* Expand the absolute value operation. */
extern rtx expand_abs_nojump (machine_mode, rtx, rtx, int);
extern rtx expand_abs (machine_mode, rtx, rtx, int, int);
/* Expand the one's complement absolute value operation. */
extern rtx expand_one_cmpl_abs_nojump (machine_mode, rtx, rtx);
/* Expand the copysign operation. */
extern rtx expand_copysign (rtx, rtx, rtx);
/* Generate an instruction with a given INSN_CODE with an output and
an input. */
extern void emit_unop_insn (enum insn_code, rtx, rtx, enum rtx_code);
extern bool maybe_emit_unop_insn (enum insn_code, rtx, rtx, enum rtx_code);
/* Find a widening optab even if it doesn't widen as much as we want. */
#define find_widening_optab_handler(A,B,C,D) \
find_widening_optab_handler_and_mode (A, B, C, D, NULL)
extern enum insn_code find_widening_optab_handler_and_mode (optab,
machine_mode,
machine_mode,
int,
machine_mode *);
extern enum insn_code widening_optab_handler (optab, machine_mode,
machine_mode);
/* An extra flag to control optab_for_tree_code's behavior. This is needed to
distinguish between machines with a vector shift that takes a scalar for the
shift amount vs. machines that take a vector for the shift amount. */
enum optab_subtype
{
optab_default,
optab_scalar,
optab_vector
};
/* Return the optab used for computing the given operation on the type given by
the second argument. The third argument distinguishes between the types of
vector shifts and rotates */
extern optab optab_for_tree_code (enum tree_code, const_tree, enum optab_subtype);
/* Given an optab that reduces a vector to a scalar, find instead the old
optab that produces a vector with the reduction result in one element,
for a tree with the specified type. */
extern optab scalar_reduc_to_vector (optab, const_tree type);
/* The various uses that a comparison can have; used by can_compare_p:
jumps, conditional moves, store flag operations. */
enum can_compare_purpose
{
ccp_jump,
ccp_cmov,
ccp_store_flag
};
/* Nonzero if a compare of mode MODE can be done straightforwardly
(without splitting it into pieces). */
extern int can_compare_p (enum rtx_code, machine_mode,
enum can_compare_purpose);
/* Return the INSN_CODE to use for an extend operation. */
extern enum insn_code can_extend_p (machine_mode, machine_mode, int);
/* Generate the body of an insn to extend Y (with mode MFROM)
into X (with mode MTO). Do zero-extension if UNSIGNEDP is nonzero. */
extern rtx gen_extend_insn (rtx, rtx, machine_mode,
machine_mode, int);
/* Call this to reset the function entry for one optab. */
extern void set_optab_libfunc (optab, machine_mode, const char *);
extern void set_conv_libfunc (convert_optab, machine_mode,
machine_mode, const char *);
/* Call this to install all of the __sync libcalls up to size MAX. */
extern void init_sync_libfuncs (int max);
/* Generate code for a FIXED_CONVERT_EXPR. */
extern void expand_fixed_convert (rtx, rtx, int, int);
/* Generate code for a FLOAT_EXPR. */
extern void expand_float (rtx, rtx, int);
/* Return the insn_code for a FLOAT_EXPR. */
enum insn_code can_float_p (machine_mode, machine_mode, int);
/* Return true if there is an inline compare and swap pattern. */
extern bool can_compare_and_swap_p (machine_mode, bool);
/* Return true if there is an inline atomic exchange pattern. */
extern bool can_atomic_exchange_p (machine_mode, bool);
/* Generate code for a compare and swap. */
extern bool expand_atomic_compare_and_swap (rtx *, rtx *, rtx, rtx, rtx, bool,
enum memmodel, enum memmodel);
/* Generate memory barriers. */
extern void expand_mem_thread_fence (enum memmodel);
extern void expand_mem_signal_fence (enum memmodel);
/* Check whether an operation represented by the code CODE is a
convert operation that is supported by the target platform in
vector form */
bool supportable_convert_operation (enum tree_code, tree, tree, tree *,
enum tree_code *);
/* Generate code for a FIX_EXPR. */
extern void expand_fix (rtx, rtx, int);
/* Generate code for float to integral conversion. */
extern bool expand_sfix_optab (rtx, rtx, convert_optab);
/* Generate code for a widening multiply. */ /* Generate code for a widening multiply. */
extern rtx expand_widening_mult (machine_mode, rtx, rtx, rtx, int, optab); extern rtx expand_widening_mult (machine_mode, rtx, rtx, rtx, int, optab);
/* Return tree if target supports vector operations for COND_EXPR. */
bool expand_vec_cond_expr_p (tree, tree);
/* Generate code for VEC_COND_EXPR. */
extern rtx expand_vec_cond_expr (tree, tree, tree, tree, rtx);
/* Generate code for VEC_RSHIFT_EXPR. */
extern rtx expand_vec_shift_expr (sepops, rtx);
/* Return true if target supports vector operations for VEC_PERM_EXPR. */
extern bool can_vec_perm_p (machine_mode, bool, const unsigned char *);
/* Generate code for VEC_PERM_EXPR. */
extern rtx expand_vec_perm (machine_mode, rtx, rtx, rtx, rtx);
/* Return non-zero if target supports a given highpart multiplication. */
extern int can_mult_highpart_p (machine_mode, bool);
/* Generate code for MULT_HIGHPART_EXPR. */
extern rtx expand_mult_highpart (machine_mode, rtx, rtx, rtx, bool);
/* Return true if target supports vector masked load/store for mode. */
extern bool can_vec_mask_load_store_p (machine_mode, bool);
/* Return the insn used to implement mode MODE of OP, or CODE_FOR_nothing /* Return the insn used to implement mode MODE of OP, or CODE_FOR_nothing
if the target does not have such an insn. */ if the target does not have such an insn. */
@ -310,9 +77,7 @@ trapv_binoptab_p (optab binoptab)
|| binoptab == smulv_optab); || binoptab == smulv_optab);
} }
extern rtx optab_libfunc (optab optab, machine_mode mode);
extern rtx convert_optab_libfunc (convert_optab optab, machine_mode mode1,
machine_mode mode2);
/* Describes an instruction that inserts or extracts a bitfield. */ /* Describes an instruction that inserts or extracts a bitfield. */
struct extraction_insn struct extraction_insn
@ -333,21 +98,8 @@ struct extraction_insn
machine_mode pos_mode; machine_mode pos_mode;
}; };
/* Enumerates the possible extraction_insn operations. */
enum extraction_pattern { EP_insv, EP_extv, EP_extzv };
extern bool get_best_reg_extraction_insn (extraction_insn *,
enum extraction_pattern,
unsigned HOST_WIDE_INT,
machine_mode);
extern bool get_best_mem_extraction_insn (extraction_insn *,
enum extraction_pattern,
HOST_WIDE_INT, HOST_WIDE_INT,
machine_mode);
extern bool insn_operand_matches (enum insn_code icode, unsigned int opno,
rtx operand);
/* Describes the type of an expand_operand. Each value is associated /* Describes the type of an expand_operand. Each value is associated
with a create_*_operand function; see the comments above those with a create_*_operand function; see the comments above those
@ -452,8 +204,6 @@ create_convert_operand_from (struct expand_operand *op, rtx value,
create_expand_operand (op, EXPAND_CONVERT_FROM, value, mode, unsigned_p); create_expand_operand (op, EXPAND_CONVERT_FROM, value, mode, unsigned_p);
} }
extern void create_convert_operand_from_type (struct expand_operand *op,
rtx value, tree type);
/* Make OP describe an input Pmode address operand. VALUE is the value /* Make OP describe an input Pmode address operand. VALUE is the value
of the address, but it may need to be converted to Pmode first. */ of the address, but it may need to be converted to Pmode first. */
@ -476,24 +226,202 @@ create_integer_operand (struct expand_operand *op, HOST_WIDE_INT intval)
create_expand_operand (op, EXPAND_INTEGER, GEN_INT (intval), VOIDmode, false); create_expand_operand (op, EXPAND_INTEGER, GEN_INT (intval), VOIDmode, false);
} }
extern bool valid_multiword_target_p (rtx);
extern bool maybe_legitimize_operands (enum insn_code icode, extern rtx convert_optab_libfunc (convert_optab optab, machine_mode mode1,
unsigned int opno, unsigned int nops, machine_mode mode2);
struct expand_operand *ops); extern rtx optab_libfunc (optab optab, machine_mode mode);
extern rtx maybe_gen_insn (enum insn_code icode, unsigned int nops, extern enum insn_code widening_optab_handler (optab, machine_mode,
struct expand_operand *ops); machine_mode);
extern bool maybe_expand_insn (enum insn_code icode, unsigned int nops, /* Find a widening optab even if it doesn't widen as much as we want. */
struct expand_operand *ops); #define find_widening_optab_handler(A,B,C,D) \
extern bool maybe_expand_jump_insn (enum insn_code icode, unsigned int nops, find_widening_optab_handler_and_mode (A, B, C, D, NULL)
struct expand_operand *ops); extern enum insn_code find_widening_optab_handler_and_mode (optab,
extern void expand_insn (enum insn_code icode, unsigned int nops, machine_mode,
struct expand_operand *ops); machine_mode,
extern void expand_jump_insn (enum insn_code icode, unsigned int nops, int,
struct expand_operand *ops); machine_mode *);
/* An extra flag to control optab_for_tree_code's behavior. This is needed to
distinguish between machines with a vector shift that takes a scalar for the
shift amount vs. machines that take a vector for the shift amount. */
enum optab_subtype
{
optab_default,
optab_scalar,
optab_vector
};
/* Passed to expand_simple_binop and expand_binop to say which options
to try to use if the requested operation can't be open-coded on the
requisite mode. Either OPTAB_LIB or OPTAB_LIB_WIDEN says try using
a library call. Either OPTAB_WIDEN or OPTAB_LIB_WIDEN says try
using a wider mode. OPTAB_MUST_WIDEN says try widening and don't
try anything else. */
enum optab_methods
{
OPTAB_DIRECT,
OPTAB_LIB,
OPTAB_WIDEN,
OPTAB_LIB_WIDEN,
OPTAB_MUST_WIDEN
};
/* Return the optab used for computing the given operation on the type given by
the second argument. The third argument distinguishes between the types of
vector shifts and rotates */
extern optab optab_for_tree_code (enum tree_code, const_tree, enum optab_subtype);
/* Given an optab that reduces a vector to a scalar, find instead the old
optab that produces a vector with the reduction result in one element,
for a tree with the specified type. */
extern optab scalar_reduc_to_vector (optab, const_tree type);
extern rtx expand_widen_pattern_expr (struct separate_ops *, rtx , rtx , rtx,
rtx, int);
extern rtx expand_ternary_op (machine_mode mode, optab ternary_optab,
rtx op0, rtx op1, rtx op2, rtx target,
int unsignedp);
extern rtx simplify_expand_binop (machine_mode mode, optab binoptab,
rtx op0, rtx op1, rtx target, int unsignedp,
enum optab_methods methods);
extern bool force_expand_binop (machine_mode, optab, rtx, rtx, rtx, int,
enum optab_methods);
/* Generate code for VEC_RSHIFT_EXPR. */
extern rtx expand_vec_shift_expr (struct separate_ops *, rtx);
/* Generate code for a simple binary or unary operation. "Simple" in
this case means "can be unambiguously described by a (mode, code)
pair and mapped to a single optab." */
extern rtx expand_simple_binop (machine_mode, enum rtx_code, rtx,
rtx, rtx, int, enum optab_methods);
/* Expand a binary operation given optab and rtx operands. */
extern rtx expand_binop (machine_mode, optab, rtx, rtx, rtx, int,
enum optab_methods);
/* Expand a binary operation with both signed and unsigned forms. */
extern rtx sign_expand_binop (machine_mode, optab, optab, rtx, rtx,
rtx, int, enum optab_methods);
/* Generate code to perform an operation on one operand with two results. */
extern int expand_twoval_unop (optab, rtx, rtx, rtx, int);
/* Generate code to perform an operation on two operands with two results. */
extern int expand_twoval_binop (optab, rtx, rtx, rtx, rtx, int);
/* Generate code to perform an operation on two operands with two
results, using a library function. */
extern bool expand_twoval_binop_libfunc (optab, rtx, rtx, rtx, rtx,
enum rtx_code);
extern rtx expand_simple_unop (machine_mode, enum rtx_code, rtx, rtx,
int);
/* Expand a unary arithmetic operation given optab rtx operand. */
extern rtx expand_unop (machine_mode, optab, rtx, rtx, int);
/* Expand the absolute value operation. */
extern rtx expand_abs_nojump (machine_mode, rtx, rtx, int);
extern rtx expand_abs (machine_mode, rtx, rtx, int, int);
/* Expand the one's complement absolute value operation. */
extern rtx expand_one_cmpl_abs_nojump (machine_mode, rtx, rtx);
/* Expand the copysign operation. */
extern rtx expand_copysign (rtx, rtx, rtx);
/* Generate an instruction with a given INSN_CODE with an output and
an input. */
extern bool maybe_emit_unop_insn (enum insn_code, rtx, rtx, enum rtx_code);
extern void emit_unop_insn (enum insn_code, rtx, rtx, enum rtx_code);
/* Emit code to make a call to a constant function or a library call. */
extern void emit_libcall_block (rtx, rtx, rtx, rtx);
/* The various uses that a comparison can have; used by can_compare_p:
jumps, conditional moves, store flag operations. */
enum can_compare_purpose
{
ccp_jump,
ccp_cmov,
ccp_store_flag
};
/* Nonzero if a compare of mode MODE can be done straightforwardly
(without splitting it into pieces). */
extern int can_compare_p (enum rtx_code, machine_mode,
enum can_compare_purpose);
extern rtx prepare_operand (enum insn_code, rtx, int, machine_mode, extern rtx prepare_operand (enum insn_code, rtx, int, machine_mode,
machine_mode, int); machine_mode, int);
/* Emit a pair of rtl insns to compare two rtx's and to jump
to a label if the comparison is true. */
extern void emit_cmp_and_jump_insns (rtx, rtx, enum rtx_code, rtx,
machine_mode, int, rtx, int prob=-1);
/* Generate code to indirectly jump to a location given in the rtx LOC. */
extern void emit_indirect_jump (rtx);
#include "insn-config.h"
#ifndef GCC_INSN_CONFIG_H
#error "insn-config.h must be included before optabs.h"
#endif
#ifdef HAVE_conditional_move
/* Emit a conditional move operation. */
rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, machine_mode,
rtx, rtx, machine_mode, int);
/* Return nonzero if the conditional move is supported. */
int can_conditionally_move_p (machine_mode mode);
#endif
rtx emit_conditional_add (rtx, enum rtx_code, rtx, rtx, machine_mode,
rtx, rtx, machine_mode, int);
/* Create but don't emit one rtl instruction to perform certain operations.
Modes must match; operands must meet the operation's predicates.
Likewise for subtraction and for just copying. */
extern rtx gen_add2_insn (rtx, rtx);
extern rtx gen_add3_insn (rtx, rtx, rtx);
extern int have_add2_insn (rtx, rtx);
extern rtx gen_addptr3_insn (rtx, rtx, rtx);
extern int have_addptr3_insn (rtx, rtx, rtx);
extern rtx gen_sub2_insn (rtx, rtx);
extern rtx gen_sub3_insn (rtx, rtx, rtx);
extern int have_sub2_insn (rtx, rtx);
/* Return the INSN_CODE to use for an extend operation. */
extern enum insn_code can_extend_p (machine_mode, machine_mode, int);
/* Generate the body of an insn to extend Y (with mode MFROM)
into X (with mode MTO). Do zero-extension if UNSIGNEDP is nonzero. */
extern rtx gen_extend_insn (rtx, rtx, machine_mode,
machine_mode, int);
/* Return the insn_code for a FLOAT_EXPR. */
enum insn_code can_float_p (machine_mode, machine_mode, int);
/* Check whether an operation represented by the code CODE is a
convert operation that is supported by the target platform in
vector form */
bool supportable_convert_operation (enum tree_code, tree, tree, tree *,
enum tree_code *);
/* Generate code for a FLOAT_EXPR. */
extern void expand_float (rtx, rtx, int);
/* Generate code for a FIX_EXPR. */
extern void expand_fix (rtx, rtx, int);
/* Generate code for a FIXED_CONVERT_EXPR. */
extern void expand_fixed_convert (rtx, rtx, int, int);
/* Generate code for float to integral conversion. */
extern bool expand_sfix_optab (rtx, rtx, convert_optab);
/* Report whether the machine description contains an insn which can
perform the operation described by CODE and MODE. */
extern int have_insn_for (enum rtx_code, machine_mode);
extern void gen_int_libfunc (optab, const char *, char, machine_mode); extern void gen_int_libfunc (optab, const char *, char, machine_mode);
extern void gen_fp_libfunc (optab, const char *, char, machine_mode); extern void gen_fp_libfunc (optab, const char *, char, machine_mode);
@ -542,7 +470,102 @@ extern void gen_satfract_conv_libfunc (convert_optab, const char *,
extern void gen_satfractuns_conv_libfunc (convert_optab, const char *, extern void gen_satfractuns_conv_libfunc (convert_optab, const char *,
machine_mode, machine_mode,
machine_mode); machine_mode);
/* Build a decl for a libfunc named NAME. */
extern tree build_libfunc_function (const char *);
/* Call this to initialize an optab function entry. */
extern rtx init_one_libfunc (const char *);
extern rtx set_user_assembler_libfunc (const char *, const char *);
/* Call this to reset the function entry for one optab. */
extern void set_optab_libfunc (optab, machine_mode, const char *);
extern void set_conv_libfunc (convert_optab, machine_mode,
machine_mode, const char *);
/* Call this once to initialize the contents of the optabs
appropriately for the current target machine. */
extern void init_optabs (void);
extern void init_tree_optimization_optabs (tree); extern void init_tree_optimization_optabs (tree);
/* Call this to install all of the __sync libcalls up to size MAX. */
extern void init_sync_libfuncs (int max);
/* Generate a conditional trap instruction. */
extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
/* Return true if target supports vector operations for VEC_PERM_EXPR. */
extern bool can_vec_perm_p (machine_mode, bool, const unsigned char *);
/* Generate code for VEC_PERM_EXPR. */
extern rtx expand_vec_perm (machine_mode, rtx, rtx, rtx, rtx);
/* Return tree if target supports vector operations for COND_EXPR. */
bool expand_vec_cond_expr_p (tree, tree);
/* Generate code for VEC_COND_EXPR. */
extern rtx expand_vec_cond_expr (tree, tree, tree, tree, rtx);
/* Return non-zero if target supports a given highpart multiplication. */
extern int can_mult_highpart_p (machine_mode, bool);
/* Generate code for MULT_HIGHPART_EXPR. */
extern rtx expand_mult_highpart (machine_mode, rtx, rtx, rtx, bool);
/* Return true if target supports vector masked load/store for mode. */
extern bool can_vec_mask_load_store_p (machine_mode, bool);
/* Return true if there is an inline compare and swap pattern. */
extern bool can_compare_and_swap_p (machine_mode, bool);
/* Return true if there is an inline atomic exchange pattern. */
extern bool can_atomic_exchange_p (machine_mode, bool);
extern rtx expand_sync_lock_test_and_set (rtx, rtx, rtx);
extern rtx expand_atomic_test_and_set (rtx, rtx, enum memmodel);
extern rtx expand_atomic_exchange (rtx, rtx, rtx, enum memmodel);
extern bool expand_atomic_compare_and_swap (rtx *, rtx *, rtx, rtx, rtx, bool,
enum memmodel, enum memmodel);
/* Generate memory barriers. */
extern void expand_mem_thread_fence (enum memmodel);
extern void expand_mem_signal_fence (enum memmodel);
rtx expand_atomic_load (rtx, rtx, enum memmodel);
rtx expand_atomic_store (rtx, rtx, enum memmodel, bool);
rtx expand_atomic_fetch_op (rtx, rtx, rtx, enum rtx_code, enum memmodel,
bool);
extern bool insn_operand_matches (enum insn_code icode, unsigned int opno,
rtx operand);
extern bool valid_multiword_target_p (rtx);
extern void create_convert_operand_from_type (struct expand_operand *op,
rtx value, tree type);
extern bool maybe_legitimize_operands (enum insn_code icode,
unsigned int opno, unsigned int nops,
struct expand_operand *ops);
extern rtx maybe_gen_insn (enum insn_code icode, unsigned int nops,
struct expand_operand *ops);
extern bool maybe_expand_insn (enum insn_code icode, unsigned int nops,
struct expand_operand *ops);
extern bool maybe_expand_jump_insn (enum insn_code icode, unsigned int nops,
struct expand_operand *ops);
extern void expand_insn (enum insn_code icode, unsigned int nops,
struct expand_operand *ops);
extern void expand_jump_insn (enum insn_code icode, unsigned int nops,
struct expand_operand *ops);
/* Enumerates the possible extraction_insn operations. */
enum extraction_pattern { EP_insv, EP_extv, EP_extzv };
extern bool get_best_reg_extraction_insn (extraction_insn *,
enum extraction_pattern,
unsigned HOST_WIDE_INT,
machine_mode);
extern bool get_best_mem_extraction_insn (extraction_insn *,
enum extraction_pattern,
HOST_WIDE_INT, HOST_WIDE_INT,
machine_mode);
extern bool lshift_cheap_p (bool); extern bool lshift_cheap_p (bool);
#endif /* GCC_OPTABS_H */ #endif /* GCC_OPTABS_H */

View File

@ -35,6 +35,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "regs.h" #include "regs.h"
#include "predict.h" #include "predict.h"

View File

@ -242,8 +242,8 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h" #include "recog.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "target.h" #include "target.h"
#include "optabs.h"
#include "insn-codes.h" #include "insn-codes.h"
#include "optabs.h"
#include "rtlhooks-def.h" #include "rtlhooks-def.h"
#include "params.h" #include "params.h"
#include "tree-pass.h" #include "tree-pass.h"

View File

@ -96,6 +96,7 @@ a register with any other reload. */
#include "tm_p.h" #include "tm_p.h"
#include "insn-config.h" #include "insn-config.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "recog.h" #include "recog.h"
#include "dominance.h" #include "dominance.h"

View File

@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "regs.h" #include "regs.h"
#include "addresses.h" #include "addresses.h"

View File

@ -38,6 +38,7 @@ along with GCC; see the file COPYING3. If not see
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "regs.h" #include "regs.h"

View File

@ -37,6 +37,8 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h" #include "machmode.h"
#include "input.h" #include "input.h"
#include "function.h" #include "function.h"
#include "insn-codes.h"
#include "optabs.h"
#include "expr.h" #include "expr.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "ggc.h" #include "ggc.h"

View File

@ -49,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "output.h" #include "output.h"
#include "langhooks.h" #include "langhooks.h"
#include "predict.h" #include "predict.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "target.h" #include "target.h"
#include "cfganal.h" #include "cfganal.h"

View File

@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "reload.h" #include "reload.h"
#include "expmed.h" #include "expmed.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "libfuncs.h" #include "libfuncs.h"
#include "cfgloop.h" #include "cfgloop.h"

View File

@ -69,6 +69,7 @@ along with GCC; see the file COPYING3. If not see
#include "target-def.h" #include "target-def.h"
#include "regs.h" #include "regs.h"
#include "reload.h" #include "reload.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "recog.h" #include "recog.h"
#include "intl.h" #include "intl.h"
@ -78,7 +79,6 @@ along with GCC; see the file COPYING3. If not see
#include "gimplify.h" #include "gimplify.h"
#include "stringpool.h" #include "stringpool.h"
#include "tree-ssanames.h" #include "tree-ssanames.h"
#include "insn-codes.h"
bool bool

View File

@ -95,6 +95,7 @@ along with GCC; see the file COPYING3. If not see
#include "ipa-reference.h" #include "ipa-reference.h"
#include "ipa-prop.h" #include "ipa-prop.h"
#include "gcse.h" #include "gcse.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#if defined(DBX_DEBUGGING_INFO) || defined(XCOFF_DEBUGGING_INFO) #if defined(DBX_DEBUGGING_INFO) || defined(XCOFF_DEBUGGING_INFO)

View File

@ -125,6 +125,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pass.h" #include "tree-pass.h"
#include "dbgcnt.h" #include "dbgcnt.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
/* List of basic blocks in if-conversion-suitable order. */ /* List of basic blocks in if-conversion-suitable order. */

View File

@ -60,6 +60,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic.h" #include "diagnostic.h"
#include "expr.h" #include "expr.h"
#include "cfgloop.h" #include "cfgloop.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "tree-ssa-propagate.h" #include "tree-ssa-propagate.h"
#include "tree-ssa-dom.h" #include "tree-ssa-dom.h"

View File

@ -65,6 +65,7 @@ along with GCC; see the file COPYING3. If not see
/* FIXME: Needed for optabs, but this should all be moved to a TBD interface /* FIXME: Needed for optabs, but this should all be moved to a TBD interface
between the GIMPLE and RTL worlds. */ between the GIMPLE and RTL worlds. */
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "recog.h" #include "recog.h"

View File

@ -129,6 +129,7 @@ along with GCC; see the file COPYING3. If not see
/* FIXME: RTL headers have to be included here for optabs. */ /* FIXME: RTL headers have to be included here for optabs. */
#include "rtl.h" /* Because optabs.h wants enum rtx_code. */ #include "rtl.h" /* Because optabs.h wants enum rtx_code. */
#include "expr.h" /* Because optabs.h wants sepops. */ #include "expr.h" /* Because optabs.h wants sepops. */
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
/* This structure represents one basic block that either computes a /* This structure represents one basic block that either computes a

View File

@ -62,6 +62,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-pretty-print.h" #include "gimple-pretty-print.h"
#include "insn-config.h" #include "insn-config.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "tree-scalar-evolution.h" #include "tree-scalar-evolution.h"
#include "tree-inline.h" #include "tree-inline.h"

View File

@ -73,6 +73,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "builtins.h" #include "builtins.h"
#include "gimplify.h" #include "gimplify.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
/* This is a simple global reassociation pass. It is, in part, based /* This is a simple global reassociation pass. It is, in part, based

View File

@ -71,6 +71,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
/* Need to include expr.h and optabs.h for lshift_cheap_p. */ /* Need to include expr.h and optabs.h for lshift_cheap_p. */
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
/* Maximum number of case bit tests. /* Maximum number of case bit tests.

View File

@ -69,6 +69,7 @@ along with GCC; see the file COPYING3. If not see
#include "cgraph.h" #include "cgraph.h"
/* Need to include rtl.h, expr.h, etc. for optabs. */ /* Need to include rtl.h, expr.h, etc. for optabs. */
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "builtins.h" #include "builtins.h"
#include "varasm.h" #include "varasm.h"

View File

@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
/* Need to include rtl.h, expr.h, etc. for optabs. */ /* Need to include rtl.h, expr.h, etc. for optabs. */
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"

View File

@ -59,6 +59,7 @@ along with GCC; see the file COPYING3. If not see
#include "cfgloop.h" #include "cfgloop.h"
#include "expr.h" #include "expr.h"
#include "recog.h" #include "recog.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "params.h" #include "params.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"

View File

@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-ssanames.h" #include "tree-ssanames.h"
#include "cfgloop.h" #include "cfgloop.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "params.h" #include "params.h"
#include "tree-data-ref.h" #include "tree-data-ref.h"

View File

@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. If not see
#include "cfgloop.h" #include "cfgloop.h"
#include "expr.h" #include "expr.h"
#include "recog.h" /* FIXME: for insn_data */ #include "recog.h" /* FIXME: for insn_data */
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "tree-vectorizer.h" #include "tree-vectorizer.h"
#include "langhooks.h" #include "langhooks.h"

View File

@ -60,6 +60,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-scalar-evolution.h" #include "tree-scalar-evolution.h"
#include "expr.h" #include "expr.h"
#include "recog.h" /* FIXME: for insn_data */ #include "recog.h" /* FIXME: for insn_data */
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "diagnostic-core.h" #include "diagnostic-core.h"
#include "tree-vectorizer.h" #include "tree-vectorizer.h"

View File

@ -69,6 +69,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-chrec.h" #include "tree-chrec.h"
#include "tree-ssa-threadupdate.h" #include "tree-ssa-threadupdate.h"
#include "expr.h" #include "expr.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "tree-ssa-threadedge.h" #include "tree-ssa-threadedge.h"
#include "wide-int.h" #include "wide-int.h"

View File

@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h" #include "flags.h"
#include "insn-config.h" #include "insn-config.h"
#include "recog.h" #include "recog.h"
#include "insn-codes.h"
#include "optabs.h" #include "optabs.h"
#include "regs.h" #include "regs.h"
#include "tree-ssa-alias.h" #include "tree-ssa-alias.h"