aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Target/TargetLowering.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2009-02-27 13:37:18 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2009-02-27 13:37:18 +0000
commit7b620afb60382e26ea0c974175b50414f19fc0ff (patch)
tree842f2838176d1b9fdf5147364cada22a85ce38b2 /include/llvm/Target/TargetLowering.h
parenta17abe19d3b392cf04d8fa45c387edb834fce9e0 (diff)
downloadexternal_llvm-7b620afb60382e26ea0c974175b50414f19fc0ff.zip
external_llvm-7b620afb60382e26ea0c974175b50414f19fc0ff.tar.gz
external_llvm-7b620afb60382e26ea0c974175b50414f19fc0ff.tar.bz2
Refactor TLS code and add some tests. The tests and expected results are:
pic | declaration | linkage | visibility | !pic | declaration | external | default | tls1.ll tls2.ll | local exec pic | declaration | external | default | tls1-pic.ll tls2-pic.ll | general dynamic !pic | !declaration | external | default | tls3.ll tls4.ll | initial exec pic | !declaration | external | default | tls3-pic.ll tls4-pic.ll | general dynamic !pic | declaration | external | hidden | tls7.ll tls8.ll | local exec pic | declaration | external | hidden | X | local dynamic !pic | !declaration | external | hidden | tls9.ll tls10.ll | local exec pic | !declaration | external | hidden | X | local dynamic !pic | declaration | internal | default | tls5.ll tls6.ll | local exec pic | declaration | internal | default | X | local dynamic The ones marked with an X have not been implemented since local dynamic is not implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65632 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target/TargetLowering.h')
-rw-r--r--include/llvm/Target/TargetLowering.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h
index 2247b36..8ec7f7a 100644
--- a/include/llvm/Target/TargetLowering.h
+++ b/include/llvm/Target/TargetLowering.h
@@ -30,6 +30,7 @@
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/CodeGen/DebugLoc.h"
+#include "llvm/Target/TargetMachine.h"
#include <climits>
#include <map>
#include <vector>
@@ -54,6 +55,18 @@ namespace llvm {
class TargetSubtarget;
class Value;
+ // FIXME: should this be here?
+ namespace TLSModel {
+ enum Model {
+ GeneralDynamic,
+ LocalDynamic,
+ InitialExec,
+ LocalExec
+ };
+ }
+ TLSModel::Model getTLSModel(const GlobalValue *GV, Reloc::Model reloc);
+
+
//===----------------------------------------------------------------------===//
/// TargetLowering - This class defines information used to lower LLVM code to
/// legal SelectionDAG operators that the target instruction selector can accept