CodeGen.h revision 234353
1226584Sdim//===-- llvm/Support/CodeGen.h - CodeGen Concepts ---------------*- C++ -*-===// 2226584Sdim// 3226584Sdim// The LLVM Compiler Infrastructure 4226584Sdim// 5226584Sdim// This file is distributed under the University of Illinois Open Source 6226584Sdim// License. See LICENSE.TXT for details. 7226584Sdim// 8226584Sdim//===----------------------------------------------------------------------===// 9226584Sdim// 10226584Sdim// This file define some types which define code generation concepts. For 11226584Sdim// example, relocation model. 12226584Sdim// 13226584Sdim//===----------------------------------------------------------------------===// 14226584Sdim 15226584Sdim#ifndef LLVM_SUPPORT_CODEGEN_H 16226584Sdim#define LLVM_SUPPORT_CODEGEN_H 17226584Sdim 18226584Sdimnamespace llvm { 19226584Sdim 20226584Sdim // Relocation model types. 21226584Sdim namespace Reloc { 22226584Sdim enum Model { Default, Static, PIC_, DynamicNoPIC }; 23226584Sdim } 24226584Sdim 25226584Sdim // Code model types. 26226584Sdim namespace CodeModel { 27226584Sdim enum Model { Default, JITDefault, Small, Kernel, Medium, Large }; 28226584Sdim } 29226584Sdim 30234353Sdim // TLS models. 31234353Sdim namespace TLSModel { 32234353Sdim enum Model { 33234353Sdim GeneralDynamic, 34234353Sdim LocalDynamic, 35234353Sdim InitialExec, 36234353Sdim LocalExec 37234353Sdim }; 38234353Sdim } 39234353Sdim 40234353Sdim // Code generation optimization level. 41234353Sdim namespace CodeGenOpt { 42234353Sdim enum Level { 43234353Sdim None, // -O0 44234353Sdim Less, // -O1 45234353Sdim Default, // -O2, -Os 46234353Sdim Aggressive // -O3 47234353Sdim }; 48234353Sdim } 49234353Sdim 50226584Sdim} // end llvm namespace 51226584Sdim 52226584Sdim#endif 53