#ifndef LLVM_SUPPORT_CODEGEN_H
#define LLVM_SUPPORT_CODEGEN_H
namespace llvm {
namespace Reloc {
enum Model { Static, PIC_, DynamicNoPIC, ROPI, RWPI, ROPI_RWPI };
}
namespace CodeModel {
enum Model { Tiny, Small, Kernel, Medium, Large };
}
namespace PICLevel {
enum Level { NotPIC=0, SmallPIC=1, BigPIC=2 };
}
namespace PIELevel {
enum Level { Default=0, Small=1, Large=2 };
}
namespace TLSModel {
enum Model {
GeneralDynamic,
LocalDynamic,
InitialExec,
LocalExec
};
}
namespace CodeGenOpt {
enum Level {
None = 0, Less = 1, Default = 2, Aggressive = 3 };
}
enum CodeGenFileType {
CGFT_AssemblyFile,
CGFT_ObjectFile,
CGFT_Null };
enum class FramePointerKind { None, NonLeaf, All };
namespace ZeroCallUsedRegs {
const unsigned ONLY_USED = 1U << 1;
const unsigned ONLY_GPR = 1U << 2;
const unsigned ONLY_ARG = 1U << 3;
enum class ZeroCallUsedRegsKind : unsigned int {
Skip = 1U << 0,
UsedGPRArg = ONLY_USED | ONLY_GPR | ONLY_ARG,
UsedGPR = ONLY_USED | ONLY_GPR,
UsedArg = ONLY_USED | ONLY_ARG,
Used = ONLY_USED,
AllGPRArg = ONLY_GPR | ONLY_ARG,
AllGPR = ONLY_GPR,
AllArg = ONLY_ARG,
All = 0,
};
}
enum class UWTableKind {
None = 0, Sync = 1, Async = 2, Default = 2,
};
enum class FunctionReturnThunksKind : unsigned int {
Keep = 0, Extern = 1, Invalid = 2, };
}
#endif