[Beignet] [PATCH 1/3] GBE: fix multiple files compilation bugs.
Zhigang Gong
zhigang.gong at linux.intel.com
Thu Sep 11 23:35:25 PDT 2014
This patchset is for 0.9.x branch.
On Fri, Sep 12, 2014 at 02:33:10PM +0800, Zhigang Gong wrote:
> If we want to link multiple files together, and one kernel
> function need refer other kernel functions in other files,
> we must not set those functions as linked once attribute.
>
> Signed-off-by: Zhigang Gong <zhigang.gong at intel.com>
> ---
> backend/src/backend/gen_program.cpp | 4 +++-
> backend/src/llvm/llvm_to_gen.cpp | 5 +++--
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/backend/src/backend/gen_program.cpp b/backend/src/backend/gen_program.cpp
> index 3e16fd6..5324587 100644
> --- a/backend/src/backend/gen_program.cpp
> +++ b/backend/src/backend/gen_program.cpp
> @@ -56,6 +56,7 @@
> #include "backend/gen_reg_allocation.hpp"
> #include "ir/unit.hpp"
> #include "llvm/llvm_to_gen.hpp"
> +#include "llvm/llvm_gen_backend.hpp"
>
> #include <clang/CodeGen/CodeGenAction.h>
>
> @@ -371,9 +372,10 @@ namespace gbe {
> }
>
> for (llvm::Module::iterator I = src->begin(), E = src->end(); I != E; ++I) {
> + llvm::Function *F = llvm::dyn_cast<llvm::Function>(I);
> + if (F && isKernelFunction(*F)) continue;
> I->setLinkage(llvm::GlobalValue::LinkOnceAnyLinkage);
> }
> -
> llvm::Module* dst = (llvm::Module*)((GenProgram*)dst_program)->module;
> llvm::Linker::LinkModules( dst,
> src,
> diff --git a/backend/src/llvm/llvm_to_gen.cpp b/backend/src/llvm/llvm_to_gen.cpp
> index 755793e..3cb0e5b 100644
> --- a/backend/src/llvm/llvm_to_gen.cpp
> +++ b/backend/src/llvm/llvm_to_gen.cpp
> @@ -86,10 +86,11 @@ namespace gbe
> FPM.add(new DataLayout(DL));
> #endif
>
> + // XXX remove the verifier pass to workaround a non-fatal error.
> #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=5
> - FPM.add(createVerifierPass(true));
> + //FPM.add(createVerifierPass(true));
> #else
> - FPM.add(createVerifierPass());
> + //FPM.add(createVerifierPass());
> #endif
> FPM.add(new TargetLibraryInfo(*libraryInfo));
> FPM.add(createTypeBasedAliasAnalysisPass());
> --
> 1.8.3.2
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list