[llvm-dev] InstAlias with tied operands - can it be supported?
via llvm-dev
llvm-dev at lists.llvm.org
Wed Jan 3 18:23:18 PST 2018
Hi Daniel,
I defined checkEarlyTargetMatchPredicate() to explicitly check for the
tied operands, and it worked.
I could define an alias like: InstAlias<"oldOP $rd, $rd, $rs1", (NEWOP
$rd, $rs1)>
However, I had to additionally change AsmMatcherEmitter 'Hack' variable
setting to allow the repeated operand $rd in the AsmString.
Do you or anyone else know the history with this 'Hack' flag?
Thanks,
Ana.
diff --git a/utils/TableGen/AsmMatcherEmitter.cpp
b/utils/TableGen/AsmMatcherEmitter.cpp
index 1a820a5..252fd51 100644
--- a/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/utils/TableGen/AsmMatcherEmitter.cpp
@@ -1526,7 +1526,7 @@ void AsmMatcherInfo::buildInfo() {
II->initialize(*this, SingletonRegisters, Variant,
HasMnemonicFirst);
// Validate the alias definitions.
- II->validate(CommentDelimiter, false);
+ II->validate(CommentDelimiter, true);
Matchables.push_back(std::move(II));
}
On 2017-12-15 03:40, Daniel Sanders wrote:
> Hi,
>
> On Instructions you can use checkEarlyTargetMatchPredicate() to check
> that the operands are the same. There's an example of that in
> MipsAsmParser.cpp for DATI and DAHI. I can't think of a reason
> TableGen couldn't be made to allow this for InstAlias too.
>
>> On 15 Dec 2017, at 02:12, via llvm-dev <llvm-dev at lists.llvm.org>
>> wrote:
>>
>> Hello,
>>
>> InstAlias does not allow tied operands (repeated operands) in the asm
>> string to be matched.
>>
>> It seems this situation is explicitly prevented in
>> AsmMatcherEmitter.cpp:
>>
>> if (!Hack)
>> PrintFatalError(TheDef->getLoc(),
>> "ERROR: matchable with tied operand '" + Tok +
>> "' can never be matched!");
>> // FIXME: Should reject these. The ARM backend hits this with
>> $lane in a
>> // bunch of instructions. It is unclear what the right answer
>> is.
>> …
>>
>> Is there a way to fix this limitation?
>>
>> I would like to express: InstAlias<(opcode $rd, $rd, $rs1), (newopcode
>> $rd, $rs1)>
>>
>> Thank you,
>> Ana.
>>
>>
>> --
>> Ana Pazos
>> Qualcomm Innovation Center, Inc.
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
>> a Linux Foundation Collaborative Project.
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
--
Ana Pazos
Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project.
More information about the llvm-dev
mailing list