1//===-- llvm/AutoUpgrade.h - AutoUpgrade Helpers ----------------*- 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//
| 1//===-- llvm/AutoUpgrade.h - AutoUpgrade Helpers ----------------*- 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// These functions are implemented by lib/VMCore/AutoUpgrade.cpp.
| 10// These functions are implemented by lib/IR/AutoUpgrade.cpp.
|
11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_AUTOUPGRADE_H 15#define LLVM_AUTOUPGRADE_H 16 17namespace llvm {
| 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_AUTOUPGRADE_H 15#define LLVM_AUTOUPGRADE_H 16 17namespace llvm {
|
| 18 class CallInst; 19 class Constant; 20 class Function; 21 class Instruction;
|
18 class Module; 19 class GlobalVariable;
| 22 class Module; 23 class GlobalVariable;
|
20 class Function; 21 class CallInst;
| 24 class Type; 25 class Value;
|
22
| 26
|
23 /// This is a more granular function that simply checks an intrinsic function
| 27 /// This is a more granular function that simply checks an intrinsic function
|
24 /// for upgrading, and returns true if it requires upgrading. It may return 25 /// null in NewFn if the all calls to the original intrinsic function 26 /// should be transformed to non-function-call instructions. 27 bool UpgradeIntrinsicFunction(Function *F, Function *&NewFn); 28
| 28 /// for upgrading, and returns true if it requires upgrading. It may return 29 /// null in NewFn if the all calls to the original intrinsic function 30 /// should be transformed to non-function-call instructions. 31 bool UpgradeIntrinsicFunction(Function *F, Function *&NewFn); 32
|
29 /// This is the complement to the above, replacing a specific call to an
| 33 /// This is the complement to the above, replacing a specific call to an
|
30 /// intrinsic function with a call to the specified new function. 31 void UpgradeIntrinsicCall(CallInst *CI, Function *NewFn);
| 34 /// intrinsic function with a call to the specified new function. 35 void UpgradeIntrinsicCall(CallInst *CI, Function *NewFn);
|
32 33 /// This is an auto-upgrade hook for any old intrinsic function syntaxes 34 /// which need to have both the function updated as well as all calls updated 35 /// to the new function. This should only be run in a post-processing fashion
| 36 37 /// This is an auto-upgrade hook for any old intrinsic function syntaxes 38 /// which need to have both the function updated as well as all calls updated 39 /// to the new function. This should only be run in a post-processing fashion
|
36 /// so that it can update all calls to the old function. 37 void UpgradeCallsToIntrinsic(Function* F); 38 39 /// This checks for global variables which should be upgraded. It returns true 40 /// if it requires upgrading. 41 bool UpgradeGlobalVariable(GlobalVariable *GV);
| 40 /// so that it can update all calls to the old function. 41 void UpgradeCallsToIntrinsic(Function* F); 42 43 /// This checks for global variables which should be upgraded. It returns true 44 /// if it requires upgrading. 45 bool UpgradeGlobalVariable(GlobalVariable *GV);
|
| 46 47 /// If the TBAA tag for the given instruction uses the scalar TBAA format, 48 /// we upgrade it to the struct-path aware TBAA format. 49 void UpgradeInstWithTBAATag(Instruction *I); 50 51 /// This is an auto-upgrade for bitcast between pointers with different 52 /// address spaces: the instruction is replaced by a pair ptrtoint+inttoptr. 53 Instruction *UpgradeBitCastInst(unsigned Opc, Value *V, Type *DestTy, 54 Instruction *&Temp); 55 56 /// This is an auto-upgrade for bitcast constant expression between pointers 57 /// with different address spaces: the instruction is replaced by a pair 58 /// ptrtoint+inttoptr. 59 Value *UpgradeBitCastExpr(unsigned Opc, Constant *C, Type *DestTy); 60 61 /// Check the debug info version number, if it is out-dated, drop the debug 62 /// info. Return true if module is modified. 63 bool UpgradeDebugInfo(Module &M);
|
42} // End llvm namespace 43 44#endif
| 64} // End llvm namespace 65 66#endif
|