1//===-- llvm/Support/CodeGen.h - CodeGen Concepts ---------------*- 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// This file define some types which define code generation concepts. For 11// example, relocation model. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef LLVM_SUPPORT_CODEGEN_H 16#define LLVM_SUPPORT_CODEGEN_H 17 18namespace llvm { 19 20 // Relocation model types. 21 namespace Reloc { 22 enum Model { Default, Static, PIC_, DynamicNoPIC }; 23 } 24 25 // Code model types. 26 namespace CodeModel { 27 enum Model { Default, JITDefault, Small, Kernel, Medium, Large }; 28 } 29 30 // TLS models. 31 namespace TLSModel { 32 enum Model { 33 GeneralDynamic, 34 LocalDynamic, 35 InitialExec, 36 LocalExec 37 }; 38 } 39 40 // Code generation optimization level. 41 namespace CodeGenOpt { 42 enum Level { 43 None, // -O0 44 Less, // -O1 45 Default, // -O2, -Os 46 Aggressive // -O3 47 }; 48 } 49 50} // end llvm namespace 51 52#endif 53