diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2009-02-27 13:37:18 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2009-02-27 13:37:18 +0000 |
commit | 7b620afb60382e26ea0c974175b50414f19fc0ff (patch) | |
tree | 842f2838176d1b9fdf5147364cada22a85ce38b2 /include/llvm/Target/TargetLowering.h | |
parent | a17abe19d3b392cf04d8fa45c387edb834fce9e0 (diff) | |
download | external_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.h | 13 |
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 |