diff --git a/src/build.d b/src/build.d
index 151e10c737c0..c7a9eb9357f0 100755
--- a/src/build.d
+++ b/src/build.d
@@ -235,36 +235,6 @@ DFLAGS=-I%@P%/../../../../../druntime/import -I%@P%/../../../../../phobos -L-L%@
return new DependencyRef(dependency);
});
-/// Returns: the dependency that builds and executes the optabgen utility
-alias opTabGen = memoize!(function() {
- auto opTabFiles = ["tytab.d"];
- auto opTabFilesBin = opTabFiles.map!(e => env["G"].buildPath(e)).array;
- auto opTabBin = env["G"].buildPath("optabgen").exeName;
- auto opTabSourceFile = env["C"].buildPath("optabgen.d");
-
- auto commandFunction = (){
- auto args = [env["HOST_DMD_RUN"], opTabSourceFile, "-of" ~ opTabBin];
- args ~= flags["DFLAGS"];
-
- writefln("(DC) OPTABGEN %s", opTabSourceFile.baseName);
- args.runCanThrow;
-
- writefln("(RUN) OPTABBIN %-(%s, %)", opTabFiles);
- [opTabBin].runCanThrow;
-
- // move the generated files to the generated folder
- opTabFiles.map!(a => srcDir.buildPath(a)).zip(opTabFilesBin).each!(a => a.expand.rename);
- }; // defined separately to support older D compilers
- Dependency dependency = {
- name: "optabgen",
- description: "Generate source files for the backend",
- targets: opTabFilesBin,
- sources: [opTabSourceFile],
- commandFunction: commandFunction,
- };
- return new DependencyRef(dependency);
-});
-
/// Returns: the dependencies that build the D backend
alias dBackend = memoize!(function () {
Dependency dependency = {
@@ -272,7 +242,6 @@ alias dBackend = memoize!(function () {
target: env["G"].buildPath("dbackend").objName,
sources: sources.backend,
msg: "(DC) D_BACK_OBJS %-(%s, %)".format(sources.backend.map!(e => e.baseName).array),
- deps: [opTabGen],
command: [
env["HOST_DMD_RUN"],
"-c",
@@ -291,7 +260,7 @@ alias backend = memoize!(function() {
msg: "(LIB) %s".format("BACKEND".libName),
sources: [ env["G"].buildPath("dbackend").objName ],
target: env["G"].buildPath("backend").libName,
- deps: [opTabGen, dBackend],
+ deps: [dBackend],
command: [env["HOST_DMD_RUN"], env["MODEL_FLAG"], "-lib", "-of$@", "$<"]
};
return new DependencyRef(dependency);
@@ -758,7 +727,7 @@ auto sourceFiles()
backend:
dirEntries(env["C"], "*.d", SpanMode.shallow)
.map!(e => e.name)
- .filter!(e => !e.baseName.among("dt.d", "obj.d", "optabgen.d"))
+ .filter!(e => !e.baseName.among("dt.d", "obj.d"))
.array,
backendHeaders: [
// can't be built with -betterC
diff --git a/src/dmd/backend/optabgen.d b/src/dmd/backend/optabgen.d
deleted file mode 100644
index a73444396e0e..000000000000
--- a/src/dmd/backend/optabgen.d
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * Compiler implementation of the
- * $(LINK2 http://www.dlang.org, D programming language).
- *
- * Copyright: Copyright (C) 1985-1998 by Symantec
- * Copyright (C) 2000-2019 by The D Language Foundation, All Rights Reserved
- * Authors: $(LINK2 http://www.digitalmars.com, Walter Bright)
- * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
- * Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/backend/optabgen.d, backend/optabgen.d)
- */
-
-module optabgen;
-
-/* Generate op-code tables
- * Creates optab.d,tytab.d,debtab.d
- */
-
-import core.stdc.stdio;
-import core.stdc.stdlib;
-
-import dmd.backend.cc;
-import dmd.backend.cdef;
-import dmd.backend.oper;
-import dmd.backend.ty;
-
-nothrow:
-
-FILE *fdeb;
-
-int main()
-{
- printf("OPTABGEN... generating files\n");
- dotytab();
- return 0;
-}
-
-
-/********************************************************
- */
-
-void dotytab()
-{
- struct TypeTab
- {
- string str; /* name of type */
- tym_t ty; /* TYxxxx */
- tym_t unsty; /* conversion to unsigned type */
- tym_t relty; /* type for relaxed type checking */
- int size;
- int debtyp; /* Codeview 1 type in debugger record */
- int debtyp4; /* Codeview 4 type in debugger record */
- }
- static TypeTab[] typetab =
- [
-/* Note that chars are signed, here */
-{"bool", TYbool, TYbool, TYchar, 1, 0x80, 0x30},
-{"char", TYchar, TYuchar, TYchar, 1, 0x80, 0x70},
-{"signed char", TYschar, TYuchar, TYchar, 1, 0x80, 0x10},
-{"unsigned char",TYuchar, TYuchar, TYchar, 1, 0x84, 0x20},
-{"char16_t", TYchar16, TYchar16, TYint, 2, 0x85, 0x21},
-{"short", TYshort, TYushort, TYint, SHORTSIZE, 0x81,0x11},
-{"wchar_t", TYwchar_t, TYwchar_t, TYint, SHORTSIZE, 0x85,0x71},
-{"unsigned short",TYushort, TYushort, TYint, SHORTSIZE, 0x85,0x21},
-
-// These values are adjusted for 32 bit ints in cv_init() and util_set32()
-{"enum", TYenum, TYuint, TYint, -1, 0x81,0x72},
-{"int", TYint, TYuint, TYint, 2, 0x81,0x72},
-{"unsigned", TYuint, TYuint, TYint, 2, 0x85,0x73},
-
-{"long", TYlong, TYulong, TYlong, LONGSIZE, 0x82,0x12},
-{"unsigned long",TYulong, TYulong, TYlong, LONGSIZE, 0x86,0x22},
-{"dchar", TYdchar, TYdchar, TYlong, 4, 0x86,0x22},
-{"long long", TYllong, TYullong, TYllong, LLONGSIZE, 0x82,0x13},
-{"uns long long",TYullong, TYullong, TYllong, LLONGSIZE, 0x86,0x23},
-{"cent", TYcent, TYucent, TYcent, 16, 0x82,0x603},
-{"ucent", TYucent, TYucent, TYcent, 16, 0x86,0x603},
-{"float", TYfloat, TYfloat, TYfloat, FLOATSIZE, 0x88,0x40},
-{"double", TYdouble, TYdouble, TYdouble, DOUBLESIZE,0x89,0x41},
-{"double alias", TYdouble_alias, TYdouble_alias, TYdouble_alias,8, 0x89,0x41},
-{"long double", TYldouble, TYldouble, TYldouble, -1, 0x89,0x42},
-
-{"imaginary float", TYifloat, TYifloat, TYifloat, FLOATSIZE, 0x88,0x40},
-{"imaginary double", TYidouble, TYidouble, TYidouble, DOUBLESIZE,0x89,0x41},
-{"imaginary long double",TYildouble, TYildouble, TYildouble, -1,0x89,0x42},
-
-{"complex float", TYcfloat, TYcfloat, TYcfloat, 2*FLOATSIZE, 0x88,0x50},
-{"complex double", TYcdouble, TYcdouble, TYcdouble, 2*DOUBLESIZE,0x89,0x51},
-{"complex long double", TYcldouble, TYcldouble, TYcldouble, -1,0x89,0x52},
-
-{"float[4]", TYfloat4, TYfloat4, TYfloat4, 16, 0, 0},
-{"double[2]", TYdouble2, TYdouble2, TYdouble2, 16, 0, 0},
-{"signed char[16]", TYschar16, TYuchar16, TYschar16, 16, 0, 0},
-{"unsigned char[16]", TYuchar16, TYuchar16, TYuchar16, 16, 0, 0},
-{"short[8]", TYshort8, TYushort8, TYshort8, 16, 0, 0},
-{"unsigned short[8]", TYushort8, TYushort8, TYushort8, 16, 0, 0},
-{"long[4]", TYlong4, TYulong4, TYlong4, 16, 0, 0},
-{"unsigned long[4]", TYulong4, TYulong4, TYulong4, 16, 0, 0},
-{"long long[2]", TYllong2, TYullong2, TYllong2, 16, 0, 0},
-{"unsigned long long[2]", TYullong2, TYullong2, TYullong2, 16, 0, 0},
-
-{"float[8]", TYfloat8, TYfloat8, TYfloat8, 32, 0, 0},
-{"double[4]", TYdouble4, TYdouble4, TYdouble4, 32, 0, 0},
-{"signed char[32]", TYschar32, TYuchar32, TYschar32, 32, 0, 0},
-{"unsigned char[32]", TYuchar32, TYuchar32, TYuchar32, 32, 0, 0},
-{"short[16]", TYshort16, TYushort16, TYshort16, 32, 0, 0},
-{"unsigned short[16]", TYushort16, TYushort16, TYushort16, 32, 0, 0},
-{"long[8]", TYlong8, TYulong8, TYlong8, 32, 0, 0},
-{"unsigned long[8]", TYulong8, TYulong8, TYulong8, 32, 0, 0},
-{"long long[4]", TYllong4, TYullong4, TYllong4, 32, 0, 0},
-{"unsigned long long[4]", TYullong4, TYullong4, TYullong4, 32, 0, 0},
-
-{"float[16]", TYfloat16, TYfloat16, TYfloat16, 64, 0, 0},
-{"double[8]", TYdouble8, TYdouble8, TYdouble8, 64, 0, 0},
-{"signed char[64]", TYschar64, TYuchar64, TYschar64, 64, 0, 0},
-{"unsigned char[64]", TYuchar64, TYuchar64, TYuchar64, 64, 0, 0},
-{"short[32]", TYshort32, TYushort32, TYshort32, 64, 0, 0},
-{"unsigned short[32]", TYushort32, TYushort32, TYushort32, 64, 0, 0},
-{"long[16]", TYlong16, TYulong16, TYlong16, 64, 0, 0},
-{"unsigned long[16]", TYulong16, TYulong16, TYulong16, 64, 0, 0},
-{"long long[8]", TYllong8, TYullong8, TYllong8, 64, 0, 0},
-{"unsigned long long[8]", TYullong8, TYullong8, TYullong8, 64, 0, 0},
-
-{"nullptr_t", TYnullptr, TYnullptr, TYptr, 2, 0x20, 0x100},
-{"*", TYnptr, TYnptr, TYnptr, 2, 0x20, 0x100},
-{"&", TYref, TYref, TYref, -1, 0, 0},
-{"void", TYvoid, TYvoid, TYvoid, -1, 0x85, 3},
-{"struct", TYstruct, TYstruct, TYstruct, -1, 0, 0},
-{"array", TYarray, TYarray, TYarray, -1, 0x78, 0},
-{"C func", TYnfunc, TYnfunc, TYnfunc, -1, 0x63, 0},
-{"Pascal func", TYnpfunc, TYnpfunc, TYnpfunc, -1, 0x74, 0},
-{"std func", TYnsfunc, TYnsfunc, TYnsfunc, -1, 0x63, 0},
-{"*", TYptr, TYptr, TYptr, 2, 0x20, 0x100},
-{"member func", TYmfunc, TYmfunc, TYmfunc, -1, 0x64, 0},
-{"D func", TYjfunc, TYjfunc, TYjfunc, -1, 0x74, 0},
-{"C func", TYhfunc, TYhfunc, TYhfunc, -1, 0, 0},
-{"__near &", TYnref, TYnref, TYnref, 2, 0, 0},
-
-{"__ss *", TYsptr, TYsptr, TYsptr, 2, 0x20, 0x100},
-{"__cs *", TYcptr, TYcptr, TYcptr, 2, 0x20, 0x100},
-{"__far16 *", TYf16ptr, TYf16ptr, TYf16ptr, 4, 0x40, 0x200},
-{"__far *", TYfptr, TYfptr, TYfptr, 4, 0x40, 0x200},
-{"__huge *", TYhptr, TYhptr, TYhptr, 4, 0x40, 0x300},
-{"__handle *", TYvptr, TYvptr, TYvptr, 4, 0x40, 0x200},
-{"__immutable *", TYimmutPtr, TYimmutPtr,TYimmutPtr, 2, 0x20, 0x100},
-{"__shared *", TYsharePtr, TYsharePtr,TYsharePtr, 2, 0x20, 0x100},
-{"__fg *", TYfgPtr, TYfgPtr, TYfgPtr, 2, 0x20, 0x100},
-{"far C func", TYffunc, TYffunc, TYffunc, -1, 0x64, 0},
-{"far Pascal func", TYfpfunc, TYfpfunc, TYfpfunc, -1, 0x73, 0},
-{"far std func", TYfsfunc, TYfsfunc, TYfsfunc, -1, 0x64, 0},
-{"_far16 Pascal func", TYf16func, TYf16func, TYf16func, -1, 0x63, 0},
-{"sys func", TYnsysfunc, TYnsysfunc,TYnsysfunc, -1, 0x63, 0},
-{"far sys func", TYfsysfunc, TYfsysfunc,TYfsysfunc, -1, 0x64, 0},
-{"__far &", TYfref, TYfref, TYfref, 4, 0, 0},
-
-{"interrupt func", TYifunc, TYifunc, TYifunc, -1, 0x64, 0},
-{"memptr", TYmemptr, TYmemptr, TYmemptr, -1, 0, 0},
-{"ident", TYident, TYident, TYident, -1, 0, 0},
-{"template", TYtemplate, TYtemplate, TYtemplate, -1, 0, 0},
-{"vtshape", TYvtshape, TYvtshape, TYvtshape, -1, 0, 0},
- ];
-
- FILE *f;
- static tym_t[64 * 4] tytouns;
- static tym_t[TYMAX] _tyrelax;
- static tym_t[TYMAX] _tyequiv;
- static byte[64 * 4] _tysize;
- static ubyte[TYMAX] dttab;
- static ushort[TYMAX] dttab4;
- int i;
-
- f = fopen("tytab.d","w");
-
-/+
- for (i = 0; i < typetab.length; i++)
- { _tysize[typetab[i].ty | 0x00] = cast(byte)typetab[i].size;
- /*printf("_tysize[%d] = %d\n",typetab[i].ty,typetab[i].size);*/
- }
- fprintf(f,"__gshared byte[256] _tysize =\n[ ");
- for (i = 0; i < _tysize.length; i++)
- { fprintf(f,"%d,",_tysize[i]);
- if ((i & 7) == 7 && i < _tysize.length - 1)
- fprintf(f,"\n ");
- }
- fprintf(f,"\n];\n");
-
- for (i = 0; i < _tysize.length; i++)
- _tysize[i] = 0;
- for (i = 0; i < typetab.length; i++)
- { byte sz = cast(byte)typetab[i].size;
- switch (typetab[i].ty)
- {
- case TYldouble:
- case TYildouble:
- case TYcldouble:
-static if (TARGET_OSX)
-{
- sz = 16;
-}
-else static if (TARGET_LINUX || TARGET_FREEBSD || TARGET_OPENBSD || TARGET_DRAGONFLYBSD || TARGET_SOLARIS)
-{
- sz = 4;
-}
-else static if (TARGET_WINDOS)
-{
- sz = 2;
-}
-else
-{
- static assert(0, "fix this");
-}
- break;
-
- case TYcent:
- case TYucent:
- sz = 8;
- break;
-
- default:
- break;
- }
- _tysize[typetab[i].ty | 0x00] = sz;
- /*printf("_tyalignsize[%d] = %d\n",typetab[i].ty,typetab[i].size);*/
- }
-
- fprintf(f,"__gshared byte[256] _tyalignsize =\n[ ");
- for (i = 0; i < _tysize.length; i++)
- { fprintf(f,"%d,",_tysize[i]);
- if ((i & 7) == 7 && i < _tysize.length - 1)
- fprintf(f,"\n ");
- }
- fprintf(f,"\n];\n");
-+/
- fclose(f);
-}
diff --git a/src/posix.mak b/src/posix.mak
index 6ba49b2f0874..3af072eeebbc 100644
--- a/src/posix.mak
+++ b/src/posix.mak
@@ -366,7 +366,6 @@ BACK_HDRS=$C/cc.d $C/cdef.d $C/cgcv.d $C/code.d $C/cv4.d $C/dt.d $C/el.d $C/glob
$C/dlist.d $C/melf.d $C/varstats.di $C/dt.d
BACK_SRC = \
- $C/optabgen.d \
$C/bcomplex.d $C/blockopt.d $C/cg.d $C/cg87.d $C/cgxmm.d \
$C/cgcod.d $C/cgcs.d $C/dcgcv.d $C/cgelem.d $C/cgen.d $C/cgobj.d \
$C/compress.d $C/cgreg.d $C/var.d $C/cgcse.d \
@@ -476,7 +475,6 @@ build-examples: $(EXAMPLES)
clean:
rm -Rf $(GENERATED)
- rm -f $(addprefix $D/backend/, $(optabgen_output))
@[ ! -d ${PGO_DIR} ] || echo You should issue manually: rm -rf ${PGO_DIR}
######## Download and install the last dmd buildable without dmd
@@ -508,19 +506,6 @@ export DEFAULT_DMD_CONF
$G/dmd.conf: $(SRC_MAKE)
echo "$$DEFAULT_DMD_CONF" > $@
-######## optabgen generates some source
-optabgen_output = tytab.d
-
-$G/optabgen: $C/optabgen.d $C/cc.d $C/oper.d $(HOST_DMD_PATH)
- $(HOST_DMD_RUN) -of$@ $(DFLAGS) $(MODEL_FLAG) $(BACK_MV) $<
- $G/optabgen
- mv $(optabgen_output) $G
-
-optabgen_files = $(addprefix $G/, $(optabgen_output))
-$(optabgen_files): optabgen.out
-.INTERMEDIATE: optabgen.out
-optabgen.out : $G/optabgen
-
######## VERSION
########################################################################
# The version file should be updated on every build
@@ -546,7 +531,7 @@ FORCE: ;
-include $(DEPS)
-$(G_DOBJS): $G/%.o: $C/%.d $(optabgen_files) posix.mak $(HOST_DMD_PATH)
+$(G_DOBJS): $G/%.o: $C/%.d posix.mak $(HOST_DMD_PATH)
@echo " (HOST_DMD_RUN) BACK_DOBJS $<"
$(HOST_DMD_RUN) -c -of$@ $(DFLAGS) $(MODEL_FLAG) $(BACK_BETTERC) $(BACK_DFLAGS) $<
diff --git a/src/vcbuild/dmd.vcxproj b/src/vcbuild/dmd.vcxproj
index 73bcb3bc8202..75ac6c849282 100644
--- a/src/vcbuild/dmd.vcxproj
+++ b/src/vcbuild/dmd.vcxproj
@@ -1,4 +1,4 @@
-
+
@@ -211,25 +211,12 @@
-
+
-
-
- Building and running $(IntDir)%(Filename).exe
- $(_DCompilerExe) -I.. -version=MARS -of"$(IntDir)generated\%(Filename).exe" "%(FullPath)"
-if errorlevel 1 exit /B %ERRORLEVEL%
-pushd $(IntDir)generated
-"%(Filename).exe"
-if errorlevel 1 exit /B %ERRORLEVEL%
-popd
- $(IntDir)generated\optab.d;$(IntDir)generated\debtab.d;$(IntDir)generated\cdxxx.d;$(IntDir)generated\elxxx.d;$(IntDir)generated\tytab.d;$(IntDir)generated\\fltables.d;%(Outputs)
- ..\dmd\backend\cc.d;..\dmd\backend\cdef.d;..\dmd\backend\oper.d;..\dmd\backend\ty.d;%(AdditionalInputs)
-
-
-
\ No newline at end of file
+
diff --git a/src/vcbuild/dmd.vcxproj.filters b/src/vcbuild/dmd.vcxproj.filters
index 98b401e36e1c..67ccfbfbfa9b 100644
--- a/src/vcbuild/dmd.vcxproj.filters
+++ b/src/vcbuild/dmd.vcxproj.filters
@@ -1,4 +1,4 @@
-
+
@@ -16,9 +16,4 @@
C++ Header Files
-
-
- Generator
-
-
-
\ No newline at end of file
+
diff --git a/src/win32.mak b/src/win32.mak
index 638d7c9a972b..ccd2d542445e 100644
--- a/src/win32.mak
+++ b/src/win32.mak
@@ -206,7 +206,7 @@ GLUESRC= \
$(GLUE_SRCS)
# D back end
-BACKSRC= $C\optabgen.d \
+BACKSRC= \
$C/code_stub.h $C/platform_stub.c \
$C\bcomplex.d $C\blockopt.d $C\cg.d $C\cg87.d $C\cgxmm.d \
$C\cgcod.d $C\cgcs.d $C\dcgcv.d $C\cgelem.d $C\cgen.d $C\cgobj.d \
@@ -326,7 +326,7 @@ $(TARGETEXE): $(DMD_SRCS) $(ROOT_SRCS) $(LIBS) $(STRING_IMPORT_FILES)
clean:
$(RD) /s /q $(GEN)
$(DEL) $D\msgs.h $D\msgs.c
- $(DEL) optabgen.exe parser_test.exe example_avg.exe
+ $(DEL) parser_test.exe example_avg.exe
$(DEL) $(TARGETEXE) $(DMDFRONTENDEXE) *.map *.obj *.exe
install: detab install-copy
@@ -392,16 +392,6 @@ $(TOOLS_DIR)\checkwhitespace.d:
$(HOST_DC) -Df$@ $<
############################## Generated Source ##############################
-OPTABGENOUTPUT = $G\tytab.d
-
-$(OPTABGENOUTPUT) : \
- $C\optabgen.d
- $(HOST_DC) -of$G\optabgen.exe -betterC $(DFLAGS) -mv=dmd.backend=$C $C\optabgen
- $G\optabgen.exe
- copy *.c "$G\"
- copy tytab.d "$G\"
- $(DEL) *.c
- $(DEL) tytab.d
$G\VERSION : ..\VERSION $G
copy ..\VERSION $@
@@ -423,13 +413,13 @@ $G/blockopt.obj : $C\blockopt.d
$(HOST_DC) -c -betterC -of$@ $(DFLAGS) -mv=dmd.backend=$C $C\blockopt
$G/cg.obj : $C\cg.d
- $(HOST_DC) -c -of$@ $(DFLAGS) -J$G -betterC -mv=dmd.backend=$C $C\cg
+ $(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\cg
$G/cg87.obj : $C\cg87.d
$(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\cg87
$G/cgcod.obj : $C\cgcod.d
- $(HOST_DC) -c -of$@ $(DFLAGS) -J$G -betterC -mv=dmd.backend=$C $C\cgcod
+ $(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\cgcod
$G/cgcs.obj : $C\cgcs.d
$(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\cgcs
@@ -441,7 +431,7 @@ $G/dcgcv.obj : $C\dcgcv.d
$(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\dcgcv
$G/cgelem.obj : $C\cgelem.d
- $(HOST_DC) -c -of$@ $(DFLAGS) -J$G -betterC -mv=dmd.backend=$C $C\cgelem
+ $(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\cgelem
$G/cgen.obj : $C\cgen.d
$(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\cgen
@@ -581,8 +571,8 @@ $G/dtype.obj : $C\dtype.d
$G/util2.obj : $C\util2.d
$(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\util2
-$G/var.obj : $C\var.d $G\tytab.d
- $(HOST_DC) -c -of$@ $(DFLAGS) -J$G -betterC -mv=dmd.backend=$C $C\var
+$G/var.obj : $C\var.d
+ $(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\var
$G/dvarstats.obj : $C\dvarstats.d
$(HOST_DC) -c -of$@ $(DFLAGS) -betterC -mv=dmd.backend=$C $C\dvarstats