summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MIRParser
diff options
context:
space:
mode:
authorDiana Picus <diana.picus@linaro.org>2017-08-02 11:09:30 +0000
committerDiana Picus <diana.picus@linaro.org>2017-08-02 11:09:30 +0000
commitd5a00b0ff645be2fa219fd9abd95527c70ccdc5c (patch)
treebdf65c5756046f935e1fe1ee4e6700046890836d /llvm/lib/CodeGen/MIRParser
parentf5a4394ad6a402795ee0e5b3c8836b955ba00aed (diff)
downloadbcm5719-llvm-d5a00b0ff645be2fa219fd9abd95527c70ccdc5c.tar.gz
bcm5719-llvm-d5a00b0ff645be2fa219fd9abd95527c70ccdc5c.zip
[MIR] Print target-specific constant pools
This should enable us to test the generation of target-specific constant pools, e.g. for ARM: constants: - id: 0 value: 'g(GOT_PREL)-(LPC0+8-.)' alignment: 4 isTargetSpecific: true I intend to use this to test PIC support in GlobalISel for ARM. This is difficult to test outside of that context, since the existing MIR tests usually rely on parser support as well, and that seems a bit trickier to add. We could try to add a unit test, but the setup for that seems rather convoluted and overkill. We do test however that the parser reports a nice error when encountering a target-specific constant pool. Differential Revision: https://reviews.llvm.org/D36092 llvm-svn: 309806
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser')
-rw-r--r--llvm/lib/CodeGen/MIRParser/MIRParser.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
index d0b46c4668b..5df8dbce36a 100644
--- a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+++ b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
@@ -719,6 +719,10 @@ bool MIRParserImpl::initializeConstantPool(PerFunctionMIParsingState &PFS,
const auto &M = *MF.getFunction()->getParent();
SMDiagnostic Error;
for (const auto &YamlConstant : YamlMF.Constants) {
+ if (YamlConstant.IsTargetSpecific)
+ // FIXME: Support target-specific constant pools
+ return error(YamlConstant.Value.SourceRange.Start,
+ "Can't parse target-specific constant pool entries yet");
const Constant *Value = dyn_cast_or_null<Constant>(
parseConstantValue(YamlConstant.Value.Value, Error, M));
if (!Value)
OpenPOWER on IntegriCloud