diff options
author | Zachary Turner <zturner@google.com> | 2016-09-08 18:22:44 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-09-08 18:22:44 +0000 |
commit | 35377f88f583e318495e9b754a9f16e26aaa10da (patch) | |
tree | 50820db066ee83c563167234a328747a46800683 /llvm/lib/CodeGen | |
parent | ba7c5cfbbb3dd1de41234e6ed1f97de3192f1172 (diff) | |
download | bcm5719-llvm-35377f88f583e318495e9b754a9f16e26aaa10da.tar.gz bcm5719-llvm-35377f88f583e318495e9b754a9f16e26aaa10da.zip |
[YAMLIO] Add the ability to map with context.
mapping a yaml field to an object in code has always been
a stateless operation. You could still pass state by using the
`setContext` function of the YAMLIO object, but this represented
global state for the entire yaml input. In order to have
context-sensitive state, it is necessary to pass this state in
at the granularity of an individual mapping.
This patch adds support for this type of context-sensitive state.
You simply pass an additional argument of type T to the
`mapRequired` or `mapOptional` functions, and provided you have
specialized a `MappingContextTraits<U, T>` class with the
appropriate mapping function, you can pass this context into
the mapping function.
Reviewed By: chandlerc
Differential Revision: https://reviews.llvm.org/D24162
llvm-svn: 280977
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIRParser.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp index 6dae8b84d37..9a36405bce9 100644 --- a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp @@ -257,7 +257,8 @@ std::unique_ptr<Module> MIRParserImpl::parse() { bool MIRParserImpl::parseMachineFunction(yaml::Input &In, Module &M, bool NoLLVMIR) { auto MF = llvm::make_unique<yaml::MachineFunction>(); - yaml::yamlize(In, *MF, false); + yaml::EmptyContext Ctx; + yaml::yamlize(In, *MF, false, Ctx); if (In.error()) return true; auto FunctionName = MF->Name; |