| Index: lib/Transforms/NaCl/ExpandTls.cpp
|
| diff --git a/lib/Transforms/NaCl/ExpandTls.cpp b/lib/Transforms/NaCl/ExpandTls.cpp
|
| index 53e1c92a969ca0aa1681a37327eabbfbfc157aec..19837f74487641ebda0e8f496ab9e190c8e77929 100644
|
| --- a/lib/Transforms/NaCl/ExpandTls.cpp
|
| +++ b/lib/Transforms/NaCl/ExpandTls.cpp
|
| @@ -29,6 +29,7 @@
|
| #include "llvm/IR/DataLayout.h"
|
| #include "llvm/IR/DerivedTypes.h"
|
| #include "llvm/IR/Instructions.h"
|
| +#include "llvm/IR/Intrinsics.h"
|
| #include "llvm/IR/Module.h"
|
| #include "llvm/Support/raw_ostream.h"
|
| #include "llvm/Transforms/NaCl.h"
|
| @@ -233,17 +234,7 @@ static PointerType *buildTlsTemplate(Module &M, std::vector<VarInfo> *TlsVars) {
|
| static void rewriteTlsVars(Module &M, std::vector<VarInfo> *TlsVars,
|
| PointerType *TemplatePtrType) {
|
| // Set up the intrinsic that reads the thread pointer.
|
| - Type *i8 = Type::getInt8Ty(M.getContext());
|
| - FunctionType *ReadTpType = FunctionType::get(PointerType::get(i8, 0),
|
| - /*isVarArg=*/false);
|
| - AttrBuilder B;
|
| - B.addAttribute(Attribute::ReadOnly);
|
| - B.addAttribute(Attribute::NoUnwind);
|
| - AttributeSet ReadTpAttrs = AttributeSet::get(
|
| - M.getContext(), AttributeSet::FunctionIndex, B);
|
| - Constant *ReadTpFunc = M.getOrInsertTargetIntrinsic("llvm.nacl.read.tp",
|
| - ReadTpType,
|
| - ReadTpAttrs);
|
| + Function *ReadTpFunc = Intrinsic::getDeclaration(&M, Intrinsic::nacl_read_tp);
|
|
|
| for (std::vector<VarInfo>::iterator VarInfo = TlsVars->begin();
|
| VarInfo != TlsVars->end();
|
|
|