diff options
author | Ivan A. Kosarev <ikosarev@accesssoftek.com> | 2017-10-31 11:05:34 +0000 |
---|---|---|
committer | Ivan A. Kosarev <ikosarev@accesssoftek.com> | 2017-10-31 11:05:34 +0000 |
commit | b9c59f36fc2ae7008801c2c2966db7e3a8427251 (patch) | |
tree | f223281598aa8f9f7b3c637ba99910fe47e2fdef /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 7263f1bda695772732c5a8ddbed2d07713a7e59c (diff) | |
download | bcm5719-llvm-b9c59f36fc2ae7008801c2c2966db7e3a8427251.tar.gz bcm5719-llvm-b9c59f36fc2ae7008801c2c2966db7e3a8427251.zip |
[CodeGen] Propagate may-alias'ness of lvalues with TBAA info
This patch fixes various places in clang to propagate may-alias
TBAA access descriptors during construction of lvalues, thus
eliminating the need for the LValueBaseInfo::MayAlias flag.
This is part of D38126 reworked to be a separate patch to
simplify review.
Differential Revision: https://reviews.llvm.org/D39008
llvm-svn: 316988
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 4f7d6eaed60..2254f3e70d5 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -606,17 +606,19 @@ llvm::MDNode *CodeGenModule::getTBAAAccessTagInfo(TBAAAccessInfo Info) { return TBAA->getAccessTagInfo(Info); } -TBAAAccessInfo CodeGenModule::getTBAAMayAliasAccessInfo() { +TBAAAccessInfo CodeGenModule::mergeTBAAInfoForCast(TBAAAccessInfo SourceInfo, + TBAAAccessInfo TargetInfo) { if (!TBAA) return TBAAAccessInfo(); - return TBAA->getMayAliasAccessInfo(); + return TBAA->mergeTBAAInfoForCast(SourceInfo, TargetInfo); } -TBAAAccessInfo CodeGenModule::mergeTBAAInfoForCast(TBAAAccessInfo SourceInfo, - TBAAAccessInfo TargetInfo) { +TBAAAccessInfo +CodeGenModule::mergeTBAAInfoForConditionalOperator(TBAAAccessInfo InfoA, + TBAAAccessInfo InfoB) { if (!TBAA) return TBAAAccessInfo(); - return TBAA->mergeTBAAInfoForCast(SourceInfo, TargetInfo); + return TBAA->mergeTBAAInfoForConditionalOperator(InfoA, InfoB); } void CodeGenModule::DecorateInstructionWithTBAA(llvm::Instruction *Inst, |