9#ifndef LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPU_ASAN_INSTRUMENTATION_H
10#define LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPU_ASAN_INSTRUMENTATION_H
23#include "llvm/IR/IntrinsicsAMDGPU.h"
46 Instruction *InsertBefore, Value *
Addr, Align Alignment,
47 TypeSize TypeStoreSize,
bool IsWrite,
48 Value *SizeArgument,
bool UseCalls,
bool Recover,
54 Module &M, Instruction *
I,
55 SmallVectorImpl<InterestingMemoryOperand> &Interesting);
This file defines the StringMap class.
This file contains the declarations for the subclasses of Constant, which represent the different fla...
This file provides an interface for laying out a sequence of fields as a struct in a way that attempt...
This file defines generic set operations that may be used on set's of different types,...
void getInterestingMemoryOperands(Module &M, Instruction *I, SmallVectorImpl< InterestingMemoryOperand > &Interesting)
Get all the memory operands from the instruction that needs to be instrumented.
void instrumentAddress(Module &M, IRBuilder<> &IRB, Instruction *OrigIns, Instruction *InsertBefore, Value *Addr, Align Alignment, TypeSize TypeStoreSize, bool IsWrite, Value *SizeArgument, bool UseCalls, bool Recover, int AsanScale, int AsanOffset)
Instrument the memory operand Addr.
uint64_t getRedzoneSizeForGlobal(int AsanScale, uint64_t SizeInBytes)
Given SizeInBytes of the Value to be instrunmented, Returns the redzone size corresponding to it.
This is an optimization pass for GlobalISel generic memory operations.