[llvm-commits] CVS: llvm/include/llvm/Analysis/ProfileInfo.h
Chris Lattner
lattner at cs.uiuc.edu
Tue Feb 10 16:12:02 PST 2004
Changes in directory llvm/include/llvm/Analysis:
ProfileInfo.h added (r1.1)
---
Log message:
An initial implementation of an LLVM ProfileInfo class which is designed to
eventually allow Passes to use profiling information to direct them.
---
Diffs of the changes: (+43 -0)
Index: llvm/include/llvm/Analysis/ProfileInfo.h
diff -c /dev/null llvm/include/llvm/Analysis/ProfileInfo.h:1.1
*** /dev/null Tue Feb 10 16:11:52 2004
--- llvm/include/llvm/Analysis/ProfileInfo.h Tue Feb 10 16:11:42 2004
***************
*** 0 ****
--- 1,43 ----
+ //===- llvm/Analysis/ProfileInfo.h - Profile Info Interface -----*- C++ -*-===//
+ //
+ // 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 defines the generic ProfileInfo interface, which is used as the
+ // common interface used by all clients of profiling information, and
+ // implemented either by making static guestimations, or by actually reading in
+ // profiling information gathered by running the program.
+ //
+ // Note that to be useful, all profile-based optimizations should preserve
+ // ProfileInfo, which requires that they notify it when changes to the CFG are
+ // made.
+ //
+ //===----------------------------------------------------------------------===//
+
+ #ifndef LLVM_ANALYSIS_PROFILEINFO_H
+ #define LLVM_ANALYSIS_PROFILEINFO_H
+
+ namespace llvm {
+ class BasicBlock;
+
+ struct ProfileInfo {
+ virtual ~ProfileInfo(); // We want to be subclassed
+
+ //===------------------------------------------------------------------===//
+ /// Profile Information Queries
+ ///
+ virtual unsigned getExecutionCount(BasicBlock *BB) = 0;
+
+ //===------------------------------------------------------------------===//
+ /// Analysis Update Methods
+ ///
+
+ };
+
+ } // End llvm namespace
+
+ #endif
More information about the llvm-commits
mailing list