[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