[PATCH] D25132: Invoke add-discriminator at -g0 -fsample-profile
Dehao Chen via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 3 10:07:26 PDT 2016
danielcdh updated this revision to Diff 73299.
danielcdh added a comment.
revert the flag change.
https://reviews.llvm.org/D25132
Files:
include/llvm/Transforms/Scalar.h
include/llvm/Transforms/Utils/AddDiscriminators.h
lib/Transforms/Utils/AddDiscriminators.cpp
Index: lib/Transforms/Utils/AddDiscriminators.cpp
===================================================================
--- lib/Transforms/Utils/AddDiscriminators.cpp
+++ lib/Transforms/Utils/AddDiscriminators.cpp
@@ -77,11 +77,16 @@
// The legacy pass of AddDiscriminators.
struct AddDiscriminatorsLegacyPass : public FunctionPass {
static char ID; // Pass identification, replacement for typeid
- AddDiscriminatorsLegacyPass() : FunctionPass(ID) {
+
+ AddDiscriminatorsLegacyPass(bool IsSamplePGO = false) :
+ FunctionPass(ID), IsSamplePGO(IsSamplePGO) {
initializeAddDiscriminatorsLegacyPassPass(*PassRegistry::getPassRegistry());
}
bool runOnFunction(Function &F) override;
+
+ private:
+ bool IsSamplePGO;
};
} // end anonymous namespace
@@ -100,8 +105,8 @@
cl::desc("Disable generation of discriminator information."));
// Create the legacy AddDiscriminatorsPass.
-FunctionPass *llvm::createAddDiscriminatorsPass() {
- return new AddDiscriminatorsLegacyPass();
+FunctionPass *llvm::createAddDiscriminatorsPass(bool IsSamplePGO) {
+ return new AddDiscriminatorsLegacyPass(IsSamplePGO);
}
/// \brief Assign DWARF discriminators.
@@ -155,14 +160,13 @@
/// lexical block for I2 and all the instruction in B2 that share the same
/// file and line location as I2. This new lexical block will have a
/// different discriminator number than I1.
-static bool addDiscriminators(Function &F) {
+static bool addDiscriminators(Function &F, bool IsSamplePGO) {
// If the function has debug information, but the user has disabled
// discriminators, do nothing.
// Simlarly, if the function has no debug info, do nothing.
- // Finally, if this module is built with dwarf versions earlier than 4,
// do nothing (discriminator support is a DWARF 4 feature).
if (NoDiscriminators || !F.getSubprogram() ||
- F.getParent()->getDwarfVersion() < 4)
+ (!IsSamplePGO && F.getParent()->getDwarfVersion() < 4))
return false;
bool Changed = false;
@@ -246,11 +250,11 @@
}
bool AddDiscriminatorsLegacyPass::runOnFunction(Function &F) {
- return addDiscriminators(F);
+ return addDiscriminators(F, IsSamplePGO);
}
PreservedAnalyses AddDiscriminatorsPass::run(Function &F,
FunctionAnalysisManager &AM) {
- if (!addDiscriminators(F))
+ if (!addDiscriminators(F, IsSamplePGO))
return PreservedAnalyses::all();
// FIXME: should be all()
Index: include/llvm/Transforms/Utils/AddDiscriminators.h
===================================================================
--- include/llvm/Transforms/Utils/AddDiscriminators.h
+++ include/llvm/Transforms/Utils/AddDiscriminators.h
@@ -21,7 +21,11 @@
namespace llvm {
class AddDiscriminatorsPass : public PassInfoMixin<AddDiscriminatorsPass> {
+ bool IsSamplePGO;
+
public:
+ AddDiscriminatorsPass(bool IsSamplePGO = false) : IsSamplePGO(IsSamplePGO) {}
+
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
};
} // end namespace llvm
Index: include/llvm/Transforms/Scalar.h
===================================================================
--- include/llvm/Transforms/Scalar.h
+++ include/llvm/Transforms/Scalar.h
@@ -418,7 +418,7 @@
//===----------------------------------------------------------------------===//
//
// AddDiscriminators - Add DWARF path discriminators to the IR.
-FunctionPass *createAddDiscriminatorsPass();
+FunctionPass *createAddDiscriminatorsPass(bool IsSamplePGO = false);
//===----------------------------------------------------------------------===//
//
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25132.73299.patch
Type: text/x-patch
Size: 3574 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161003/2f44e60b/attachment.bin>
More information about the llvm-commits
mailing list