~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/lib/CodeGen/LiveStackAnalysis.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===-- LiveStackAnalysis.cpp - Live Stack Slot Analysis ------------------===//
 
2
//
 
3
//                     The LLVM Compiler Infrastructure
 
4
//
 
5
// This file is distributed under the University of Illinois Open Source
 
6
// License. See LICENSE.TXT for details.
 
7
//
 
8
//===----------------------------------------------------------------------===//
 
9
//
 
10
// This file implements the live stack slot analysis pass. It is analogous to
 
11
// live interval analysis except it's analyzing liveness of stack slots rather
 
12
// than registers.
 
13
//
 
14
//===----------------------------------------------------------------------===//
 
15
 
 
16
#define DEBUG_TYPE "livestacks"
 
17
#include "llvm/CodeGen/LiveStackAnalysis.h"
 
18
#include "llvm/CodeGen/LiveIntervalAnalysis.h"
 
19
#include "llvm/CodeGen/Passes.h"
 
20
#include "llvm/Target/TargetRegisterInfo.h"
 
21
#include "llvm/Support/Debug.h"
 
22
#include "llvm/Support/raw_ostream.h"
 
23
#include "llvm/ADT/Statistic.h"
 
24
#include <limits>
 
25
using namespace llvm;
 
26
 
 
27
char LiveStacks::ID = 0;
 
28
static RegisterPass<LiveStacks> X("livestacks", "Live Stack Slot Analysis");
 
29
 
 
30
void LiveStacks::getAnalysisUsage(AnalysisUsage &AU) const {
 
31
  AU.setPreservesAll();
 
32
  AU.addPreserved<SlotIndexes>();
 
33
  AU.addRequiredTransitive<SlotIndexes>();
 
34
  MachineFunctionPass::getAnalysisUsage(AU);
 
35
}
 
36
 
 
37
void LiveStacks::releaseMemory() {
 
38
  // Release VNInfo memroy regions after all VNInfo objects are dtor'd.
 
39
  VNInfoAllocator.Reset();
 
40
  S2IMap.clear();
 
41
  S2RCMap.clear();
 
42
}
 
43
 
 
44
bool LiveStacks::runOnMachineFunction(MachineFunction &) {
 
45
  // FIXME: No analysis is being done right now. We are relying on the
 
46
  // register allocators to provide the information.
 
47
  return false;
 
48
}
 
49
 
 
50
/// print - Implement the dump method.
 
51
void LiveStacks::print(raw_ostream &OS, const Module*) const {
 
52
 
 
53
  OS << "********** INTERVALS **********\n";
 
54
  for (const_iterator I = begin(), E = end(); I != E; ++I) {
 
55
    I->second.print(OS);
 
56
    int Slot = I->first;
 
57
    const TargetRegisterClass *RC = getIntervalRegClass(Slot);
 
58
    if (RC)
 
59
      OS << " [" << RC->getName() << "]\n";
 
60
    else
 
61
      OS << " [Unknown]\n";
 
62
  }
 
63
}