Move bypassSlowDivision into the llvm namespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163503 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2012-09-10 11:52:08 +00:00
parent c1cbfa805b
commit 04142bc845
2 changed files with 13 additions and 7 deletions

View File

@ -20,10 +20,14 @@
#include "llvm/Function.h"
namespace llvm {
/// This optimization identifies DIV instructions that can be
/// profitably bypassed and carried out with a shorter, faster divide.
bool bypassSlowDivision(llvm::Function &F,
llvm::Function::iterator &I,
const llvm::DenseMap<llvm::Type *, llvm::Type *> &BypassTypeMap);
bool bypassSlowDivision(Function &F,
Function::iterator &I,
const DenseMap<Type *, Type *> &BypassTypeMap);
} // End llvm namespace
#endif

View File

@ -24,7 +24,7 @@
using namespace llvm;
namespace llvm {
namespace {
struct DivOpInfo {
bool SignedOp;
Value *Dividend;
@ -41,7 +41,9 @@ namespace llvm {
DivPhiNodes(PHINode *InQuotient, PHINode *InRemainder)
: Quotient(InQuotient), Remainder(InRemainder) {}
};
}
namespace llvm {
template<>
struct DenseMapInfo<DivOpInfo> {
static bool isEqual(const DivOpInfo &Val1, const DivOpInfo &Val2) {
@ -217,9 +219,9 @@ static bool reuseOrInsertFastDiv(Function &F,
// bypassSlowDivision - This optimization identifies DIV instructions that can
// be profitably bypassed and carried out with a shorter, faster divide.
bool bypassSlowDivision(Function &F,
Function::iterator &I,
const llvm::DenseMap<Type *, Type *> &BypassTypeMap) {
bool llvm::bypassSlowDivision(Function &F,
Function::iterator &I,
const DenseMap<Type *, Type *> &BypassTypeMap) {
DivCacheTy DivCache;
bool MadeChange = false;