[PATCH] D53895: [LoopUnroll] add parsing for unroll parameters in -passes pipeline

Fedor Sergeev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 24 05:14:46 PST 2018


fedor.sergeev marked 5 inline comments as done.
fedor.sergeev added inline comments.


================
Comment at: lib/Passes/PassBuilder.cpp:1253-1257
+/// This performs customized parsing of pass name with parameters.
+///
+/// We do not need parametrization of passes in textual pipeline very often,
+/// yet on a rare occasion ability to specify parameters right there can be
+/// useful.
----------------
chandlerc wrote:
> Please explain how the parser type parameter works and what is expected of it.
> 
> But better yet, how about we just make this routine accept a callable rather than a class, and have this functions return type be the same as that callable?
> 
> Something like:
> ```
> template <typename ParseCallableT>
> auto parsePassWithParameters(ParseCallableT Parser, ...) -> decltype(std::decl_ref<ParseCallableT>()("")) {
>   ...
> }
> ```
> 
> I suppose you could use result_of or some other trait instead, not sure it'd be any simpler.
> 
> The key idea is to make this just a wrapper of another callable which strips off the pass name and the angle brackets.
> 
> To handle the empty case, just call the callable with an empty string, and have it return the default value.
To avoid complications with ParametersT type deduction decided to pass parameters type explicitly into the macro/parsing helper template.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D53895/new/

https://reviews.llvm.org/D53895





More information about the llvm-commits mailing list