Skip to content

Commit

Permalink
Fix regression after D150436
Browse files Browse the repository at this point in the history
llvm-clang-x86_64-expensive-checks-debian will fail after D150436 merged.
The fail occurred in X86, I changed the sort rule in AsmMatcher in Patch D150436, so x86 code will arrive line 633 first(will not affect other targets).
The logic here want to use the order record written in source file to make AsmMatcher to first use AVX instructions, it used field HasPositionOrder.
But the condition here just makes sure one of the compared record is subclass of Instruction and has field HasPositionOrder true, and didn't check another.

(Committing on behalf of @XinWang10 to unblock broken expensive-cjhecks builds)

Differential Revision: https://reviews.llvm.org/D150651
  • Loading branch information
XinWang10 authored and RKSimon committed May 16, 2023
1 parent d4a6e4c commit 8a5450d
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion llvm/utils/TableGen/AsmMatcherEmitter.cpp
Expand Up @@ -636,7 +636,9 @@ struct MatchableInfo {
// We use the ID to sort AVX instruction before AVX512 instruction in
// matching table.
if (TheDef->isSubClassOf("Instruction") &&
TheDef->getValueAsBit("HasPositionOrder"))
TheDef->getValueAsBit("HasPositionOrder") &&
RHS.TheDef->isSubClassOf("Instruction") &&
RHS.TheDef->getValueAsBit("HasPositionOrder"))
return TheDef->getID() < RHS.TheDef->getID();

// Give matches that require more features higher precedence. This is useful
Expand Down

0 comments on commit 8a5450d

Please sign in to comment.