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,
47 MaybeAlign Alignment,
uint32_t TypeStoreSize,
48 bool IsWrite, Value *SizeArgument,
bool UseCalls,
49 bool Recover,
int Scale,
int Offset);
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, MaybeAlign Alignment, uint32_t 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.