[llvm-commits] [llvm] r111661 - in /llvm/trunk: include/llvm/LinkAllVMCore.h include/llvm/Support/SlowOperationInformer.h lib/Support/SlowOperationInformer.cpp

Chris Lattner clattner at apple.com
Fri Aug 20 14:17:41 PDT 2010


On Aug 20, 2010, at 11:07 AM, Dan Gohman wrote:

> Author: djg
> Date: Fri Aug 20 13:07:37 2010
> New Revision: 111661
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=111661&view=rev
> Log:
> Delete SlowOperationInformer, which is no longer used.

So sad, whatever will "the LLVM debugger" do?

-Chris

> 
> Removed:
>    llvm/trunk/include/llvm/Support/SlowOperationInformer.h
>    llvm/trunk/lib/Support/SlowOperationInformer.cpp
> Modified:
>    llvm/trunk/include/llvm/LinkAllVMCore.h
> 
> Modified: llvm/trunk/include/llvm/LinkAllVMCore.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LinkAllVMCore.h?rev=111661&r1=111660&r2=111661&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/LinkAllVMCore.h (original)
> +++ llvm/trunk/include/llvm/LinkAllVMCore.h Fri Aug 20 13:07:37 2010
> @@ -33,7 +33,6 @@
> #include "llvm/System/TimeValue.h"
> #include "llvm/Support/Dwarf.h"
> #include "llvm/Support/MathExtras.h"
> -#include "llvm/Support/SlowOperationInformer.h"
> #include <cstdlib>
> 
> namespace {
> 
> Removed: llvm/trunk/include/llvm/Support/SlowOperationInformer.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/SlowOperationInformer.h?rev=111660&view=auto
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/SlowOperationInformer.h (original)
> +++ llvm/trunk/include/llvm/Support/SlowOperationInformer.h (removed)
> @@ -1,65 +0,0 @@
> -//===- llvm/Support/SlowOperationInformer.h - Keep user informed *- C++ -*-===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -//
> -// This file defines a simple object which can be used to let the user know what
> -// is going on when a slow operation is happening, and gives them the ability to
> -// cancel it.  Potentially slow operations can stack allocate one of these
> -// objects, and periodically call the "progress" method to update the progress
> -// bar.  If the operation takes more than 1 second to complete, the progress bar
> -// is automatically shown and updated.  As such, the slow operation should not
> -// print stuff to the screen, and should not be confused if an extra line
> -// appears on the screen (ie, the cursor should be at the start of the line).
> -//
> -// If the user presses CTRL-C during the operation, the next invocation of the
> -// progress method return true indicating that the operation was cancelled.
> -//
> -// Because SlowOperationInformers fiddle around with signals, they cannot be
> -// nested, and interact poorly with threads.  The SIGALRM handler is set back to
> -// SIGDFL, but the SIGINT signal handler is restored when the
> -// SlowOperationInformer is destroyed.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef LLVM_SUPPORT_SLOW_OPERATION_INFORMER_H
> -#define LLVM_SUPPORT_SLOW_OPERATION_INFORMER_H
> -
> -#include <string>
> -#include <cassert>
> -#include "llvm/System/DataTypes.h"
> -
> -namespace llvm {
> -  class SlowOperationInformer {
> -    std::string OperationName;
> -    unsigned LastPrintAmount;
> -
> -    SlowOperationInformer(const SlowOperationInformer&);   // DO NOT IMPLEMENT
> -    void operator=(const SlowOperationInformer&);          // DO NOT IMPLEMENT
> -  public:
> -    explicit SlowOperationInformer(const std::string &Name);
> -    ~SlowOperationInformer();
> -
> -    /// progress - Clients should periodically call this method when they can
> -    /// handle cancellation.  The Amount variable should indicate how far
> -    /// along the operation is, given in 1/10ths of a percent (in other words,
> -    /// Amount should range from 0 to 1000).  If the user cancels the operation,
> -    /// this returns true, false otherwise.
> -    bool progress(unsigned Amount);
> -
> -    /// progress - Same as the method above, but this performs the division for
> -    /// you, and helps you avoid overflow if you are dealing with largish
> -    /// numbers.
> -    bool progress(unsigned Current, unsigned Maximum) {
> -      assert(Maximum != 0 &&
> -             "Shouldn't be doing work if there is nothing to do!");
> -      return progress(Current*uint64_t(1000UL)/Maximum);
> -    }
> -  };
> -} // end namespace llvm
> -
> -#endif /* SLOW_OPERATION_INFORMER_H */
> 
> Removed: llvm/trunk/lib/Support/SlowOperationInformer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/SlowOperationInformer.cpp?rev=111660&view=auto
> ==============================================================================
> --- llvm/trunk/lib/Support/SlowOperationInformer.cpp (original)
> +++ llvm/trunk/lib/Support/SlowOperationInformer.cpp (removed)
> @@ -1,67 +0,0 @@
> -//===-- SlowOperationInformer.cpp - Keep the user informed ----------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
> -//===----------------------------------------------------------------------===//
> -//
> -// This file implements the SlowOperationInformer class for the LLVM debugger.
> -//
> -//===----------------------------------------------------------------------===//
> -
> -#include "llvm/Support/SlowOperationInformer.h"
> -#include "llvm/Support/raw_ostream.h"
> -#include "llvm/System/Alarm.h"
> -#include <sstream>
> -#include <cassert>
> -using namespace llvm;
> -
> -SlowOperationInformer::SlowOperationInformer(const std::string &Name)
> -  : OperationName(Name), LastPrintAmount(0) {
> -  sys::SetupAlarm(1);
> -}
> -
> -SlowOperationInformer::~SlowOperationInformer() {
> -  sys::TerminateAlarm();
> -  if (LastPrintAmount) {
> -    // If we have printed something, make _sure_ we print the 100% amount, and
> -    // also print a newline.
> -    outs() << std::string(LastPrintAmount, '\b') << "Progress "
> -           << OperationName << ": 100%  \n";
> -  }
> -}
> -
> -/// progress - Clients should periodically call this method when they are in
> -/// an exception-safe state.  The Amount variable should indicate how far
> -/// along the operation is, given in 1/10ths of a percent (in other words,
> -/// Amount should range from 0 to 1000).
> -bool SlowOperationInformer::progress(unsigned Amount) {
> -  int status = sys::AlarmStatus();
> -  if (status == -1) {
> -    outs() << "\n";
> -    LastPrintAmount = 0;
> -    return true;
> -  }
> -
> -  // If we haven't spent enough time in this operation to warrant displaying the
> -  // progress bar, don't do so yet.
> -  if (status == 0)
> -    return false;
> -
> -  // Delete whatever we printed last time.
> -  std::string ToPrint = std::string(LastPrintAmount, '\b');
> -
> -  std::ostringstream OS;
> -  OS << "Progress " << OperationName << ": " << Amount/10;
> -  if (unsigned Rem = Amount % 10)
> -    OS << "." << Rem << "%";
> -  else
> -    OS << "%  ";
> -
> -  LastPrintAmount = OS.str().size();
> -  outs() << ToPrint+OS.str();
> -  outs().flush();
> -  return false;
> -}
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list