summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-10-31 23:35:26 +0000
committerReid Kleckner <reid@kleckner.net>2014-10-31 23:35:26 +0000
commit9abe268adb4da3ad21957b537dff146f69a98854 (patch)
treef1033fdf2b069a1cba3831c41155387fb51561b0 /llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp
parentc311aba2474106673ad899b0e837fc6ec549d9a9 (diff)
downloadbcm5719-llvm-9abe268adb4da3ad21957b537dff146f69a98854.tar.gz
bcm5719-llvm-9abe268adb4da3ad21957b537dff146f69a98854.zip
Revert "R600: Make sure to inline all internal functions"
This reverts commit r220996. It introduced layering violations causing link errors in many configurations. llvm-svn: 221020
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp')
-rw-r--r--llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp66
1 files changed, 0 insertions, 66 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp b/llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp
deleted file mode 100644
index b545b456161..00000000000
--- a/llvm/lib/Target/R600/AMDGPUAlwaysInlinePass.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//===-- AMDGPUAlwaysInlinePass.cpp - Promote Allocas ----------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file
-/// This pass marks all internal functions as always_inline and creates
-/// duplicates of all other functions a marks the duplicates as always_inline.
-//
-//===----------------------------------------------------------------------===//
-
-#include "AMDGPU.h"
-#include "llvm/IR/Module.h"
-#include "llvm/Transforms/Utils/Cloning.h"
-
-using namespace llvm;
-
-namespace {
-
-class AMDGPUAlwaysInline : public ModulePass {
-
- static char ID;
-
-public:
- AMDGPUAlwaysInline() : ModulePass(ID) { }
- bool runOnModule(Module &M) override;
- const char *getPassName() const override { return "AMDGPU Always Inline Pass"; }
-};
-
-} // End anonymous namespace
-
-char AMDGPUAlwaysInline::ID = 0;
-
-bool AMDGPUAlwaysInline::runOnModule(Module &M) {
-
- std::vector<Function*> FuncsToClone;
- for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
- Function &F = *I;
- if (!F.hasLocalLinkage() && !F.isDeclaration() && !F.use_empty())
- FuncsToClone.push_back(&F);
- }
-
- for (Function *F : FuncsToClone) {
- ValueToValueMapTy VMap;
- Function *NewFunc = CloneFunction(F, VMap, false);
- NewFunc->setLinkage(GlobalValue::InternalLinkage);
- F->getParent()->getFunctionList().push_back(NewFunc);
- F->replaceAllUsesWith(NewFunc);
- }
-
- for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
- Function &F = *I;
- if (F.hasLocalLinkage()) {
- F.addFnAttr(Attribute::AlwaysInline);
- }
- }
- return false;
-}
-
-ModulePass *llvm::createAMDGPUAlwaysInlinePass() {
- return new AMDGPUAlwaysInline();
-}
OpenPOWER on IntegriCloud