summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorIvan A. Kosarev <ikosarev@accesssoftek.com>2017-10-31 11:05:34 +0000
committerIvan A. Kosarev <ikosarev@accesssoftek.com>2017-10-31 11:05:34 +0000
commitb9c59f36fc2ae7008801c2c2966db7e3a8427251 (patch)
treef223281598aa8f9f7b3c637ba99910fe47e2fdef /clang/lib/CodeGen/CodeGenModule.cpp
parent7263f1bda695772732c5a8ddbed2d07713a7e59c (diff)
downloadbcm5719-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.cpp12
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,
OpenPOWER on IntegriCloud