From 304e21bc0e4ccf3efa3a62aefe94df2eaaeba232 Mon Sep 17 00:00:00 2001 From: William Moses Date: Tue, 23 Jan 2024 23:12:06 -0500 Subject: [PATCH] MLIR bazel build and test (#1618) * MLIR bazel build and test * Fix MLIR memory bug * fix * print errs * fix --- .github/workflows/enzyme-bazel.yml | 12 +- .github/workflows/enzyme-mlir.yml | 2 +- enzyme/BUILD | 257 ++++++++++++++++++ .../LinalgAutoDiffOpInterfaceImpl.cpp | 4 +- .../MLIR/Interfaces/EnzymeLogicReverse.cpp | 28 +- enzyme/WORKSPACE | 18 +- .../test/Integration/BatchMode/char-ptr.cpp | 2 +- enzyme/test/Integration/BatchMode/sqaure.cpp | 2 +- .../test/Integration/BatchMode/test_utils.h | 32 --- enzyme/test/Integration/ForwardMode/binops.c | 2 +- .../test/Integration/ForwardMode/customfwd.c | 2 +- enzyme/test/Integration/ForwardMode/eigen.cpp | 2 +- .../Integration/ForwardMode/fwdandrev.cpp | 2 +- enzyme/test/Integration/ForwardMode/loops.c | 2 +- .../Integration/ForwardMode/loopsdouble.c | 2 +- .../Integration/ForwardMode/loopstriple.c | 2 +- .../Integration/ForwardMode/mpi/mpi_bcast.c | 2 +- .../Integration/ForwardMode/mpi/mpi_reduce.c | 2 +- enzyme/test/Integration/ForwardMode/nofn.cpp | 2 +- .../Integration/ForwardMode/rosenbrock.cpp | 2 +- enzyme/test/Integration/ForwardMode/rwrloop.c | 2 +- enzyme/test/Integration/ForwardMode/sumtil.c | 2 +- enzyme/test/Integration/ForwardMode/sumtil2.c | 2 +- .../ForwardModeVector/test_utils.h | 32 --- .../Integration/ReverseMode/allocatedtape.c | 2 +- .../ReverseMode/allocatedtape_err.c | 2 +- .../test/Integration/ReverseMode/blas_gemm.c | 2 +- .../test/Integration/ReverseMode/blas_gemm2.c | 2 +- .../test/Integration/ReverseMode/boundissue.c | 2 +- .../test/Integration/ReverseMode/cachefwd.c | 2 +- enzyme/test/Integration/ReverseMode/cerr.cpp | 2 +- enzyme/test/Integration/ReverseMode/cin.cpp | 2 +- enzyme/test/Integration/ReverseMode/cmplx.cpp | 2 +- enzyme/test/Integration/ReverseMode/cout.cpp | 2 +- .../Integration/ReverseMode/customalloc.c | 2 +- .../Integration/ReverseMode/customcombined.c | 2 +- .../Integration/ReverseMode/customglob.cpp | 2 +- .../Integration/ReverseMode/customlog1p.c | 2 +- enzyme/test/Integration/ReverseMode/dbginfo.c | 2 +- .../ReverseMode/differential_pointer_return.c | 2 +- .../Integration/ReverseMode/eigensumsq.cpp | 2 +- .../ReverseMode/eigensumsqdyn-notmp.cpp | 2 +- .../Integration/ReverseMode/eigensumsqdyn.cpp | 2 +- .../Integration/ReverseMode/eigentensor.cpp | 2 +- .../ReverseMode/eigentensorfull.cpp | 2 +- .../ReverseMode/eigentensorreal.cpp | 2 +- enzyme/test/Integration/ReverseMode/fbuff.cpp | 2 +- .../test/Integration/ReverseMode/forrealloc.c | 2 +- enzyme/test/Integration/ReverseMode/frexp.c | 2 +- .../test/Integration/ReverseMode/fwdsolve.c | 2 +- .../ReverseMode/gradient-struct-return.c | 2 +- .../Integration/ReverseMode/headerremat.c | 2 +- .../test/Integration/ReverseMode/inactivefn.c | 2 +- .../Integration/ReverseMode/insertsort_sum.c | 2 +- .../ReverseMode/insertsort_sum_alt.c | 2 +- .../ReverseMode/insertsort_sum_min.c | 2 +- .../ReverseMode/integrateconst.cpp | 2 +- .../Integration/ReverseMode/integrateexp.cpp | 2 +- enzyme/test/Integration/ReverseMode/invsqrt.c | 2 +- enzyme/test/Integration/ReverseMode/loops.c | 2 +- .../Integration/ReverseMode/loopsdouble.c | 2 +- .../Integration/ReverseMode/loopsnested.c | 2 +- .../Integration/ReverseMode/loopstriple.c | 2 +- enzyme/test/Integration/ReverseMode/manydiv.c | 2 +- enzyme/test/Integration/ReverseMode/manymax.c | 2 +- enzyme/test/Integration/ReverseMode/map.cpp | 2 +- .../test/Integration/ReverseMode/metamalloc.c | 2 +- enzyme/test/Integration/ReverseMode/metarwr.c | 2 +- .../ReverseMode/mixedstruct1-old.c | 2 +- .../ReverseMode/mixedstruct1-simple.c | 2 +- .../ReverseMode/mixedstruct1-simplefda.c | 2 +- .../ReverseMode/mixedstruct1-simpleps.c | 2 +- .../ReverseMode/mixedstruct1-simpler.c | 2 +- .../ReverseMode/mixedstruct1-simplest.c | 2 +- .../Integration/ReverseMode/mixedstruct1-sp.c | 2 +- .../Integration/ReverseMode/mixedstruct1.c | 2 +- .../test/Integration/ReverseMode/mpi_bcast.c | 2 +- .../test/Integration/ReverseMode/mpi_reduce.c | 2 +- .../Integration/ReverseMode/multivecmax.cpp | 2 +- .../Integration/ReverseMode/multivecmaxC.c | 2 +- enzyme/test/Integration/ReverseMode/mycos.c | 4 +- enzyme/test/Integration/ReverseMode/omp.c | 2 +- enzyme/test/Integration/ReverseMode/omp2.c | 2 +- enzyme/test/Integration/ReverseMode/omp3.c | 2 +- enzyme/test/Integration/ReverseMode/omp6.c | 2 +- .../test/Integration/ReverseMode/omp_crit.c | 2 +- .../ReverseMode/omp_firstprivate.c | 2 +- enzyme/test/Integration/ReverseMode/omp_two.c | 2 +- .../test/Integration/ReverseMode/ompbound.c | 2 +- .../Integration/ReverseMode/perturbation.cpp | 2 +- .../Integration/ReverseMode/posix_memalign.c | 2 +- .../ReverseMode/posix_memalignfor.c | 2 +- .../Integration/ReverseMode/readwriteread.c | 2 +- enzyme/test/Integration/ReverseMode/recurse.c | 2 +- enzyme/test/Integration/ReverseMode/remat.c | 2 +- .../test/Integration/ReverseMode/remat2.cpp | 2 +- .../Integration/ReverseMode/rematSimple.c | 2 +- enzyme/test/Integration/ReverseMode/rwrloop.c | 2 +- enzyme/test/Integration/ReverseMode/rwrmeta.c | 2 +- .../ReverseMode/simpleeigen-made-part.cpp | 2 +- .../ReverseMode/simpleeigen-made.cpp | 2 +- .../Integration/ReverseMode/simpleeigen.cpp | 2 +- .../simpleeigenstatic-made-odd.cpp | 2 +- .../ReverseMode/simpleeigenstatic-made.cpp | 2 +- .../ReverseMode/simpleeigenstatic-sum.cpp | 2 +- .../ReverseMode/simpleeigenstatic-sumsq.cpp | 2 +- .../ReverseMode/simpleeigenstatic-vec.cpp | 2 +- .../ReverseMode/simpleeigenstatic.cpp | 2 +- .../Integration/ReverseMode/smallrealloc.c | 2 +- enzyme/test/Integration/ReverseMode/sret.cpp | 2 +- .../Integration/ReverseMode/subdoublestore.c | 2 +- enzyme/test/Integration/ReverseMode/sumtil.c | 2 +- enzyme/test/Integration/ReverseMode/sumtil2.c | 2 +- .../test/Integration/ReverseMode/taylorlog.c | 2 +- .../test/Integration/ReverseMode/test_utils.h | 39 --- enzyme/test/Integration/ReverseMode/vecmax.c | 2 +- .../test/Integration/ReverseMode/vecmax.cpp | 2 +- .../Integration/ReverseMode/virtualshadow.cpp | 2 +- .../ReverseMode/virtualshadow2.cpp | 2 +- .../ReverseMode/virtualshadow3.cpp | 2 +- enzyme/test/Integration/ReverseMode/wcout.cpp | 2 +- enzyme/test/Integration/Sparse/test_utils.h | 38 --- .../{ForwardMode => }/test_utils.h | 0 enzyme/test/lit.cfg.py | 2 + enzyme/test/lit.site.cfg.py.in | 36 ++- 125 files changed, 451 insertions(+), 275 deletions(-) delete mode 100644 enzyme/test/Integration/BatchMode/test_utils.h delete mode 100644 enzyme/test/Integration/ForwardModeVector/test_utils.h delete mode 100644 enzyme/test/Integration/ReverseMode/test_utils.h delete mode 100644 enzyme/test/Integration/Sparse/test_utils.h rename enzyme/test/Integration/{ForwardMode => }/test_utils.h (100%) diff --git a/.github/workflows/enzyme-bazel.yml b/.github/workflows/enzyme-bazel.yml index 273bb9b08082..38e27e4edcc1 100644 --- a/.github/workflows/enzyme-bazel.yml +++ b/.github/workflows/enzyme-bazel.yml @@ -26,13 +26,21 @@ jobs: timeout-minutes: 500 steps: + - name: Prep + run: | + python -m pip install lit + - uses: actions/checkout@v4 - uses: actions/checkout@v4 with: repository: 'llvm/llvm-project' path: 'llvm-project' - - name: cmake + - name: Build + run: | + cd enzyme + bazel build :EnzymeStatic :enzymemlir-opt + - name: Test run: | cd enzyme - bazel build :EnzymeStatic + bazel test --test_output=errors ... diff --git a/.github/workflows/enzyme-mlir.yml b/.github/workflows/enzyme-mlir.yml index ecf909bb5b32..b4c581a3a720 100644 --- a/.github/workflows/enzyme-mlir.yml +++ b/.github/workflows/enzyme-mlir.yml @@ -36,7 +36,7 @@ jobs: - uses: actions/checkout@v3 with: repository: 'llvm/llvm-project' - ref: '5ed11e767c0c39a3bc8e035588e7a383849d46a8' + ref: 'bc82cfb38d83f1afeb2c290aa472c2e2e88919cb' path: 'llvm-project' - name: Get MLIR commit hash diff --git a/enzyme/BUILD b/enzyme/BUILD index 3c97327ad1b5..42903efaef60 100644 --- a/enzyme/BUILD +++ b/enzyme/BUILD @@ -1,4 +1,7 @@ load("@llvm-project//llvm:tblgen.bzl", "gentbl") +load("@llvm-project//mlir:tblgen.bzl", "gentbl_cc_library", "td_library") +load("@llvm-project//llvm:lit_test.bzl", "lit_test", "package_path") +load("@bazel_skylib//rules:expand_template.bzl", "expand_template") licenses(["notice"]) @@ -191,6 +194,7 @@ cc_library( "@llvm-project//llvm:TransformUtils", "@llvm-project//llvm:config", ], + alwayslink = 1 ) cc_binary( @@ -213,3 +217,256 @@ genrule( cmd = "cp $< $@", output_to_bindir = 1, ) + +td_library( + name = "EnzymeDialectTdFiles", + srcs = [ + "Enzyme/MLIR/Dialect/Dialect.td", + ], + deps = [ + "@llvm-project//mlir:OpBaseTdFiles", + "@llvm-project//mlir:SideEffectInterfacesTdFiles", + "@llvm-project//mlir:ViewLikeInterfaceTdFiles", + "@llvm-project//mlir:FunctionInterfacesTdFiles", + "@llvm-project//mlir:ControlFlowInterfacesTdFiles", + "@llvm-project//mlir:LoopLikeInterfaceTdFiles", + ] +) + +gentbl_cc_library( + name = "EnzymeOpsIncGen", + tbl_outs = [ + ( + ["-gen-op-decls"], + "Enzyme/MLIR/Dialect/EnzymeOps.h.inc", + ), + ( + ["-gen-op-defs"], + "Enzyme/MLIR/Dialect/EnzymeOps.cpp.inc", + ), + ( + [ + "-gen-dialect-decls", + "-dialect=enzyme", + ], + "Enzyme/MLIR/Dialect/EnzymeOpsDialect.h.inc", + ), + ( + [ + "-gen-dialect-defs", + "-dialect=enzyme", + ], + "Enzyme/MLIR/Dialect/EnzymeOpsDialect.cpp.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Dialect/EnzymeOps.td", + deps = [":EnzymeDialectTdFiles"], +) + +td_library( + name = "EnzymePassesTdFiles", + srcs = [ + ], + deps = [ + "@llvm-project//mlir:PassBaseTdFiles", + ] +) + +gentbl_cc_library( + name = "EnzymePassesIncGen", + tbl_outs = [ + ( + [ + "-gen-pass-decls", + "-name=enzyme", + ], + "Enzyme/MLIR/Passes/Passes.h.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Passes/Passes.td", + deps = [":EnzymePassesTdFiles"], +) + +gentbl_cc_library( + name = "EnzymeTypesIncGen", + tbl_outs = [ + ( + ["-gen-typedef-decls"], + "Enzyme/MLIR/Dialect/EnzymeOpsTypes.h.inc", + ), + ( + ["-gen-typedef-defs"], + "Enzyme/MLIR/Dialect/EnzymeOpsTypes.cpp.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Dialect/EnzymeOps.td", + deps = [":EnzymeDialectTdFiles"], +) + +gentbl_cc_library( + name = "EnzymeEnumsIncGen", + tbl_outs = [ + ( + ["-gen-enum-decls"], + "Enzyme/MLIR/Dialect/EnzymeEnums.h.inc", + ), + ( + ["-gen-enum-defs"], + "Enzyme/MLIR/Dialect/EnzymeEnums.cpp.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Dialect/EnzymeOps.td", + deps = [":EnzymeDialectTdFiles"], +) + +gentbl_cc_library( + name = "EnzymeAttributesIncGen", + tbl_outs = [ + ( + ["-gen-attrdef-decls"], + "Enzyme/MLIR/Dialect/EnzymeAttributes.h.inc", + ), + ( + ["-gen-attrdef-defs"], + "Enzyme/MLIR/Dialect/EnzymeAttributes.cpp.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Dialect/EnzymeOps.td", + deps = [":EnzymeDialectTdFiles"], +) + + +gentbl_cc_library( + name = "EnzymeTypeInterfacesIncGen", + tbl_outs = [ + ( + ["--gen-type-interface-decls"], + "Enzyme/MLIR/Interfaces/AutoDiffTypeInterface.h.inc", + ), + ( + ["--gen-type-interface-defs"], + "Enzyme/MLIR/Interfaces/AutoDiffTypeInterface.cpp.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Interfaces/AutoDiffTypeInterface.td", + deps = [":EnzymeDialectTdFiles"], +) + +gentbl_cc_library( + name = "EnzymeOpInterfacesIncGen", + tbl_outs = [ + ( + ["--gen-op-interface-decls"], + "Enzyme/MLIR/Interfaces/AutoDiffOpInterface.h.inc", + ), + ( + ["--gen-op-interface-defs"], + "Enzyme/MLIR/Interfaces/AutoDiffOpInterface.cpp.inc", + ), + ], + tblgen = "@llvm-project//mlir:mlir-tblgen", + td_file = "Enzyme/MLIR/Interfaces/AutoDiffOpInterface.td", + deps = [":EnzymeDialectTdFiles"], +) + +cc_library( + name = "EnzymeMLIR", + srcs = glob([ + "Enzyme/MLIR/Dialect/*.cpp", + "Enzyme/MLIR/Passes/*.cpp", + "Enzyme/MLIR/Interfaces/*.cpp", + "Enzyme/MLIR/Analysis/*.cpp", + "Enzyme/MLIR/Implementations/*.cpp", + ]), + hdrs = glob([ + "Enzyme/MLIR/Dialect/*.h", + "Enzyme/MLIR/Passes/*.h", + "Enzyme/MLIR/Interfaces/*.h", + "Enzyme/MLIR/Analysis/*.h", + "Enzyme/MLIR/Implementations/*.h", + "Enzyme/Utils.h", + "Enzyme/TypeAnalysis/*.h" + ]), + includes = ["Enzyme/MLIR", "Enzyme"], + visibility = ["//visibility:public"], + deps = [ + ":EnzymeOpsIncGen", + ":EnzymePassesIncGen", + ":EnzymeTypesIncGen", + ":EnzymeEnumsIncGen", + ":EnzymeAttributesIncGen", + ":EnzymeTypeInterfacesIncGen", + ":EnzymeOpInterfacesIncGen", + "@llvm-project//mlir:AffineDialect", + "@llvm-project//mlir:LLVMCommonConversion", + "@llvm-project//mlir:ConversionPasses", + "@llvm-project//mlir:SCFDialect", + "@llvm-project//mlir:GPUDialect", + "@llvm-project//mlir:AsyncDialect", + "@llvm-project//mlir:FuncDialect", + "@llvm-project//mlir:FuncExtensions", + "@llvm-project//mlir:MathDialect", + "@llvm-project//mlir:MemRefDialect", + ], +) + +cc_binary( + name = "enzymemlir-opt", + srcs = ["Enzyme/MLIR/enzymemlir-opt.cpp"], + visibility = ["//visibility:public"], + includes = ["Enzyme/MLIR"], + deps = [ + ":EnzymeMLIR", + "@llvm-project//mlir:MlirOptLib", + "@llvm-project//mlir:AllPassesAndDialects", + ], +) + +# Generates lit config input file by applying path placeholder substitutions +# similar to the configure_lit_site_cfg CMake macro. +expand_template( + name = "lit_site_cfg_py", + testonly = True, + out = "test/lit.site.cfg.py", + substitutions = { + "@LLVM_VERSION_MAJOR@": "18", + "@LIT_SITE_CFG_IN_HEADER@": "# Autogenerated, do not edit.", + "@LLVM_BINARY_DIR@": package_path("@llvm-project//llvm:BUILD"), + "@LLVM_TOOLS_BINARY_DIR@": package_path("@llvm-project//llvm:BUILD"), + "@LLVM_LIBS_DIR@": package_path("@llvm-project//llvm:BUILD"), + "@ENZYME_SOURCE_DIR@": "", + "@ENZYME_BINARY_DIR@": "", + "@TARGET_TRIPLE@": "", + "@TARGETS_TO_BUILD@": "ALL", + "@LLVM_SHLIBEXT@": ".so", + }, + template = "test/lit.site.cfg.py.in", + visibility = ["//visibility:private"], +) + +[ + lit_test( + name = "%s.test" % src, + srcs = [src], + data = [ + ":test/lit.cfg.py", + ":test/lit.site.cfg.py", + "@llvm-project//llvm:FileCheck", + "@llvm-project//llvm:count", + "@llvm-project//llvm:not", + "@llvm-project//llvm:lli", + "@llvm-project//llvm:opt", + "@llvm-project//clang:builtin_headers_gen", + ":enzyme-clang", + ":enzyme-clang++", + ":enzymemlir-opt" + ] + glob(["test/**/*.h"]) + ) + for src in glob(["test/**/*.mlir"]) +] diff --git a/enzyme/Enzyme/MLIR/Implementations/LinalgAutoDiffOpInterfaceImpl.cpp b/enzyme/Enzyme/MLIR/Implementations/LinalgAutoDiffOpInterfaceImpl.cpp index 237e66837513..93488a07fd6e 100644 --- a/enzyme/Enzyme/MLIR/Implementations/LinalgAutoDiffOpInterfaceImpl.cpp +++ b/enzyme/Enzyme/MLIR/Implementations/LinalgAutoDiffOpInterfaceImpl.cpp @@ -73,7 +73,7 @@ struct GenericOpInterfaceReverse MGradientUtilsReverse *gutils, SmallVector caches) const { auto linalgOp = cast(op); - assert(linalgOp.hasBufferSemantics() && + assert(linalgOp.hasPureBufferSemantics() && "Linalg op with tensor semantics not yet supported"); linalg::LinalgOp newOp = @@ -278,4 +278,4 @@ void mlir::enzyme::registerLinalgDialectAutoDiffInterface( #include "mlir/Dialect/Linalg/IR/LinalgStructuredOps.cpp.inc" >(context); }); -} \ No newline at end of file +} diff --git a/enzyme/Enzyme/MLIR/Interfaces/EnzymeLogicReverse.cpp b/enzyme/Enzyme/MLIR/Interfaces/EnzymeLogicReverse.cpp index d36abbf2dc53..e4af7b760ce6 100644 --- a/enzyme/Enzyme/MLIR/Interfaces/EnzymeLogicReverse.cpp +++ b/enzyme/Enzyme/MLIR/Interfaces/EnzymeLogicReverse.cpp @@ -222,11 +222,12 @@ void MEnzymeLogic::handlePredecessors( } else { SmallVector blocks; SmallVector indices; - SmallVector arguments; + SmallVector> arguments; SmallVector defaultArguments; - Block *defaultBlock; - int i = 1; - for (Block *predecessor : oBB->getPredecessors()) { + Block *defaultBlock = nullptr; + for (auto pair : llvm::enumerate(oBB->getPredecessors())) { + auto predecessor = pair.value(); + auto idx = pair.index(); Block *predecessorRevMode = gutils->mapReverseModeBlocks.lookupOrNull(predecessor); @@ -250,10 +251,10 @@ void MEnzymeLogic::handlePredecessors( } } } - if (predecessor != *(oBB->getPredecessors().begin())) { + if (idx != 0) { blocks.push_back(predecessorRevMode); - indices.push_back(APInt(32, i++)); - arguments.push_back(operands); + indices.push_back(APInt(32, idx - 1)); + arguments.emplace_back(std::move(operands)); } else { defaultBlock = predecessorRevMode; defaultArguments = operands; @@ -275,15 +276,19 @@ void MEnzymeLogic::handlePredecessors( oBB->getPredecessors().end()) { // If there is only one block we can directly create a branch for // simplicity sake - revBuilder.create(loc, defaultBlock, defaultArguments); + auto bop = + revBuilder.create(loc, defaultBlock, defaultArguments); } else { Value cache = gutils->insertInit(gutils->getIndexCacheType()); Value flag = revBuilder.create(loc, gutils->getIndexType(), cache); - revBuilder.create( + SmallVector argumentRanges; + for (const auto &a : arguments) + argumentRanges.emplace_back(a); + auto bop = revBuilder.create( loc, flag, defaultBlock, defaultArguments, ArrayRef(indices), - ArrayRef(blocks), ArrayRef(arguments)); + ArrayRef(blocks), argumentRanges); Value origin = newBB->addArgument(gutils->getIndexType(), loc); @@ -356,7 +361,6 @@ void MEnzymeLogic::differentiate( Block *oBB = *it; Block *newBB = gutils->getNewFromOriginal(oBB); Block *reverseBB = gutils->mapReverseModeBlocks.lookupOrNull(oBB); - mapInvertArguments(oBB, reverseBB, gutils); handleReturns(oBB, newBB, reverseBB, gutils, parentRegion); visitChildren(oBB, reverseBB, gutils); @@ -401,4 +405,4 @@ FunctionOpInterface MEnzymeLogic::CreateReverseDiff( delete gutils; return nf; -} \ No newline at end of file +} diff --git a/enzyme/WORKSPACE b/enzyme/WORKSPACE index 4ec0b10d4007..7fabb1dea266 100644 --- a/enzyme/WORKSPACE +++ b/enzyme/WORKSPACE @@ -7,7 +7,7 @@ new_local_repository( load("@llvm-raw//utils/bazel:configure.bzl", "llvm_configure") -llvm_configure(name = "llvm-project", targets = ["X86"]) +llvm_configure(name = "llvm-project", targets = ["X86", "NVPTX"]) load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") @@ -44,3 +44,19 @@ maybe( "https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz" ], ) + +PYRULES_COMMIT = "fe33a4582c37499f3caeb49a07a78fc7948a8949" +PYRULES_SHA256 = "cfa6957832ae0e0c7ee2ccf455a888a291e8419ed8faf45f4420dd7414d5dd96" + +http_archive( + name = "rules_python", + sha256 = PYRULES_SHA256, + strip_prefix = "rules_python-" + PYRULES_COMMIT, + urls = ["https://github.com/bazelbuild/rules_python/archive/{commit}.tar.gz".format(commit = PYRULES_COMMIT)] +) + + +load("@rules_python//python:repositories.bzl", "py_repositories") + +py_repositories() + diff --git a/enzyme/test/Integration/BatchMode/char-ptr.cpp b/enzyme/test/Integration/BatchMode/char-ptr.cpp index 6f5236e6602c..0d727b601073 100644 --- a/enzyme/test/Integration/BatchMode/char-ptr.cpp +++ b/enzyme/test/Integration/BatchMode/char-ptr.cpp @@ -10,7 +10,7 @@ #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_batch(void *, int, int, char *, char *, char *, char *); extern int enzyme_dup; diff --git a/enzyme/test/Integration/BatchMode/sqaure.cpp b/enzyme/test/Integration/BatchMode/sqaure.cpp index f9c97ed54eaa..acd73ccbe973 100644 --- a/enzyme/test/Integration/BatchMode/sqaure.cpp +++ b/enzyme/test/Integration/BatchMode/sqaure.cpp @@ -8,7 +8,7 @@ // RUN: %clang -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" #include struct Vector { diff --git a/enzyme/test/Integration/BatchMode/test_utils.h b/enzyme/test/Integration/BatchMode/test_utils.h deleted file mode 100644 index 3f96e761fb2b..000000000000 --- a/enzyme/test/Integration/BatchMode/test_utils.h +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -#include - -/* -#ifdef __cplusplus -extern "C" { -#endif -static inline bool approx_fp_equality_float(float f1, float f2, double -threshold) { if (fabs(f1-f2) > threshold) return false; return true; -} - -static inline bool approx_fp_equality_double(double f1, double f2, double -threshold) { if (fabs(f1-f2) > threshold) return false; return true; -} -#ifdef __cplusplus -} -#endif -*/ - -#define APPROX_EQ(LHS, RHS, THRES) \ - { \ - if (__builtin_fabs(LHS - RHS) > THRES) { \ - fprintf(stderr, \ - "Assertion Failed: fabs( [%s = %g] - [%s = %g] ) > %g at %s:%d " \ - "(%s)\n", \ - #LHS, LHS, #RHS, RHS, THRES, __FILE__, __LINE__, \ - __PRETTY_FUNCTION__); \ - abort(); \ - } \ - }; diff --git a/enzyme/test/Integration/ForwardMode/binops.c b/enzyme/test/Integration/ForwardMode/binops.c index 11dfbe01bc09..936c433eca73 100644 --- a/enzyme/test/Integration/ForwardMode/binops.c +++ b/enzyme/test/Integration/ForwardMode/binops.c @@ -7,7 +7,7 @@ // RUN: %clang -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" extern double __enzyme_fwddiff(double (*)(double, double), double,...); diff --git a/enzyme/test/Integration/ForwardMode/customfwd.c b/enzyme/test/Integration/ForwardMode/customfwd.c index 78f8673add1d..e9d1f5d0c130 100644 --- a/enzyme/test/Integration/ForwardMode/customfwd.c +++ b/enzyme/test/Integration/ForwardMode/customfwd.c @@ -17,7 +17,7 @@ // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O2 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O3 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_fwddiff(void*, ...); diff --git a/enzyme/test/Integration/ForwardMode/eigen.cpp b/enzyme/test/Integration/ForwardMode/eigen.cpp index 0eff17398bf6..89504b26303d 100644 --- a/enzyme/test/Integration/ForwardMode/eigen.cpp +++ b/enzyme/test/Integration/ForwardMode/eigen.cpp @@ -5,7 +5,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O1 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ForwardMode/fwdandrev.cpp b/enzyme/test/Integration/ForwardMode/fwdandrev.cpp index 997b08d80a67..8da8b91472a9 100644 --- a/enzyme/test/Integration/ForwardMode/fwdandrev.cpp +++ b/enzyme/test/Integration/ForwardMode/fwdandrev.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -std=c++14 -fno-exceptions -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" template struct tensor; diff --git a/enzyme/test/Integration/ForwardMode/loops.c b/enzyme/test/Integration/ForwardMode/loops.c index 1c498b137bd7..612839248cc2 100644 --- a/enzyme/test/Integration/ForwardMode/loops.c +++ b/enzyme/test/Integration/ForwardMode/loops.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_fwddiff(void*, ...); diff --git a/enzyme/test/Integration/ForwardMode/loopsdouble.c b/enzyme/test/Integration/ForwardMode/loopsdouble.c index 549c60a4da4c..8c34740c80d5 100644 --- a/enzyme/test/Integration/ForwardMode/loopsdouble.c +++ b/enzyme/test/Integration/ForwardMode/loopsdouble.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_fwddiff(void*, ...); diff --git a/enzyme/test/Integration/ForwardMode/loopstriple.c b/enzyme/test/Integration/ForwardMode/loopstriple.c index e25a81d09e38..060e74d009f7 100644 --- a/enzyme/test/Integration/ForwardMode/loopstriple.c +++ b/enzyme/test/Integration/ForwardMode/loopstriple.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_fwddiff(void*, ...); diff --git a/enzyme/test/Integration/ForwardMode/mpi/mpi_bcast.c b/enzyme/test/Integration/ForwardMode/mpi/mpi_bcast.c index ec354f8ee285..33118c32942d 100644 --- a/enzyme/test/Integration/ForwardMode/mpi/mpi_bcast.c +++ b/enzyme/test/Integration/ForwardMode/mpi/mpi_bcast.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #include diff --git a/enzyme/test/Integration/ForwardMode/mpi/mpi_reduce.c b/enzyme/test/Integration/ForwardMode/mpi/mpi_reduce.c index 019441d65f66..394e64a96d6f 100644 --- a/enzyme/test/Integration/ForwardMode/mpi/mpi_reduce.c +++ b/enzyme/test/Integration/ForwardMode/mpi/mpi_reduce.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #include diff --git a/enzyme/test/Integration/ForwardMode/nofn.cpp b/enzyme/test/Integration/ForwardMode/nofn.cpp index 8092bb5f5446..6c0716d4e31a 100644 --- a/enzyme/test/Integration/ForwardMode/nofn.cpp +++ b/enzyme/test/Integration/ForwardMode/nofn.cpp @@ -1,6 +1,6 @@ // RUN: if [ %llvmver -ge 10 ]; then %clang -g -O0 %s -S -emit-llvm -o - %loadClangEnzyme -Xclang -verify; fi -#include "test_utils.h" +#include "../test_utils.h" #include diff --git a/enzyme/test/Integration/ForwardMode/rosenbrock.cpp b/enzyme/test/Integration/ForwardMode/rosenbrock.cpp index 434ae89af89d..8b52d2ff31c1 100644 --- a/enzyme/test/Integration/ForwardMode/rosenbrock.cpp +++ b/enzyme/test/Integration/ForwardMode/rosenbrock.cpp @@ -7,7 +7,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang++ -std=c++11 -fno-exceptions -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ForwardMode/rwrloop.c b/enzyme/test/Integration/ForwardMode/rwrloop.c index d1b0a1a10b4b..dc71b0eead20 100644 --- a/enzyme/test/Integration/ForwardMode/rwrloop.c +++ b/enzyme/test/Integration/ForwardMode/rwrloop.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_fwddiff(void*, ...); diff --git a/enzyme/test/Integration/ForwardMode/sumtil.c b/enzyme/test/Integration/ForwardMode/sumtil.c index 20ce00a4b735..9e9286f97157 100644 --- a/enzyme/test/Integration/ForwardMode/sumtil.c +++ b/enzyme/test/Integration/ForwardMode/sumtil.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern double __enzyme_fwddiff(void*, double*, double*, int); diff --git a/enzyme/test/Integration/ForwardMode/sumtil2.c b/enzyme/test/Integration/ForwardMode/sumtil2.c index c8ae8741bef1..32d289703e69 100644 --- a/enzyme/test/Integration/ForwardMode/sumtil2.c +++ b/enzyme/test/Integration/ForwardMode/sumtil2.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern double __enzyme_fwddiff(void*, double*, double*, int); diff --git a/enzyme/test/Integration/ForwardModeVector/test_utils.h b/enzyme/test/Integration/ForwardModeVector/test_utils.h deleted file mode 100644 index 3f96e761fb2b..000000000000 --- a/enzyme/test/Integration/ForwardModeVector/test_utils.h +++ /dev/null @@ -1,32 +0,0 @@ -#include -#include -#include -#include - -/* -#ifdef __cplusplus -extern "C" { -#endif -static inline bool approx_fp_equality_float(float f1, float f2, double -threshold) { if (fabs(f1-f2) > threshold) return false; return true; -} - -static inline bool approx_fp_equality_double(double f1, double f2, double -threshold) { if (fabs(f1-f2) > threshold) return false; return true; -} -#ifdef __cplusplus -} -#endif -*/ - -#define APPROX_EQ(LHS, RHS, THRES) \ - { \ - if (__builtin_fabs(LHS - RHS) > THRES) { \ - fprintf(stderr, \ - "Assertion Failed: fabs( [%s = %g] - [%s = %g] ) > %g at %s:%d " \ - "(%s)\n", \ - #LHS, LHS, #RHS, RHS, THRES, __FILE__, __LINE__, \ - __PRETTY_FUNCTION__); \ - abort(); \ - } \ - }; diff --git a/enzyme/test/Integration/ReverseMode/allocatedtape.c b/enzyme/test/Integration/ReverseMode/allocatedtape.c index 0fd02521e0dd..15bce1ed71cb 100644 --- a/enzyme/test/Integration/ReverseMode/allocatedtape.c +++ b/enzyme/test/Integration/ReverseMode/allocatedtape.c @@ -17,7 +17,7 @@ // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O2 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O3 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_autodiff(void*, ...); void* __enzyme_augmentfwd(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/allocatedtape_err.c b/enzyme/test/Integration/ReverseMode/allocatedtape_err.c index f3ee53a65d09..1236a86388e7 100644 --- a/enzyme/test/Integration/ReverseMode/allocatedtape_err.c +++ b/enzyme/test/Integration/ReverseMode/allocatedtape_err.c @@ -8,7 +8,7 @@ // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -g -O3 %s -S -emit-llvm -o - %newLoadClangEnzyme -Xclang -verify; fi #include -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_reverse(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/blas_gemm.c b/enzyme/test/Integration/ReverseMode/blas_gemm.c index 195b7efea775..bdebc0a180e9 100644 --- a/enzyme/test/Integration/ReverseMode/blas_gemm.c +++ b/enzyme/test/Integration/ReverseMode/blas_gemm.c @@ -8,7 +8,7 @@ // RUN: if [ %llvmver -ge 12 ]; then %clang -O2 %s -S -emit-llvm -o - %loadClangEnzyme -mllvm -enzyme-lapack-copy=0 | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -O3 %s -S -emit-llvm -o - %loadClangEnzyme -mllvm -enzyme-lapack-copy=0 | %lli - ; fi -#include "test_utils.h" +#include "../test_utils.h" #include "../blas_inline.h" #include diff --git a/enzyme/test/Integration/ReverseMode/blas_gemm2.c b/enzyme/test/Integration/ReverseMode/blas_gemm2.c index e1fd7947308e..a417e0418cd9 100644 --- a/enzyme/test/Integration/ReverseMode/blas_gemm2.c +++ b/enzyme/test/Integration/ReverseMode/blas_gemm2.c @@ -11,7 +11,7 @@ #include #include #include -#include "test_utils.h" +#include "../test_utils.h" #include "../blas_inline.h" extern int enzyme_dup; diff --git a/enzyme/test/Integration/ReverseMode/boundissue.c b/enzyme/test/Integration/ReverseMode/boundissue.c index 5df279890c7b..f297ebbdda97 100644 --- a/enzyme/test/Integration/ReverseMode/boundissue.c +++ b/enzyme/test/Integration/ReverseMode/boundissue.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/cachefwd.c b/enzyme/test/Integration/ReverseMode/cachefwd.c index 65050b3b32e8..ab56e3dd0853 100644 --- a/enzyme/test/Integration/ReverseMode/cachefwd.c +++ b/enzyme/test/Integration/ReverseMode/cachefwd.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, double*, double*, int); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/cerr.cpp b/enzyme/test/Integration/ReverseMode/cerr.cpp index e85bed4ff4df..b4bc9febd3d6 100644 --- a/enzyme/test/Integration/ReverseMode/cerr.cpp +++ b/enzyme/test/Integration/ReverseMode/cerr.cpp @@ -7,7 +7,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S -#include "test_utils.h" +#include "../test_utils.h" #include #include #include diff --git a/enzyme/test/Integration/ReverseMode/cin.cpp b/enzyme/test/Integration/ReverseMode/cin.cpp index 6a59655838c5..e357708bdae1 100644 --- a/enzyme/test/Integration/ReverseMode/cin.cpp +++ b/enzyme/test/Integration/ReverseMode/cin.cpp @@ -7,7 +7,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S -#include "test_utils.h" +#include "../test_utils.h" #include #include #include diff --git a/enzyme/test/Integration/ReverseMode/cmplx.cpp b/enzyme/test/Integration/ReverseMode/cmplx.cpp index 5970d4cf94ae..73559beb94fb 100644 --- a/enzyme/test/Integration/ReverseMode/cmplx.cpp +++ b/enzyme/test/Integration/ReverseMode/cmplx.cpp @@ -9,7 +9,7 @@ //#include -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ReverseMode/cout.cpp b/enzyme/test/Integration/ReverseMode/cout.cpp index 9c0a611e1224..fadb93f17b23 100644 --- a/enzyme/test/Integration/ReverseMode/cout.cpp +++ b/enzyme/test/Integration/ReverseMode/cout.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S #include -#include "test_utils.h" +#include "../test_utils.h" extern double __enzyme_autodiff(void*, double); diff --git a/enzyme/test/Integration/ReverseMode/customalloc.c b/enzyme/test/Integration/ReverseMode/customalloc.c index 4bd8f88bcf4e..eca4deac5ee2 100644 --- a/enzyme/test/Integration/ReverseMode/customalloc.c +++ b/enzyme/test/Integration/ReverseMode/customalloc.c @@ -22,7 +22,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/customcombined.c b/enzyme/test/Integration/ReverseMode/customcombined.c index e5dca475da5d..5ce2c1df2b07 100644 --- a/enzyme/test/Integration/ReverseMode/customcombined.c +++ b/enzyme/test/Integration/ReverseMode/customcombined.c @@ -17,7 +17,7 @@ // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O2 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O3 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, double); diff --git a/enzyme/test/Integration/ReverseMode/customglob.cpp b/enzyme/test/Integration/ReverseMode/customglob.cpp index e323b40aebce..c3e494cdfbfc 100644 --- a/enzyme/test/Integration/ReverseMode/customglob.cpp +++ b/enzyme/test/Integration/ReverseMode/customglob.cpp @@ -15,7 +15,7 @@ // RUN: if [ %llvmver -ge 12 ]; then %clang++ -O2 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang++ -O3 %s -S -emit-llvm -o - %newLoadClangEnzyme -mllvm -enzyme-inline=1 -S | %lli - ; fi -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/customlog1p.c b/enzyme/test/Integration/ReverseMode/customlog1p.c index 995cd2c051aa..95c0697fff77 100644 --- a/enzyme/test/Integration/ReverseMode/customlog1p.c +++ b/enzyme/test/Integration/ReverseMode/customlog1p.c @@ -21,7 +21,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/dbginfo.c b/enzyme/test/Integration/ReverseMode/dbginfo.c index dbf9201d1ccd..06767e624849 100644 --- a/enzyme/test/Integration/ReverseMode/dbginfo.c +++ b/enzyme/test/Integration/ReverseMode/dbginfo.c @@ -9,7 +9,7 @@ //#include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff diff --git a/enzyme/test/Integration/ReverseMode/differential_pointer_return.c b/enzyme/test/Integration/ReverseMode/differential_pointer_return.c index ffafffe58962..b05a7264ae3c 100644 --- a/enzyme/test/Integration/ReverseMode/differential_pointer_return.c +++ b/enzyme/test/Integration/ReverseMode/differential_pointer_return.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/eigensumsq.cpp b/enzyme/test/Integration/ReverseMode/eigensumsq.cpp index f601255fb273..ee4a8e9c76f6 100644 --- a/enzyme/test/Integration/ReverseMode/eigensumsq.cpp +++ b/enzyme/test/Integration/ReverseMode/eigensumsq.cpp @@ -13,7 +13,7 @@ #define EIGEN_UNROLLING_LIMIT 0 #define EIGEN_DONT_VECTORIZE 1 -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ReverseMode/eigensumsqdyn-notmp.cpp b/enzyme/test/Integration/ReverseMode/eigensumsqdyn-notmp.cpp index d5f806d7d62b..7ed4132deac0 100644 --- a/enzyme/test/Integration/ReverseMode/eigensumsqdyn-notmp.cpp +++ b/enzyme/test/Integration/ReverseMode/eigensumsqdyn-notmp.cpp @@ -14,7 +14,7 @@ #define EIGEN_UNROLLING_LIMIT 0 #define EIGEN_DONT_VECTORIZE 1 -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ReverseMode/eigensumsqdyn.cpp b/enzyme/test/Integration/ReverseMode/eigensumsqdyn.cpp index e382f07a4a13..4076978d1af6 100644 --- a/enzyme/test/Integration/ReverseMode/eigensumsqdyn.cpp +++ b/enzyme/test/Integration/ReverseMode/eigensumsqdyn.cpp @@ -13,7 +13,7 @@ #define EIGEN_UNROLLING_LIMIT 0 #define EIGEN_DONT_VECTORIZE 1 -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ReverseMode/eigentensor.cpp b/enzyme/test/Integration/ReverseMode/eigentensor.cpp index f813a8381ab4..28feb236f4db 100644 --- a/enzyme/test/Integration/ReverseMode/eigentensor.cpp +++ b/enzyme/test/Integration/ReverseMode/eigentensor.cpp @@ -14,7 +14,7 @@ #define EIGEN_UNROLLING_LIMIT 0 #define EIGEN_DONT_VECTORIZE 1 -#include "test_utils.h" +#include "../test_utils.h" void memcpy(float* __restrict dst, float* __restrict src, size_t count) { diff --git a/enzyme/test/Integration/ReverseMode/eigentensorfull.cpp b/enzyme/test/Integration/ReverseMode/eigentensorfull.cpp index d6d4c0dd0f2f..b61aebd47ef4 100644 --- a/enzyme/test/Integration/ReverseMode/eigentensorfull.cpp +++ b/enzyme/test/Integration/ReverseMode/eigentensorfull.cpp @@ -14,7 +14,7 @@ #define EIGEN_UNROLLING_LIMIT 0 #define EIGEN_DONT_VECTORIZE 1 -#include "test_utils.h" +#include "../test_utils.h" /* void memcpy(float* __restrict dst, float* __restrict src, size_t count) { diff --git a/enzyme/test/Integration/ReverseMode/eigentensorreal.cpp b/enzyme/test/Integration/ReverseMode/eigentensorreal.cpp index f2ce5fbaa591..a5780d03c9b6 100644 --- a/enzyme/test/Integration/ReverseMode/eigentensorreal.cpp +++ b/enzyme/test/Integration/ReverseMode/eigentensorreal.cpp @@ -14,7 +14,7 @@ #define EIGEN_UNROLLING_LIMIT 0 #define EIGEN_DONT_VECTORIZE 1 -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ReverseMode/fbuff.cpp b/enzyme/test/Integration/ReverseMode/fbuff.cpp index bb1d701fa0a1..2c9e31584aa8 100644 --- a/enzyme/test/Integration/ReverseMode/fbuff.cpp +++ b/enzyme/test/Integration/ReverseMode/fbuff.cpp @@ -7,7 +7,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S -#include "test_utils.h" +#include "../test_utils.h" #include #include #include diff --git a/enzyme/test/Integration/ReverseMode/forrealloc.c b/enzyme/test/Integration/ReverseMode/forrealloc.c index f40f82cb54b5..9fc9ec5798d7 100644 --- a/enzyme/test/Integration/ReverseMode/forrealloc.c +++ b/enzyme/test/Integration/ReverseMode/forrealloc.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" float __enzyme_autodiff(void*, float, int); diff --git a/enzyme/test/Integration/ReverseMode/frexp.c b/enzyme/test/Integration/ReverseMode/frexp.c index 27480621b26f..4b917e7e282f 100644 --- a/enzyme/test/Integration/ReverseMode/frexp.c +++ b/enzyme/test/Integration/ReverseMode/frexp.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double f(double x) { int exp; diff --git a/enzyme/test/Integration/ReverseMode/fwdsolve.c b/enzyme/test/Integration/ReverseMode/fwdsolve.c index 0b9fe7db3ca2..c7a6ad63040e 100644 --- a/enzyme/test/Integration/ReverseMode/fwdsolve.c +++ b/enzyme/test/Integration/ReverseMode/fwdsolve.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/gradient-struct-return.c b/enzyme/test/Integration/ReverseMode/gradient-struct-return.c index 718f2adcd32a..605d6bb5045f 100644 --- a/enzyme/test/Integration/ReverseMode/gradient-struct-return.c +++ b/enzyme/test/Integration/ReverseMode/gradient-struct-return.c @@ -8,7 +8,7 @@ // RUN: %clang -std=c11 -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme --enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" typedef struct { double dx,dy; diff --git a/enzyme/test/Integration/ReverseMode/headerremat.c b/enzyme/test/Integration/ReverseMode/headerremat.c index 4eb9f673a991..b3397ad8bead 100644 --- a/enzyme/test/Integration/ReverseMode/headerremat.c +++ b/enzyme/test/Integration/ReverseMode/headerremat.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #include diff --git a/enzyme/test/Integration/ReverseMode/inactivefn.c b/enzyme/test/Integration/ReverseMode/inactivefn.c index e27f1069f863..e48edd3486ed 100644 --- a/enzyme/test/Integration/ReverseMode/inactivefn.c +++ b/enzyme/test/Integration/ReverseMode/inactivefn.c @@ -21,7 +21,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/insertsort_sum.c b/enzyme/test/Integration/ReverseMode/insertsort_sum.c index 65740a389ec5..7e7d6b0a3ae4 100644 --- a/enzyme/test/Integration/ReverseMode/insertsort_sum.c +++ b/enzyme/test/Integration/ReverseMode/insertsort_sum.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff diff --git a/enzyme/test/Integration/ReverseMode/insertsort_sum_alt.c b/enzyme/test/Integration/ReverseMode/insertsort_sum_alt.c index 0a486cc0b83d..3a643492d30f 100644 --- a/enzyme/test/Integration/ReverseMode/insertsort_sum_alt.c +++ b/enzyme/test/Integration/ReverseMode/insertsort_sum_alt.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/insertsort_sum_min.c b/enzyme/test/Integration/ReverseMode/insertsort_sum_min.c index fa168b4eb1d3..b62150353581 100644 --- a/enzyme/test/Integration/ReverseMode/insertsort_sum_min.c +++ b/enzyme/test/Integration/ReverseMode/insertsort_sum_min.c @@ -7,7 +7,7 @@ // RUN: %clang -std=c11 -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang -std=c11 -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" #include #include #include diff --git a/enzyme/test/Integration/ReverseMode/integrateconst.cpp b/enzyme/test/Integration/ReverseMode/integrateconst.cpp index 0f6ce4056818..2086ab8b525d 100644 --- a/enzyme/test/Integration/ReverseMode/integrateconst.cpp +++ b/enzyme/test/Integration/ReverseMode/integrateconst.cpp @@ -10,7 +10,7 @@ // RUN: %clang++ -fno-use-cxa-atexit -ffast-math -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O1 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang++ -fno-use-cxa-atexit -ffast-math -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions %O0TBAA %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" #define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS #define BOOST_NO_EXCEPTIONS diff --git a/enzyme/test/Integration/ReverseMode/integrateexp.cpp b/enzyme/test/Integration/ReverseMode/integrateexp.cpp index ffa23597a1ec..b0af87422627 100644 --- a/enzyme/test/Integration/ReverseMode/integrateexp.cpp +++ b/enzyme/test/Integration/ReverseMode/integrateexp.cpp @@ -12,7 +12,7 @@ // RUN: %clang++ -fno-use-cxa-atexit -ffast-math -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O1 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // TODO: %clang++ -fno-use-cxa-atexit -ffast-math -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O0 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" #define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS #define BOOST_NO_EXCEPTIONS diff --git a/enzyme/test/Integration/ReverseMode/invsqrt.c b/enzyme/test/Integration/ReverseMode/invsqrt.c index a9bad760745d..c14ce79ab88d 100644 --- a/enzyme/test/Integration/ReverseMode/invsqrt.c +++ b/enzyme/test/Integration/ReverseMode/invsqrt.c @@ -23,7 +23,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" // Fast inverse sqrt // Code taken from https://en.wikipedia.org/wiki/Fast_inverse_square_root diff --git a/enzyme/test/Integration/ReverseMode/loops.c b/enzyme/test/Integration/ReverseMode/loops.c index 482f00eabc24..3a2794963eb5 100644 --- a/enzyme/test/Integration/ReverseMode/loops.c +++ b/enzyme/test/Integration/ReverseMode/loops.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff diff --git a/enzyme/test/Integration/ReverseMode/loopsdouble.c b/enzyme/test/Integration/ReverseMode/loopsdouble.c index 9bd5796eb57d..8108a9813c63 100644 --- a/enzyme/test/Integration/ReverseMode/loopsdouble.c +++ b/enzyme/test/Integration/ReverseMode/loopsdouble.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/loopsnested.c b/enzyme/test/Integration/ReverseMode/loopsnested.c index 73790f6f3e02..8e1eb7c3fa9a 100644 --- a/enzyme/test/Integration/ReverseMode/loopsnested.c +++ b/enzyme/test/Integration/ReverseMode/loopsnested.c @@ -7,7 +7,7 @@ // RUN: %clang -std=c11 -ffast-math -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - // RUN: %clang -std=c11 -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - -#include "test_utils.h" +#include "../test_utils.h" __attribute__((always_inline)) inline void doA(double x[2]) diff --git a/enzyme/test/Integration/ReverseMode/loopstriple.c b/enzyme/test/Integration/ReverseMode/loopstriple.c index 6cc3d168fd56..490502145810 100644 --- a/enzyme/test/Integration/ReverseMode/loopstriple.c +++ b/enzyme/test/Integration/ReverseMode/loopstriple.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/manydiv.c b/enzyme/test/Integration/ReverseMode/manydiv.c index 642de1211e99..a0da1f6499b3 100644 --- a/enzyme/test/Integration/ReverseMode/manydiv.c +++ b/enzyme/test/Integration/ReverseMode/manydiv.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/manymax.c b/enzyme/test/Integration/ReverseMode/manymax.c index 2bb0c1a0a7ee..90b61041ec1e 100644 --- a/enzyme/test/Integration/ReverseMode/manymax.c +++ b/enzyme/test/Integration/ReverseMode/manymax.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/map.cpp b/enzyme/test/Integration/ReverseMode/map.cpp index 36357c293860..71cba7a0f8ef 100644 --- a/enzyme/test/Integration/ReverseMode/map.cpp +++ b/enzyme/test/Integration/ReverseMode/map.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/ReverseMode/metamalloc.c b/enzyme/test/Integration/ReverseMode/metamalloc.c index 81ebdb799b47..96a848fd9698 100644 --- a/enzyme/test/Integration/ReverseMode/metamalloc.c +++ b/enzyme/test/Integration/ReverseMode/metamalloc.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/metarwr.c b/enzyme/test/Integration/ReverseMode/metarwr.c index 923a710dd6b8..4efcd475f68f 100644 --- a/enzyme/test/Integration/ReverseMode/metarwr.c +++ b/enzyme/test/Integration/ReverseMode/metarwr.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-old.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-old.c index 57f2b42c5656..b016f796e255 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-old.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-old.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-simple.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-simple.c index 916784faf4e8..5dea68e793da 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-simple.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-simple.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-simplefda.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-simplefda.c index 53b4cfeb446a..e2b3f9788fca 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-simplefda.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-simplefda.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-simpleps.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-simpleps.c index 6bf81d36ceb2..b4857429b6fe 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-simpleps.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-simpleps.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-simpler.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-simpler.c index c0dc02d63e56..61b81d0a57bf 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-simpler.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-simpler.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-simplest.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-simplest.c index 4a1de376bbb7..bcf3ea958485 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-simplest.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-simplest.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1-sp.c b/enzyme/test/Integration/ReverseMode/mixedstruct1-sp.c index 6321f42b5169..eb783098cf02 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1-sp.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1-sp.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mixedstruct1.c b/enzyme/test/Integration/ReverseMode/mixedstruct1.c index 85e315a0ce93..3ab79b584ef9 100644 --- a/enzyme/test/Integration/ReverseMode/mixedstruct1.c +++ b/enzyme/test/Integration/ReverseMode/mixedstruct1.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/mpi_bcast.c b/enzyme/test/Integration/ReverseMode/mpi_bcast.c index 81fdedf1b3ca..d1edb2796236 100644 --- a/enzyme/test/Integration/ReverseMode/mpi_bcast.c +++ b/enzyme/test/Integration/ReverseMode/mpi_bcast.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #include diff --git a/enzyme/test/Integration/ReverseMode/mpi_reduce.c b/enzyme/test/Integration/ReverseMode/mpi_reduce.c index c87e6e0c85e5..d40d191bb7d1 100644 --- a/enzyme/test/Integration/ReverseMode/mpi_reduce.c +++ b/enzyme/test/Integration/ReverseMode/mpi_reduce.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #include diff --git a/enzyme/test/Integration/ReverseMode/multivecmax.cpp b/enzyme/test/Integration/ReverseMode/multivecmax.cpp index 1d24a81bd023..372f8841a059 100644 --- a/enzyme/test/Integration/ReverseMode/multivecmax.cpp +++ b/enzyme/test/Integration/ReverseMode/multivecmax.cpp @@ -15,7 +15,7 @@ #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, double*, double*, int); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/multivecmaxC.c b/enzyme/test/Integration/ReverseMode/multivecmaxC.c index 3153059573f2..c39559adb2de 100644 --- a/enzyme/test/Integration/ReverseMode/multivecmaxC.c +++ b/enzyme/test/Integration/ReverseMode/multivecmaxC.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, double*, double*, int); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/mycos.c b/enzyme/test/Integration/ReverseMode/mycos.c index f690d32defe6..1d7d4c8e85f3 100644 --- a/enzyme/test/Integration/ReverseMode/mycos.c +++ b/enzyme/test/Integration/ReverseMode/mycos.c @@ -1,4 +1,4 @@ -// RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O0 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi +// RUN: if [ %llvmver -ge 12 ]; then ls && %clang -std=c11 -O0 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O1 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O2 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi // RUN: if [ %llvmver -ge 12 ]; then %clang -std=c11 -O3 %s -S -emit-llvm -o - %loadClangEnzyme | %lli - ; fi @@ -19,7 +19,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" __attribute__((noinline)) uint64_t factorial(uint64_t x) { diff --git a/enzyme/test/Integration/ReverseMode/omp.c b/enzyme/test/Integration/ReverseMode/omp.c index b51e2abe6149..4d6f0bd164c5 100644 --- a/enzyme/test/Integration/ReverseMode/omp.c +++ b/enzyme/test/Integration/ReverseMode/omp.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/omp2.c b/enzyme/test/Integration/ReverseMode/omp2.c index 7e49df928e37..8cdd06545fd1 100644 --- a/enzyme/test/Integration/ReverseMode/omp2.c +++ b/enzyme/test/Integration/ReverseMode/omp2.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/omp3.c b/enzyme/test/Integration/ReverseMode/omp3.c index d6431f3e3953..59bdca34cf9a 100644 --- a/enzyme/test/Integration/ReverseMode/omp3.c +++ b/enzyme/test/Integration/ReverseMode/omp3.c @@ -11,7 +11,7 @@ # include # include -#include "test_utils.h" +#include "../test_utils.h" void msg(double* in, int *len, unsigned int slen) { if (slen != 0) { diff --git a/enzyme/test/Integration/ReverseMode/omp6.c b/enzyme/test/Integration/ReverseMode/omp6.c index 9c74e1b6ae96..8a6f34fe235f 100644 --- a/enzyme/test/Integration/ReverseMode/omp6.c +++ b/enzyme/test/Integration/ReverseMode/omp6.c @@ -13,7 +13,7 @@ # include #include -#include "test_utils.h" +#include "../test_utils.h" __attribute__((noinline)) void set(double *a, double x){ diff --git a/enzyme/test/Integration/ReverseMode/omp_crit.c b/enzyme/test/Integration/ReverseMode/omp_crit.c index a633cf37551f..794040c35bef 100644 --- a/enzyme/test/Integration/ReverseMode/omp_crit.c +++ b/enzyme/test/Integration/ReverseMode/omp_crit.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/omp_firstprivate.c b/enzyme/test/Integration/ReverseMode/omp_firstprivate.c index 4d5a25fb869e..fe284a2cdbbd 100644 --- a/enzyme/test/Integration/ReverseMode/omp_firstprivate.c +++ b/enzyme/test/Integration/ReverseMode/omp_firstprivate.c @@ -15,7 +15,7 @@ extern int omp_get_max_threads(); #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/omp_two.c b/enzyme/test/Integration/ReverseMode/omp_two.c index 6e9a70411574..1f95e93f2520 100644 --- a/enzyme/test/Integration/ReverseMode/omp_two.c +++ b/enzyme/test/Integration/ReverseMode/omp_two.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/ompbound.c b/enzyme/test/Integration/ReverseMode/ompbound.c index b51e2abe6149..4d6f0bd164c5 100644 --- a/enzyme/test/Integration/ReverseMode/ompbound.c +++ b/enzyme/test/Integration/ReverseMode/ompbound.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/perturbation.cpp b/enzyme/test/Integration/ReverseMode/perturbation.cpp index 34639d614499..1bbb8ea70f98 100644 --- a/enzyme/test/Integration/ReverseMode/perturbation.cpp +++ b/enzyme/test/Integration/ReverseMode/perturbation.cpp @@ -9,7 +9,7 @@ //#include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff1(void*, int, double, double); double __enzyme_autodiff2(void*, double); diff --git a/enzyme/test/Integration/ReverseMode/posix_memalign.c b/enzyme/test/Integration/ReverseMode/posix_memalign.c index 4217a69366dd..48aab315b95a 100644 --- a/enzyme/test/Integration/ReverseMode/posix_memalign.c +++ b/enzyme/test/Integration/ReverseMode/posix_memalign.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" int posix_memalign(void **memptr, size_t alignment, size_t size); diff --git a/enzyme/test/Integration/ReverseMode/posix_memalignfor.c b/enzyme/test/Integration/ReverseMode/posix_memalignfor.c index e938ebe44065..0a01ef095142 100644 --- a/enzyme/test/Integration/ReverseMode/posix_memalignfor.c +++ b/enzyme/test/Integration/ReverseMode/posix_memalignfor.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" int posix_memalign(void **memptr, size_t alignment, size_t size); diff --git a/enzyme/test/Integration/ReverseMode/readwriteread.c b/enzyme/test/Integration/ReverseMode/readwriteread.c index 84ca7955a1fc..ecfdce54d27e 100644 --- a/enzyme/test/Integration/ReverseMode/readwriteread.c +++ b/enzyme/test/Integration/ReverseMode/readwriteread.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/recurse.c b/enzyme/test/Integration/ReverseMode/recurse.c index 491d96f0c896..a53041e77188 100644 --- a/enzyme/test/Integration/ReverseMode/recurse.c +++ b/enzyme/test/Integration/ReverseMode/recurse.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/remat.c b/enzyme/test/Integration/ReverseMode/remat.c index aec85a951f9b..b228bcc13c99 100644 --- a/enzyme/test/Integration/ReverseMode/remat.c +++ b/enzyme/test/Integration/ReverseMode/remat.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, ...); void square(double** p_delv, double** p_e, int ** idx, int numReg, int numElemReg) { diff --git a/enzyme/test/Integration/ReverseMode/remat2.cpp b/enzyme/test/Integration/ReverseMode/remat2.cpp index a0b38526cdb1..67e720f6f159 100644 --- a/enzyme/test/Integration/ReverseMode/remat2.cpp +++ b/enzyme/test/Integration/ReverseMode/remat2.cpp @@ -21,7 +21,7 @@ #include -#include "test_utils.h" +#include "../test_utils.h" diff --git a/enzyme/test/Integration/ReverseMode/rematSimple.c b/enzyme/test/Integration/ReverseMode/rematSimple.c index 6ab78f2252cd..7b95f9cb9506 100644 --- a/enzyme/test/Integration/ReverseMode/rematSimple.c +++ b/enzyme/test/Integration/ReverseMode/rematSimple.c @@ -7,7 +7,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, ...); void square(double* __restrict__ delv, double* __restrict__ e, unsigned long long numReg) { diff --git a/enzyme/test/Integration/ReverseMode/rwrloop.c b/enzyme/test/Integration/ReverseMode/rwrloop.c index 547d990a04c4..cdf9e3774553 100644 --- a/enzyme/test/Integration/ReverseMode/rwrloop.c +++ b/enzyme/test/Integration/ReverseMode/rwrloop.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/rwrmeta.c b/enzyme/test/Integration/ReverseMode/rwrmeta.c index 7ccf2114e930..34a15d5c93d4 100644 --- a/enzyme/test/Integration/ReverseMode/rwrmeta.c +++ b/enzyme/test/Integration/ReverseMode/rwrmeta.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/simpleeigen-made-part.cpp b/enzyme/test/Integration/ReverseMode/simpleeigen-made-part.cpp index 9b1ca58070ad..eda0d4d6f715 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigen-made-part.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigen-made-part.cpp @@ -8,7 +8,7 @@ // TODO: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions %O0TBAA %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; using Eigen::VectorXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigen-made.cpp b/enzyme/test/Integration/ReverseMode/simpleeigen-made.cpp index 211662ca14d9..4ffd79ba41a5 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigen-made.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigen-made.cpp @@ -10,7 +10,7 @@ // RUN: if [ %llvmver -lt 16 ]; then %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions %O0TBAA %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - ; fi #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; using Eigen::VectorXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigen.cpp b/enzyme/test/Integration/ReverseMode/simpleeigen.cpp index cd098649d6b2..bcf3639a200e 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigen.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigen.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions %O0TBAA %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; using Eigen::VectorXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made-odd.cpp b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made-odd.cpp index acf5b53ba0c0..2065c72bdf12 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made-odd.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made-odd.cpp @@ -8,7 +8,7 @@ // TODO: %clang++ -Xclang -new-struct-path-tbaa -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions %O0TBAA %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made.cpp b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made.cpp index aecd4e7b73af..ceb60f239d50 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-made.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O0 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sum.cpp b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sum.cpp index 247892c628e7..cff685397281 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sum.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sum.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O0 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sumsq.cpp b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sumsq.cpp index ea5b310c4c6f..df01ab911767 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sumsq.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-sumsq.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O0 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-vec.cpp b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-vec.cpp index c30372e31135..b6aa27e3c6ed 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigenstatic-vec.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigenstatic-vec.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O0 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; diff --git a/enzyme/test/Integration/ReverseMode/simpleeigenstatic.cpp b/enzyme/test/Integration/ReverseMode/simpleeigenstatic.cpp index 618a86f353a7..16cef553a8d6 100644 --- a/enzyme/test/Integration/ReverseMode/simpleeigenstatic.cpp +++ b/enzyme/test/Integration/ReverseMode/simpleeigenstatic.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -fno-unroll-loops -fno-vectorize -fno-slp-vectorize -fno-exceptions -O0 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" using Eigen::MatrixXd; diff --git a/enzyme/test/Integration/ReverseMode/smallrealloc.c b/enzyme/test/Integration/ReverseMode/smallrealloc.c index 9b65f134d1d5..51e29ccdfce5 100644 --- a/enzyme/test/Integration/ReverseMode/smallrealloc.c +++ b/enzyme/test/Integration/ReverseMode/smallrealloc.c @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" float __enzyme_autodiff(void*, float); diff --git a/enzyme/test/Integration/ReverseMode/sret.cpp b/enzyme/test/Integration/ReverseMode/sret.cpp index 0240e396ecb7..2b5315d5d35c 100644 --- a/enzyme/test/Integration/ReverseMode/sret.cpp +++ b/enzyme/test/Integration/ReverseMode/sret.cpp @@ -7,7 +7,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O2 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S -#include "test_utils.h" +#include "../test_utils.h" #include #include #include diff --git a/enzyme/test/Integration/ReverseMode/subdoublestore.c b/enzyme/test/Integration/ReverseMode/subdoublestore.c index 4f9915284175..f411d98f3e7f 100644 --- a/enzyme/test/Integration/ReverseMode/subdoublestore.c +++ b/enzyme/test/Integration/ReverseMode/subdoublestore.c @@ -13,7 +13,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff double __enzyme_autodiff(void*, ...); diff --git a/enzyme/test/Integration/ReverseMode/sumtil.c b/enzyme/test/Integration/ReverseMode/sumtil.c index 4f6bc31c82ee..0a2b0502c2bc 100644 --- a/enzyme/test/Integration/ReverseMode/sumtil.c +++ b/enzyme/test/Integration/ReverseMode/sumtil.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, double*, double*, int); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/sumtil2.c b/enzyme/test/Integration/ReverseMode/sumtil2.c index d4af27b3e15f..aac316c7c4ea 100644 --- a/enzyme/test/Integration/ReverseMode/sumtil2.c +++ b/enzyme/test/Integration/ReverseMode/sumtil2.c @@ -11,7 +11,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, double*, double*, int); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/taylorlog.c b/enzyme/test/Integration/ReverseMode/taylorlog.c index 56c97e006c39..649dd4fff243 100644 --- a/enzyme/test/Integration/ReverseMode/taylorlog.c +++ b/enzyme/test/Integration/ReverseMode/taylorlog.c @@ -9,7 +9,7 @@ //#include -#include "test_utils.h" +#include "../test_utils.h" #define __builtin_autodiff __enzyme_autodiff diff --git a/enzyme/test/Integration/ReverseMode/test_utils.h b/enzyme/test/Integration/ReverseMode/test_utils.h deleted file mode 100644 index 8d15bfe10719..000000000000 --- a/enzyme/test/Integration/ReverseMode/test_utils.h +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include - -extern -#ifdef __cplusplus -"C" -#endif -int enzyme_allocated, enzyme_const, enzyme_dup, enzyme_dupnoneed, enzyme_out, - enzyme_tape; - -/* -#ifdef __cplusplus -extern "C" { -#endif -static inline bool approx_fp_equality_float(float f1, float f2, double threshold) { - if (fabs(f1-f2) > threshold) return false; - return true; -} - -static inline bool approx_fp_equality_double(double f1, double f2, double threshold) { - if (fabs(f1-f2) > threshold) return false; - return true; -} -#ifdef __cplusplus -} -#endif -*/ - -#define APPROX_EQ(LHS, RHS, THRES) \ - { \ - if (__builtin_fabs((LHS) - (RHS)) > THRES) { \ - fprintf(stderr, "Assertion Failed: fabs( [%s = %g] - [%s = %g] ) > %g at %s:%d (%s)\n", \ - #LHS, (double)(LHS), #RHS, (double)(RHS), THRES, \ - __FILE__, __LINE__, __PRETTY_FUNCTION__); \ - abort(); \ - } \ - }; diff --git a/enzyme/test/Integration/ReverseMode/vecmax.c b/enzyme/test/Integration/ReverseMode/vecmax.c index 4900a7995739..24ae2793dbc9 100644 --- a/enzyme/test/Integration/ReverseMode/vecmax.c +++ b/enzyme/test/Integration/ReverseMode/vecmax.c @@ -7,7 +7,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, double*, double*, int); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/vecmax.cpp b/enzyme/test/Integration/ReverseMode/vecmax.cpp index 586fae3fe0f7..eda1af0acf9e 100644 --- a/enzyme/test/Integration/ReverseMode/vecmax.cpp +++ b/enzyme/test/Integration/ReverseMode/vecmax.cpp @@ -12,7 +12,7 @@ #include #include -#include "test_utils.h" +#include "../test_utils.h" extern void __enzyme_autodiff(void*, std::vector*, std::vector*); /*double max(double x, double y) { diff --git a/enzyme/test/Integration/ReverseMode/virtualshadow.cpp b/enzyme/test/Integration/ReverseMode/virtualshadow.cpp index 24bfa680cfe7..3511f839c8df 100644 --- a/enzyme/test/Integration/ReverseMode/virtualshadow.cpp +++ b/enzyme/test/Integration/ReverseMode/virtualshadow.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" struct S { double (*fn)(double); double val; diff --git a/enzyme/test/Integration/ReverseMode/virtualshadow2.cpp b/enzyme/test/Integration/ReverseMode/virtualshadow2.cpp index 74b7fa88c474..0852b3d082dd 100644 --- a/enzyme/test/Integration/ReverseMode/virtualshadow2.cpp +++ b/enzyme/test/Integration/ReverseMode/virtualshadow2.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" struct S { double (*fn)(double); diff --git a/enzyme/test/Integration/ReverseMode/virtualshadow3.cpp b/enzyme/test/Integration/ReverseMode/virtualshadow3.cpp index 96366a6a3b98..53972e1851e0 100644 --- a/enzyme/test/Integration/ReverseMode/virtualshadow3.cpp +++ b/enzyme/test/Integration/ReverseMode/virtualshadow3.cpp @@ -4,7 +4,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S | %lli - #include -#include "test_utils.h" +#include "../test_utils.h" void __enzyme_autodiff(...); diff --git a/enzyme/test/Integration/ReverseMode/wcout.cpp b/enzyme/test/Integration/ReverseMode/wcout.cpp index 7252b4dccae0..bc47cadb4dc8 100644 --- a/enzyme/test/Integration/ReverseMode/wcout.cpp +++ b/enzyme/test/Integration/ReverseMode/wcout.cpp @@ -8,7 +8,7 @@ // RUN: %clang++ -std=c++11 -fno-exceptions -ffast-math -O3 %s -S -emit-llvm -o - | %opt - %OPloadEnzyme %enzyme -enzyme-inline=1 -S #include -#include "test_utils.h" +#include "../test_utils.h" #include #include diff --git a/enzyme/test/Integration/Sparse/test_utils.h b/enzyme/test/Integration/Sparse/test_utils.h deleted file mode 100644 index afcf87d4471b..000000000000 --- a/enzyme/test/Integration/Sparse/test_utils.h +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include -#include - -extern -#ifdef __cplusplus -"C" -#endif -int enzyme_allocated, enzyme_const, enzyme_dup, enzyme_dupnoneed, enzyme_out, - enzyme_tape; - -/* -#ifdef __cplusplus -extern "C" { -#endif -static inline bool approx_fp_equality_float(float f1, float f2, double threshold) { - if (fabs(f1-f2) > threshold) return false; - return true; -} - -static inline bool approx_fp_equality_double(double f1, double f2, double threshold) { - if (fabs(f1-f2) > threshold) return false; - return true; -} -#ifdef __cplusplus -} -#endif -*/ - -#define APPROX_EQ(LHS, RHS, THRES) \ - { \ - if (__builtin_fabs((LHS) - (RHS)) > THRES) { \ - fprintf(stderr, "Assertion Failed: fabs( [%s = %g] - [%s = %g] ) > %g at %s:%d (%s)\n", #LHS, (double)(LHS), #RHS, (double)(RHS), THRES, \ - __FILE__, __LINE__, __PRETTY_FUNCTION__); \ - abort(); \ - } \ - }; diff --git a/enzyme/test/Integration/ForwardMode/test_utils.h b/enzyme/test/Integration/test_utils.h similarity index 100% rename from enzyme/test/Integration/ForwardMode/test_utils.h rename to enzyme/test/Integration/test_utils.h diff --git a/enzyme/test/lit.cfg.py b/enzyme/test/lit.cfg.py index a9e799701eed..527dc9ce8e44 100644 --- a/enzyme/test/lit.cfg.py +++ b/enzyme/test/lit.cfg.py @@ -45,6 +45,7 @@ #llvm_config.add_tool_substitutions(tools, config.llvm_tools_dir) # opt knows whether it is compiled with -DNDEBUG. +""" import subprocess try: opt_cmd = subprocess.Popen([os.path.join(config.llvm_tools_dir, 'opt'), '-version'], @@ -68,3 +69,4 @@ except OSError: print("Could not find llvm-config in " + config.llvm_tools_dir) exit(42) +""" diff --git a/enzyme/test/lit.site.cfg.py.in b/enzyme/test/lit.site.cfg.py.in index 3f4439e09584..bb6e6e7ac0c2 100644 --- a/enzyme/test/lit.site.cfg.py.in +++ b/enzyme/test/lit.site.cfg.py.in @@ -1,9 +1,13 @@ @LIT_SITE_CFG_IN_HEADER@ +import os + #config.llvm_src_root = "@LLVM_SOURCE_DIR@" config.llvm_ver = "@LLVM_VERSION_MAJOR@" config.llvm_obj_root = "@LLVM_BINARY_DIR@" config.llvm_tools_dir = "@LLVM_TOOLS_BINARY_DIR@" +if len("@ENZYME_BINARY_DIR@") == 0: + config.llvm_tools_dir = os.getcwd() + "/" + config.llvm_tools_dir config.llvm_libs_dir = "@LLVM_LIBS_DIR@" config.enzyme_obj_root = "@ENZYME_BINARY_DIR@" config.target_triple = "@TARGET_TRIPLE@" @@ -40,10 +44,22 @@ config.substitutions.append(('%shlibext', config.llvm_shlib_ext)) config.substitutions.append(('%lli', config.llvm_tools_dir + "/lli" + (" --jit-kind=mcjit" if int(config.llvm_ver) >= 13 else "") )) config.substitutions.append(('%opt', config.llvm_tools_dir + "/opt")) -config.substitutions.append(('%eopt', config.enzyme_obj_root + "/Enzyme/MLIR/enzymemlir-opt")) + +eopt = config.enzyme_obj_root + "/Enzyme/MLIR/enzymemlir-opt" +if len("@ENZYME_BINARY_DIR@") == 0: + eopt = os.path.dirname(os.path.abspath(__file__)) + "/../enzymemlir-opt" + +eclang = config.llvm_tools_dir + "/clang" +if len("@ENZYME_BINARY_DIR@") == 0: + eclang = os.path.dirname(os.path.abspath(__file__)) + "/../enzyme-clang" + resource = config.llvm_tools_dir + "/../clang/staging" + eclang += " -resource-dir " + resource + " " + eclang += "-I " + os.path.dirname(os.path.abspath(__file__)) + "/Integration" + +config.substitutions.append(('%eopt', eopt)) config.substitutions.append(('%llvmver', config.llvm_ver)) config.substitutions.append(('%FileCheck', config.llvm_tools_dir + "/FileCheck")) -config.substitutions.append(('%clang', config.llvm_tools_dir + "/clang")) +config.substitutions.append(('%clang', eclang)) config.substitutions.append(('%O0TBAA', "-O1 -Xclang -disable-llvm-passes")) oldPM = ((" --enable-new-pm=0" if int(config.llvm_ver) >= 13 else "") @@ -53,6 +69,12 @@ newPM = ((" --enable-new-pm=1" if int(config.llvm_ver) in (12,13) else "") + ' -load-pass-plugin=@ENZYME_BINARY_DIR@/Enzyme/LLVMEnzyme-' + config.llvm_ver + config.llvm_shlib_ext + ' -load=@ENZYME_BINARY_DIR@/Enzyme/LLVMEnzyme-' + config.llvm_ver + config.llvm_shlib_ext + (" --enzyme-attributor=0" if int(config.llvm_ver) >= 13 else "")) +if len("@ENZYME_BINARY_DIR@") == 0: + oldPM = ((" --enable-new-pm=0" if int(config.llvm_ver) >= 13 else "") + + (" --enzyme-attributor=0" if int(config.llvm_ver) >= 13 else "")) + newPM = ((" --enable-new-pm=1" if int(config.llvm_ver) in (12,13) else "") + + (" --enzyme-attributor=0" if int(config.llvm_ver) >= 13 else "")) + oldPMOP = oldPM newPMOP = newPM if int(config.llvm_ver) >= 16: @@ -77,8 +99,16 @@ oldPM = (((" -fno-experimental-new-pass-manager" if int(config.llvm_ver) < 14 el newPM = ((" -fexperimental-new-pass-manager" if int(config.llvm_ver) < 13 else "") + ' -fpass-plugin=@ENZYME_BINARY_DIR@/Enzyme/ClangEnzyme-' + config.llvm_ver + config.llvm_shlib_ext + ' -Xclang -load -Xclang @ENZYME_BINARY_DIR@/Enzyme/ClangEnzyme-' + config.llvm_ver + config.llvm_shlib_ext) + +if len("@ENZYME_BINARY_DIR@") == 0: + oldPM = ((" -fno-experimental-new-pass-manager" if int(config.llvm_ver) < 14 else "-flegacy-pass-manager") if int(config.llvm_ver) >= 13 else "") + newPM = (" -fexperimental-new-pass-manager" if int(config.llvm_ver) < 13 else "") + config.substitutions.append(('%loadClangEnzyme', oldPM if int(config.llvm_ver) < 15 else newPM)) config.substitutions.append(('%newLoadClangEnzyme', newPM)) # Let the main config do the real work. -lit_config.load_config(config, "@ENZYME_SOURCE_DIR@/test/lit.cfg.py") +cfgfile = "@ENZYME_SOURCE_DIR@/test/lit.cfg.py" +if len("@ENZYME_SOURCE_DIR@") == 0: + cfgfile = os.path.dirname(os.path.abspath(__file__)) + "/lit.cfg.py" +lit_config.load_config(config, cfgfile)