Enzyme main
Loading...
Searching...
No Matches
PreserveNVVM.cpp File Reference
#include <llvm/Config/llvm-config.h>
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils.h"
#include <map>
#include "PreserveNVVM.h"
#include "Utils.h"
#include <llvm-c/Core.h>
#include <llvm-c/Types.h>
#include "llvm/IR/LegacyPassManager.h"
Include dependency graph for PreserveNVVM.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "preserve-nvvm"
 
#define ENZYME_ENABLE_NVVM_ATTRIBUTION   1
 

Functions

bool preserveLinkage (bool Begin, Function &F, bool Inlining=true)
 Returns whether changed.
 
bool isTargetNVPTX (llvm::Module &M)
 
template<const char * handlername, DerivativeMode Mode, int numargs>
static void handleCustomDerivative (llvm::Module &M, llvm::GlobalVariable &g, SmallVectorImpl< GlobalVariable * > &globalsToErase)
 
bool preserveNVVM (bool Begin, Module &M)
 
static RegisterPass< PreserveNVVM > X ("preserve-nvvm", "Preserve NVVM Pass")
 
static RegisterPass< PreserveNVVMFn > XFn ("preserve-nvvm-fn", "Preserve NVVM Pass")
 
ModulePasscreatePreserveNVVMPass (bool Begin)
 
FunctionPass * createPreserveNVVMFnPass (bool Begin)
 
void AddPreserveNVVMPass (LLVMPassManagerRef PM, uint8_t Begin)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "preserve-nvvm"

Definition at line 55 of file PreserveNVVM.cpp.

◆ ENZYME_ENABLE_NVVM_ATTRIBUTION

#define ENZYME_ENABLE_NVVM_ATTRIBUTION   1

Definition at line 62 of file PreserveNVVM.cpp.

Function Documentation

◆ AddPreserveNVVMPass()

void AddPreserveNVVMPass ( LLVMPassManagerRef PM,
uint8_t Begin )

Definition at line 993 of file PreserveNVVM.cpp.

References createPreserveNVVMPass().

◆ createPreserveNVVMFnPass()

FunctionPass * createPreserveNVVMFnPass ( bool Begin)

Definition at line 984 of file PreserveNVVM.cpp.

Referenced by loadNVVMPass().

◆ createPreserveNVVMPass()

ModulePass * createPreserveNVVMPass ( bool Begin)

Definition at line 980 of file PreserveNVVM.cpp.

Referenced by AddPreserveNVVMPass(), and loadPass().

◆ handleCustomDerivative()

template<const char * handlername, DerivativeMode Mode, int numargs>
static void handleCustomDerivative ( llvm::Module & M,
llvm::GlobalVariable & g,
SmallVectorImpl< GlobalVariable * > & globalsToErase )
static

◆ isTargetNVPTX()

bool isTargetNVPTX ( llvm::Module & M)

Definition at line 86 of file PreserveNVVM.cpp.

Referenced by handleCustomDerivative().

◆ preserveLinkage()

bool preserveLinkage ( bool Begin,
Function & F,
bool Inlining = true )

Returns whether changed.

Definition at line 66 of file PreserveNVVM.cpp.

Referenced by handleCustomDerivative(), and preserveNVVM().

◆ preserveNVVM()

bool preserveNVVM ( bool Begin,
Module & M )

◆ X()

static RegisterPass< PreserveNVVM > X ( "preserve-nvvm" ,
"Preserve NVVM Pass"  )
static

◆ XFn()

static RegisterPass< PreserveNVVMFn > XFn ( "preserve-nvvm-fn" ,
"Preserve NVVM Pass"  )
static