[PATCH] D148903: [PGO] Avoid potential const_cast UB (NFC)
Christian Ulmann via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 2 02:22:28 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rGa4cc7e784f93: [PGO] Avoid potential const_cast UB (NFC) (authored by Dinistro).
Changed prior to commit:
https://reviews.llvm.org/D148903?vs=515638&id=518658#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D148903/new/
https://reviews.llvm.org/D148903
Files:
llvm/include/llvm/Transforms/Instrumentation/CFGMST.h
llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
Index: llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
===================================================================
--- llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+++ llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
@@ -484,14 +484,14 @@
/// Note that the CFG can be a multi-graph. So there might be multiple edges
/// with the same SrcBB and DestBB.
struct PGOEdge {
- const BasicBlock *SrcBB;
- const BasicBlock *DestBB;
+ BasicBlock *SrcBB;
+ BasicBlock *DestBB;
uint64_t Weight;
bool InMST = false;
bool Removed = false;
bool IsCritical = false;
- PGOEdge(const BasicBlock *Src, const BasicBlock *Dest, uint64_t W = 1)
+ PGOEdge(BasicBlock *Src, BasicBlock *Dest, uint64_t W = 1)
: SrcBB(Src), DestBB(Dest), Weight(W) {}
/// Return the information string of an edge.
@@ -786,8 +786,8 @@
if (E->InMST || E->Removed)
return nullptr;
- BasicBlock *SrcBB = const_cast<BasicBlock *>(E->SrcBB);
- BasicBlock *DestBB = const_cast<BasicBlock *>(E->DestBB);
+ BasicBlock *SrcBB = E->SrcBB;
+ BasicBlock *DestBB = E->DestBB;
// For a fake edge, instrument the real BB.
if (SrcBB == nullptr)
return DestBB;
@@ -988,12 +988,11 @@
// This class represents a CFG edge in profile use compilation.
struct PGOUseEdge : public PGOEdge {
+ using PGOEdge::PGOEdge;
+
bool CountValid = false;
uint64_t CountValue = 0;
- PGOUseEdge(const BasicBlock *Src, const BasicBlock *Dest, uint64_t W = 1)
- : PGOEdge(Src, Dest, W) {}
-
// Set edge count value
void setEdgeCount(uint64_t Value) {
CountValue = Value;
Index: llvm/include/llvm/Transforms/Instrumentation/CFGMST.h
===================================================================
--- llvm/include/llvm/Transforms/Instrumentation/CFGMST.h
+++ llvm/include/llvm/Transforms/Instrumentation/CFGMST.h
@@ -100,7 +100,7 @@
void buildEdges() {
LLVM_DEBUG(dbgs() << "Build Edge on " << F.getName() << "\n");
- const BasicBlock *Entry = &(F.getEntryBlock());
+ BasicBlock *Entry = &(F.getEntryBlock());
uint64_t EntryWeight = (BFI != nullptr ? BFI->getEntryFreq() : 2);
// If we want to instrument the entry count, lower the weight to 0.
if (InstrumentFuncEntry)
@@ -257,7 +257,7 @@
}
// Add an edge to AllEdges with weight W.
- Edge &addEdge(const BasicBlock *Src, const BasicBlock *Dest, uint64_t W) {
+ Edge &addEdge(BasicBlock *Src, BasicBlock *Dest, uint64_t W) {
uint32_t Index = BBInfos.size();
auto Iter = BBInfos.end();
bool Inserted;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D148903.518658.patch
Type: text/x-patch
Size: 2561 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230502/24c9a87a/attachment.bin>
More information about the llvm-commits
mailing list