summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2017-03-10 10:31:56 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2017-03-10 10:31:56 +0000
commit5d8aea100926f0258334b3ef3efa523aeebcd224 (patch)
tree644b1c946d8b381e6cb608fd9c492c134d8b3740 /llvm/lib
parentb7da0eb50e1188bda2f0635bc63ab89e0932a054 (diff)
downloadbcm5719-llvm-5d8aea100926f0258334b3ef3efa523aeebcd224.tar.gz
bcm5719-llvm-5d8aea100926f0258334b3ef3efa523aeebcd224.zip
WholeProgramDevirt: Fixed compilation error under MSVS2015.
It was introduced in: r296945 WholeProgramDevirt: Implement exporting for single-impl devirtualization. --------------------- r296939 WholeProgramDevirt: Add any unsuccessful llvm.type.checked.load devirtualizations to the list of llvm.type.test users. --------------------- Microsoft Visual Studio Community 2015 Version 14.0.23107.0 D14REL Does not compile that code without additional brackets, showing multiple error like below: WholeProgramDevirt.cpp(1216): error C2958: the left bracket '[' found at 'c:\access_softek\llvm\lib\transforms\ipo\wholeprogramdevirt.cpp(1216)' was not matched correctly WholeProgramDevirt.cpp(1216): error C2143: syntax error: missing ']' before '}' WholeProgramDevirt.cpp(1216): error C2143: syntax error: missing ';' before '}' WholeProgramDevirt.cpp(1216): error C2059: syntax error: ']' llvm-svn: 297451
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
index 51d30f3c244..b5d87b16740 100644
--- a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+++ b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
@@ -1211,25 +1211,34 @@ bool DevirtModule::run() {
if (!FS)
continue;
// FIXME: Only add live functions.
- for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls())
- for (Metadata *MD : MetadataByGUID[VF.GUID])
+ for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) {
+ for (Metadata *MD : MetadataByGUID[VF.GUID]) {
CallSlots[{MD, VF.Offset}].CSInfo.SummaryHasTypeTestAssumeUsers =
true;
- for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls())
- for (Metadata *MD : MetadataByGUID[VF.GUID])
+ }
+ }
+ for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls()) {
+ for (Metadata *MD : MetadataByGUID[VF.GUID]) {
CallSlots[{MD, VF.Offset}]
.CSInfo.SummaryTypeCheckedLoadUsers.push_back(FS);
+ }
+ }
for (const FunctionSummary::ConstVCall &VC :
- FS->type_test_assume_const_vcalls())
- for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID])
+ FS->type_test_assume_const_vcalls()) {
+ for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) {
CallSlots[{MD, VC.VFunc.Offset}]
- .ConstCSInfo[VC.Args].SummaryHasTypeTestAssumeUsers = true;
+ .ConstCSInfo[VC.Args]
+ .SummaryHasTypeTestAssumeUsers = true;
+ }
+ }
for (const FunctionSummary::ConstVCall &VC :
- FS->type_checked_load_const_vcalls())
- for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID])
+ FS->type_checked_load_const_vcalls()) {
+ for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) {
CallSlots[{MD, VC.VFunc.Offset}]
.ConstCSInfo[VC.Args]
.SummaryTypeCheckedLoadUsers.push_back(FS);
+ }
+ }
}
}
}
OpenPOWER on IntegriCloud