[PATCH] D15003: Interface to attach maximum function count from PGO to module as module flags.
Xinliang David Li via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 2 13:04:19 PST 2015
lgtm.
David
On Wed, Dec 2, 2015 at 1:03 PM, Easwaran Raman <eraman at google.com> wrote:
> eraman updated this revision to Diff 41661.
> eraman added a comment.
>
> Ran clang-format with the right options.
>
>
> Repository:
> rL LLVM
>
> http://reviews.llvm.org/D15003
>
> Files:
> include/llvm/IR/Module.h
> lib/IR/Module.cpp
>
> Index: lib/IR/Module.cpp
> ===================================================================
> --- lib/IR/Module.cpp
> +++ lib/IR/Module.cpp
> @@ -491,3 +491,15 @@
> void Module::setPICLevel(PICLevel::Level PL) {
> addModuleFlag(ModFlagBehavior::Error, "PIC Level", PL);
> }
> +
> +void Module::setMaximumFunctionCount(uint64_t Count) {
> + addModuleFlag(ModFlagBehavior::Error, "MaxFunctionCount", Count);
> +}
> +
> +Optional<uint64_t> Module::getMaximumFunctionCount() {
> + auto *Val =
> + cast_or_null<ConstantAsMetadata>(getModuleFlag("MaxFunctionCount"));
> + if (!Val)
> + return None;
> + return cast<ConstantInt>(Val->getValue())->getZExtValue();
> +}
> Index: include/llvm/IR/Module.h
> ===================================================================
> --- include/llvm/IR/Module.h
> +++ include/llvm/IR/Module.h
> @@ -15,6 +15,7 @@
> #ifndef LLVM_IR_MODULE_H
> #define LLVM_IR_MODULE_H
>
> +#include "llvm/ADT/Optional.h"
> #include "llvm/ADT/iterator_range.h"
> #include "llvm/IR/Comdat.h"
> #include "llvm/IR/DataLayout.h"
> @@ -639,6 +640,16 @@
> /// \brief Set the PIC level (small or large model)
> void setPICLevel(PICLevel::Level PL);
> /// @}
> +
> + /// @name Utility functions for querying and setting PGO counts
> + /// @{
> +
> + /// \brief Set maximum function count in PGO mode
> + void setMaximumFunctionCount(uint64_t);
> +
> + /// \brief Returns maximum function count in PGO mode
> + Optional<uint64_t> getMaximumFunctionCount();
> + /// @}
> };
>
> /// An raw_ostream inserter for modules.
>
>
More information about the llvm-commits
mailing list