~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/lib/Transforms/Utils/InstructionNamer.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
//===- InstructionNamer.cpp - Give anonymous instructions names -----------===//
 
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 is a little utility pass that gives instructions names, this is mostly
 
11
// useful when diffing the effect of an optimization because deleting an
 
12
// unnamed instruction can change all other instruction numbering, making the
 
13
// diff very noisy.
 
14
//
 
15
//===----------------------------------------------------------------------===//
 
16
 
 
17
#include "llvm/Transforms/Scalar.h"
 
18
#include "llvm/Function.h"
 
19
#include "llvm/Pass.h"
 
20
#include "llvm/Type.h"
 
21
using namespace llvm;
 
22
 
 
23
namespace {
 
24
  struct InstNamer : public FunctionPass {
 
25
    static char ID; // Pass identification, replacement for typeid
 
26
    InstNamer() : FunctionPass(&ID) {}
 
27
    
 
28
    void getAnalysisUsage(AnalysisUsage &Info) const {
 
29
      Info.setPreservesAll();
 
30
    }
 
31
 
 
32
    bool runOnFunction(Function &F) {
 
33
      for (Function::arg_iterator AI = F.arg_begin(), AE = F.arg_end();
 
34
           AI != AE; ++AI)
 
35
        if (!AI->hasName() && !AI->getType()->isVoidTy())
 
36
          AI->setName("arg");
 
37
 
 
38
      for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) {
 
39
        if (!BB->hasName())
 
40
          BB->setName("bb");
 
41
        
 
42
        for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I)
 
43
          if (!I->hasName() && !I->getType()->isVoidTy())
 
44
            I->setName("tmp");
 
45
      }
 
46
      return true;
 
47
    }
 
48
  };
 
49
  
 
50
  char InstNamer::ID = 0;
 
51
  static RegisterPass<InstNamer> X("instnamer",
 
52
                                   "Assign names to anonymous instructions");
 
53
}
 
54
 
 
55
 
 
56
const PassInfo *const llvm::InstructionNamerID = &X;
 
57
//===----------------------------------------------------------------------===//
 
58
//
 
59
// InstructionNamer - Give any unnamed non-void instructions "tmp" names.
 
60
//
 
61
FunctionPass *llvm::createInstructionNamerPass() {
 
62
  return new InstNamer();
 
63
}