From: Chris Lattner Date: Mon, 1 Sep 2003 16:49:38 +0000 (+0000) Subject: If "These should be used only by the auto-parallelization pass", we might as X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=09a670587a770ccf64207c933d95bc62bb56ffcf;p=oota-llvm.git If "These should be used only by the auto-parallelization pass", we might as well put them INTO the auto-par pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8288 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/DataStructure/Parallelize.cpp b/lib/Analysis/DataStructure/Parallelize.cpp index 2c063d19643..562a263e29a 100644 --- a/lib/Analysis/DataStructure/Parallelize.cpp +++ b/lib/Analysis/DataStructure/Parallelize.cpp @@ -31,7 +31,6 @@ // //===----------------------------------------------------------------------===// -#include "Cilkifier.h" #include "llvm/Transforms/Utils/DemoteRegToStack.h" #include "llvm/Analysis/PgmDependenceGraph.h" #include "llvm/Analysis/Dominators.h" @@ -86,6 +85,37 @@ bool CheckDominance(Function& func, #endif +//---------------------------------------------------------------------------- +// Global constants used in marking Cilk functions and function calls. +//---------------------------------------------------------------------------- + +static const char * const CilkSuffix = ".llvm2cilk"; +static const char * const DummySyncFuncName = "__sync.llvm2cilk"; + +//---------------------------------------------------------------------------- +// Routines to identify Cilk functions, calls to Cilk functions, and syncs. +//---------------------------------------------------------------------------- + +static bool isCilk(const Function& F) { + return (F.getName().rfind(CilkSuffix) == + F.getName().size() - std::strlen(CilkSuffix)); +} + +static bool isCilkMain(const Function& F) { + return F.getName() == "main" + std::string(CilkSuffix); +} + + +static bool isCilk(const CallInst& CI) { + return CI.getCalledFunction() && isCilk(*CI.getCalledFunction()); +} + +static bool isSync(const CallInst& CI) { + return CI.getCalledFunction() && + CI.getCalledFunction()->getName() == DummySyncFuncName; +} + + //---------------------------------------------------------------------------- // class Cilkifier // diff --git a/lib/Transforms/IPO/Parallelize.cpp b/lib/Transforms/IPO/Parallelize.cpp index 2c063d19643..562a263e29a 100644 --- a/lib/Transforms/IPO/Parallelize.cpp +++ b/lib/Transforms/IPO/Parallelize.cpp @@ -31,7 +31,6 @@ // //===----------------------------------------------------------------------===// -#include "Cilkifier.h" #include "llvm/Transforms/Utils/DemoteRegToStack.h" #include "llvm/Analysis/PgmDependenceGraph.h" #include "llvm/Analysis/Dominators.h" @@ -86,6 +85,37 @@ bool CheckDominance(Function& func, #endif +//---------------------------------------------------------------------------- +// Global constants used in marking Cilk functions and function calls. +//---------------------------------------------------------------------------- + +static const char * const CilkSuffix = ".llvm2cilk"; +static const char * const DummySyncFuncName = "__sync.llvm2cilk"; + +//---------------------------------------------------------------------------- +// Routines to identify Cilk functions, calls to Cilk functions, and syncs. +//---------------------------------------------------------------------------- + +static bool isCilk(const Function& F) { + return (F.getName().rfind(CilkSuffix) == + F.getName().size() - std::strlen(CilkSuffix)); +} + +static bool isCilkMain(const Function& F) { + return F.getName() == "main" + std::string(CilkSuffix); +} + + +static bool isCilk(const CallInst& CI) { + return CI.getCalledFunction() && isCilk(*CI.getCalledFunction()); +} + +static bool isSync(const CallInst& CI) { + return CI.getCalledFunction() && + CI.getCalledFunction()->getName() == DummySyncFuncName; +} + + //---------------------------------------------------------------------------- // class Cilkifier //