//===- ProfileInfo.cpp - Profile Info Interface ---------------------------===//
// 
//                     The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and is distributed under
// the University of Illinois Open Source License. See LICENSE.TXT for details.
// 
//===----------------------------------------------------------------------===//
//
// This file implements the abstract ProfileInfo interface, and the default
// "no profile" implementation.
//
//===----------------------------------------------------------------------===//

#include "llvm/Analysis/ProfileInfo.h"
#include "llvm/Pass.h"
using namespace llvm;

// Register the ProfileInfo interface, providing a nice name to refer to.
namespace {
  RegisterAnalysisGroup<ProfileInfo> Z("Profile Information");
}

ProfileInfo::~ProfileInfo() {}


//===----------------------------------------------------------------------===//
//  NoProfile ProfileInfo implementation
//

namespace {
  struct NoProfileInfo : public ImmutablePass, public ProfileInfo {
    unsigned getExecutionCount(BasicBlock *BB) { return 0; }
  };
 
  // Register this pass...
  RegisterOpt<NoProfileInfo>
  X("no-profile", "No Profile Information");

  // Declare that we implement the ProfileInfo interface
  RegisterAnalysisGroup<ProfileInfo, NoProfileInfo, true> Y;
}  // End of anonymous namespace
