~ubuntu-branches/ubuntu/maverick/clamav/maverick-backports

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/include/llvm/CodeGen/IntrinsicLowering.h

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Gran, Stephen Gran, Michael Tautschnig
  • Date: 2010-04-26 21:41:18 UTC
  • mfrom: (2.1.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100426214118-i6lo606wnh7ywfj6
Tags: 0.96+dfsg-4
[ Stephen Gran ]
* Fixed typo in clamav-milter's postinst

[ Michael Tautschnig ]
* Fixed typo in clamav-freshclam's postinst (closes: #579271)
* Debconf translation updates
  - Portuguese (closes: #579068)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===-- IntrinsicLowering.h - Intrinsic Function Lowering -------*- C++ -*-===//
 
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 defines the IntrinsicLowering interface.  This interface allows
 
11
// addition of domain-specific or front-end specific intrinsics to LLVM without
 
12
// having to modify all of the C backend or interpreter.
 
13
//
 
14
//===----------------------------------------------------------------------===//
 
15
 
 
16
#ifndef LLVM_CODEGEN_INTRINSICLOWERING_H
 
17
#define LLVM_CODEGEN_INTRINSICLOWERING_H
 
18
 
 
19
#include "llvm/Intrinsics.h"
 
20
 
 
21
namespace llvm {
 
22
  class CallInst;
 
23
  class Module;
 
24
  class TargetData;
 
25
 
 
26
  class IntrinsicLowering {
 
27
    const TargetData& TD;
 
28
 
 
29
    
 
30
    bool Warned;
 
31
  public:
 
32
    explicit IntrinsicLowering(const TargetData &td) :
 
33
      TD(td), Warned(false) {}
 
34
 
 
35
    /// AddPrototypes - This method, if called, causes all of the prototypes
 
36
    /// that might be needed by an intrinsic lowering implementation to be
 
37
    /// inserted into the module specified.
 
38
    void AddPrototypes(Module &M);
 
39
 
 
40
    /// LowerIntrinsicCall - This method replaces a call with the LLVM function
 
41
    /// which should be used to implement the specified intrinsic function call.
 
42
    /// If an intrinsic function must be implemented by the code generator 
 
43
    /// (such as va_start), this function should print a message and abort.
 
44
    ///
 
45
    /// Otherwise, if an intrinsic function call can be lowered, the code to
 
46
    /// implement it (often a call to a non-intrinsic function) is inserted
 
47
    /// _after_ the call instruction and the call is deleted.  The caller must
 
48
    /// be capable of handling this kind of change.
 
49
    ///
 
50
    void LowerIntrinsicCall(CallInst *CI);
 
51
  };
 
52
}
 
53
 
 
54
#endif