summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff options
context:
space:
mode:
authorLauro Ramos Venancio <lauro.venancio@gmail.com>2007-04-21 20:56:26 +0000
committerLauro Ramos Venancio <lauro.venancio@gmail.com>2007-04-21 20:56:26 +0000
commit4e91908f1747553bb064d2841313bac6727289b1 (patch)
treee5137e85d9c084705ef483e0aa333eb5fe319fc2 /llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
parenta043ed1fc2a7c1a4f70ea6b1a432b429b6052386 (diff)
downloadbcm5719-llvm-4e91908f1747553bb064d2841313bac6727289b1.tar.gz
bcm5719-llvm-4e91908f1747553bb064d2841313bac6727289b1.zip
X86 TLS: Implement review feedback.
llvm-svn: 36318
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 75fbf8afb9c..05348da6e87 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -13,7 +13,6 @@
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/Constants.h"
-#include "llvm/GlobalValue.h"
#include "llvm/GlobalVariable.h"
#include "llvm/Intrinsics.h"
#include "llvm/Assembly/Writer.h"
@@ -2573,6 +2572,17 @@ HandleSDNode::~HandleSDNode() {
MorphNodeTo(ISD::HANDLENODE, VTs, 0, 0); // Drops operand uses.
}
+GlobalAddressSDNode::GlobalAddressSDNode(bool isTarget, const GlobalValue *GA,
+ MVT::ValueType VT, int o)
+ : SDNode(isa<GlobalVariable>(GA) &&
+ dyn_cast<GlobalVariable>(GA)->isThreadLocal() ?
+ // Thread Local
+ (isTarget ? ISD::TargetGlobalTLSAddress : ISD::GlobalTLSAddress) :
+ // Non Thread Local
+ (isTarget ? ISD::TargetGlobalAddress : ISD::GlobalAddress),
+ getSDVTList(VT)), Offset(o) {
+ TheGlobal = const_cast<GlobalValue*>(GA);
+}
/// Profile - Gather unique data for the node.
///
OpenPOWER on IntegriCloud