[llvm-commits] CVS: llvm/lib/Analysis/Trace.cpp
Chris Lattner
lattner at cs.uiuc.edu
Mon Mar 8 14:58:04 PST 2004
Changes in directory llvm/lib/Analysis:
Trace.cpp added (r1.1)
---
Log message:
Import the trace class from the reoptimizer
---
Diffs of the changes: (+50 -0)
Index: llvm/lib/Analysis/Trace.cpp
diff -c /dev/null llvm/lib/Analysis/Trace.cpp:1.1
*** /dev/null Mon Mar 8 14:57:37 2004
--- llvm/lib/Analysis/Trace.cpp Mon Mar 8 14:57:27 2004
***************
*** 0 ****
--- 1,50 ----
+ //===- Trace.cpp - Implementation of Trace class --------------------------===//
+ //
+ // 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 class represents a single trace of LLVM basic blocks. A trace is a
+ // single entry, multiple exit, region of code that is often hot. Trace-based
+ // optimizations treat traces almost like they are a large, strange, basic
+ // block: because the trace path is assumed to be hot, optimizations for the
+ // fall-through path are made at the expense of the non-fall-through paths.
+ //
+ //===----------------------------------------------------------------------===//
+
+ #include "llvm/Analysis/Trace.h"
+ #include "llvm/Function.h"
+ #include "llvm/Assembly/Writer.h"
+ using namespace llvm;
+
+ Function *Trace::getFunction() const {
+ return getEntryBasicBlock()->getParent();
+ }
+
+
+ Module *Trace::getModule() const {
+ return getFunction()->getParent();
+ }
+
+ /// print - Write trace to output stream.
+ ///
+ void Trace::print (std::ostream &O) const {
+ Function *F = getFunction ();
+ O << "; Trace from function " << F->getName () << ", blocks:\n";
+ for (const_iterator i = begin (), e = end (); i != e; ++i) {
+ O << "; ";
+ WriteAsOperand (O, *i, true, true, getModule ());
+ O << "\n";
+ }
+ O << "; Trace parent function: \n" << *F;
+ }
+
+ /// dump - Debugger convenience method; writes trace to standard error
+ /// output stream.
+ ///
+ void Trace::dump () const {
+ print (std::cerr);
+ }
More information about the llvm-commits
mailing list