[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