[llvm] [BOLT] Add support for safe-icf (PR #116275)
Maksim Panchenko via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 13 16:26:55 PST 2024
================
@@ -27,15 +27,53 @@ class IdenticalCodeFolding : public BinaryFunctionPass {
return false;
if (BF.hasSDTMarker())
return false;
+ if (BF.hasAddressTaken())
+ return false;
return BinaryFunctionPass::shouldOptimize(BF);
}
public:
+ enum class ICFLevel {
+ None, // No ICF. (Default)
+ Safe, // Safe ICF for all sections.
+ All, // Aggressive ICF for code.
+ };
explicit IdenticalCodeFolding(const cl::opt<bool> &PrintPass)
: BinaryFunctionPass(PrintPass) {}
const char *getName() const override { return "identical-code-folding"; }
Error runOnFunctions(BinaryContext &BC) override;
+
+private:
+ /// Bit vector of memory addresses of vtables.
+ llvm::BitVector VtableBitVector;
----------------
maksfb wrote:
nit:
```suggestion
llvm::BitVector VTableBitVector;
```
https://github.com/llvm/llvm-project/pull/116275
More information about the llvm-commits
mailing list