Skip to content

Commit 42a4d5e

Browse files
authored
[LoongArch] Set isBarrier to true for instruction 'b' (llvm#72339)
Instr "b offs26" represent to an unconditional branch in LoongArch. Set isBarrier to 1 in tablegen for it, so that MCInstrAnalysis can return correctly. Fixes llvm#71903.
1 parent 8630cf2 commit 42a4d5e

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

llvm/lib/Target/LoongArch/LoongArchInstrInfo.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,7 @@ class Br_I26<bits<32> op>
646646
: FmtI26<op, (outs), (ins simm26_b:$imm26), "$imm26"> {
647647
let isBranch = 1;
648648
let isTerminator = 1;
649+
let isBarrier = 1;
649650
}
650651
} // hasSideEffects = 0, mayLoad = 0, mayStore = 0
651652

llvm/unittests/Target/LoongArch/MCInstrAnalysisTest.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,13 @@ TEST_P(InstrAnalysisTest, IsBranch) {
9494

9595
TEST_P(InstrAnalysisTest, IsConditionalBranch) {
9696
EXPECT_TRUE(Analysis->isConditionalBranch(beq()));
97-
// FIXME: Instr 'b' is not a ConditionalBranch, so the analysis here is
98-
// wrong. The following patch will fix it.
99-
EXPECT_TRUE(Analysis->isConditionalBranch(b()));
97+
EXPECT_FALSE(Analysis->isConditionalBranch(b()));
10098
EXPECT_FALSE(Analysis->isConditionalBranch(bl()));
10199
}
102100

103101
TEST_P(InstrAnalysisTest, IsUnconditionalBranch) {
104102
EXPECT_FALSE(Analysis->isUnconditionalBranch(beq()));
105-
// FIXME: Instr 'b' is an UnconditionalBranch, so the analysis here is
106-
// wrong. The following patch will fix it.
107-
EXPECT_FALSE(Analysis->isUnconditionalBranch(b()));
103+
EXPECT_TRUE(Analysis->isUnconditionalBranch(b()));
108104
EXPECT_FALSE(Analysis->isUnconditionalBranch(bl()));
109105
EXPECT_TRUE(Analysis->isUnconditionalBranch(jirl(LoongArch::R0)));
110106
EXPECT_FALSE(Analysis->isUnconditionalBranch(jirl(LoongArch::R1)));

0 commit comments

Comments
 (0)