diff options
| author | Ivan A. Kosarev <ikosarev@accesssoftek.com> | 2017-10-13 16:50:50 +0000 |
|---|---|---|
| committer | Ivan A. Kosarev <ikosarev@accesssoftek.com> | 2017-10-13 16:50:50 +0000 |
| commit | 1590fd3aa832cd2407d945418fc6934a6b3fd8b9 (patch) | |
| tree | 8c979df489cdf10abe7b1a94cce052ef3070bb74 /clang/lib/CodeGen/CGExpr.cpp | |
| parent | 9029564e8c8edafa078b91b0f6b16b19438dabf7 (diff) | |
| download | bcm5719-llvm-1590fd3aa832cd2407d945418fc6934a6b3fd8b9.tar.gz bcm5719-llvm-1590fd3aa832cd2407d945418fc6934a6b3fd8b9.zip | |
[CodeGen] EmitLoadOfReference() to generate TBAA info along with LValue base info
This patch should not bring in any functional changes.
Differential Revision: https://reviews.llvm.org/D38793
llvm-svn: 315705
Diffstat (limited to 'clang/lib/CodeGen/CGExpr.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index bb2e8550bd2..2e609deabfe 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -2149,7 +2149,11 @@ static LValue EmitThreadPrivateVarDeclLValue( Address CodeGenFunction::EmitLoadOfReference(Address Addr, const ReferenceType *RefTy, - LValueBaseInfo *BaseInfo) { + LValueBaseInfo *BaseInfo, + TBAAAccessInfo *TBAAInfo) { + if (TBAAInfo) + *TBAAInfo = CGM.getTBAAAccessInfo(RefTy->getPointeeType()); + llvm::Value *Ptr = Builder.CreateLoad(Addr); return Address(Ptr, getNaturalTypeAlignment(RefTy->getPointeeType(), BaseInfo, /*forPointee*/ true)); @@ -2158,9 +2162,9 @@ Address CodeGenFunction::EmitLoadOfReference(Address Addr, LValue CodeGenFunction::EmitLoadOfReferenceLValue(Address RefAddr, const ReferenceType *RefTy) { LValueBaseInfo BaseInfo; - Address Addr = EmitLoadOfReference(RefAddr, RefTy, &BaseInfo); - return MakeAddrLValue(Addr, RefTy->getPointeeType(), BaseInfo, - CGM.getTBAAAccessInfo(RefTy->getPointeeType())); + TBAAAccessInfo TBAAInfo; + Address Addr = EmitLoadOfReference(RefAddr, RefTy, &BaseInfo, &TBAAInfo); + return MakeAddrLValue(Addr, RefTy->getPointeeType(), BaseInfo, TBAAInfo); } Address CodeGenFunction::EmitLoadOfPointer(Address Ptr, |

