[TableGen] Change backend callback to require const RecordKeeper (#111064)
Change TableGen backend callback function to require a const RecordKeeper argument (by changing it from function_ref to just a function pointer). This undoes parts of https://github.com/llvm/llvm-project/pull/104716 which was added to enable gradual migration of TableGen backends to use const RecordKeeper (by allowing either const or non-const references). Now that all backends have been migrated to const reference, we do not need this. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
This commit is contained in:
parent
d883ef1076
commit
b91f0def6f
@ -23,8 +23,7 @@ class RecordKeeper;
|
|||||||
class raw_ostream;
|
class raw_ostream;
|
||||||
|
|
||||||
namespace TableGen::Emitter {
|
namespace TableGen::Emitter {
|
||||||
// Supports const and non-const forms of callback functions.
|
using FnT = function_ref<void(const RecordKeeper &Records, raw_ostream &OS)>;
|
||||||
using FnT = function_ref<void(RecordKeeper &Records, raw_ostream &OS)>;
|
|
||||||
|
|
||||||
/// Creating an `Opt` object registers the command line option \p Name with
|
/// Creating an `Opt` object registers the command line option \p Name with
|
||||||
/// TableGen backend and associates the callback \p CB with that option. If
|
/// TableGen backend and associates the callback \p CB with that option. If
|
||||||
@ -37,7 +36,9 @@ struct Opt {
|
|||||||
/// Convienence wrapper around `Opt` that registers `EmitterClass::run` as the
|
/// Convienence wrapper around `Opt` that registers `EmitterClass::run` as the
|
||||||
/// callback.
|
/// callback.
|
||||||
template <class EmitterC> class OptClass : Opt {
|
template <class EmitterC> class OptClass : Opt {
|
||||||
static void run(RecordKeeper &RK, raw_ostream &OS) { EmitterC(RK).run(OS); }
|
static void run(const RecordKeeper &RK, raw_ostream &OS) {
|
||||||
|
EmitterC(RK).run(OS);
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
OptClass(StringRef Name, StringRef Desc) : Opt(Name, run, Desc) {}
|
OptClass(StringRef Name, StringRef Desc) : Opt(Name, run, Desc) {}
|
||||||
@ -45,7 +46,7 @@ public:
|
|||||||
|
|
||||||
/// Apply callback for any command line option registered above. Returns false
|
/// Apply callback for any command line option registered above. Returns false
|
||||||
/// is no callback was applied.
|
/// is no callback was applied.
|
||||||
bool ApplyCallback(RecordKeeper &Records, raw_ostream &OS);
|
bool ApplyCallback(const RecordKeeper &Records, raw_ostream &OS);
|
||||||
|
|
||||||
} // namespace TableGen::Emitter
|
} // namespace TableGen::Emitter
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Opt::Opt(StringRef Name, FnT CB, StringRef Desc, bool ByDefault) {
|
|||||||
|
|
||||||
/// Apply callback specified on the command line. Returns true if no callback
|
/// Apply callback specified on the command line. Returns true if no callback
|
||||||
/// was applied.
|
/// was applied.
|
||||||
bool llvm::TableGen::Emitter::ApplyCallback(RecordKeeper &Records,
|
bool llvm::TableGen::Emitter::ApplyCallback(const RecordKeeper &Records,
|
||||||
raw_ostream &OS) {
|
raw_ostream &OS) {
|
||||||
FnT Fn = CallbackFunction->getValue();
|
FnT Fn = CallbackFunction->getValue();
|
||||||
if (!Fn)
|
if (!Fn)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user