Skip to content

Commit 78804f8

Browse files
committed
[MC] Remove the evaluateAsAbsolute overload that takes a MCAsmLayout parameter
Continue the MCAsmLayout removal work started by 67957a4.
1 parent 59d7d4b commit 78804f8

File tree

6 files changed

+12
-21
lines changed

6 files changed

+12
-21
lines changed

llvm/include/llvm/MC/MCExpr.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ class MCExpr {
5454
SMLoc Loc;
5555

5656
bool evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm,
57-
const MCAsmLayout *Layout,
5857
const SectionAddrMap *Addrs, bool InSet) const;
5958

6059
protected:
@@ -101,7 +100,6 @@ class MCExpr {
101100
bool evaluateAsAbsolute(int64_t &Res) const;
102101
bool evaluateAsAbsolute(int64_t &Res, const MCAssembler &Asm) const;
103102
bool evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm) const;
104-
bool evaluateAsAbsolute(int64_t &Res, const MCAsmLayout &Layout) const;
105103

106104
bool evaluateKnownAbsolute(int64_t &Res, const MCAsmLayout &Layout) const;
107105

llvm/lib/MC/MCAssembler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,7 +1151,7 @@ bool MCAssembler::relaxLEB(MCLEBFragment &LF) {
11511151
// fragments. This is used by __gcc_except_table.
11521152
bool Abs = getSubsectionsViaSymbols()
11531153
? LF.getValue().evaluateKnownAbsolute(Value, *Layout)
1154-
: LF.getValue().evaluateAsAbsolute(Value, *Layout);
1154+
: LF.getValue().evaluateAsAbsolute(Value, *this);
11551155
if (!Abs) {
11561156
bool Relaxed, UseZeroPad;
11571157
std::tie(Relaxed, UseZeroPad) = getBackend().relaxLEB128(*this, LF, Value);
@@ -1269,7 +1269,7 @@ bool MCAssembler::relaxDwarfCallFrameFragment(MCDwarfCallFrameFragment &DF) {
12691269

12701270
MCContext &Context = getContext();
12711271
int64_t Value;
1272-
bool Abs = DF.getAddrDelta().evaluateAsAbsolute(Value, *Layout);
1272+
bool Abs = DF.getAddrDelta().evaluateAsAbsolute(Value, *this);
12731273
if (!Abs) {
12741274
getContext().reportError(DF.getAddrDelta().getLoc(),
12751275
"invalid CFI advance_loc expression");

llvm/lib/MC/MCExpr.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -545,37 +545,30 @@ void MCTargetExpr::anchor() {}
545545
/* *** */
546546

547547
bool MCExpr::evaluateAsAbsolute(int64_t &Res) const {
548-
return evaluateAsAbsolute(Res, nullptr, nullptr, nullptr, false);
549-
}
550-
551-
bool MCExpr::evaluateAsAbsolute(int64_t &Res,
552-
const MCAsmLayout &Layout) const {
553-
return evaluateAsAbsolute(Res, &Layout.getAssembler(), &Layout, nullptr, false);
548+
return evaluateAsAbsolute(Res, nullptr, nullptr, false);
554549
}
555550

556551
bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler &Asm,
557552
const SectionAddrMap &Addrs) const {
558553
// Setting InSet causes us to absolutize differences across sections and that
559554
// is what the MachO writer uses Addrs for.
560-
return evaluateAsAbsolute(Res, &Asm, Asm.getLayout(), &Addrs, true);
555+
return evaluateAsAbsolute(Res, &Asm, &Addrs, true);
561556
}
562557

563558
bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler &Asm) const {
564-
return evaluateAsAbsolute(Res, &Asm, nullptr, nullptr, false);
559+
return evaluateAsAbsolute(Res, &Asm, nullptr, false);
565560
}
566561

567562
bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm) const {
568-
return evaluateAsAbsolute(Res, Asm, nullptr, nullptr, false);
563+
return evaluateAsAbsolute(Res, Asm, nullptr, false);
569564
}
570565

571566
bool MCExpr::evaluateKnownAbsolute(int64_t &Res,
572567
const MCAsmLayout &Layout) const {
573-
return evaluateAsAbsolute(Res, &Layout.getAssembler(), &Layout, nullptr,
574-
true);
568+
return evaluateAsAbsolute(Res, &Layout.getAssembler(), nullptr, true);
575569
}
576570

577571
bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm,
578-
const MCAsmLayout *Layout,
579572
const SectionAddrMap *Addrs, bool InSet) const {
580573
MCValue Value;
581574

llvm/lib/MC/WasmObjectWriter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1633,7 +1633,7 @@ uint64_t WasmObjectWriter::writeOneObject(MCAssembler &Asm,
16331633
WS.getName());
16341634

16351635
int64_t Size = 0;
1636-
if (!WS.getSize()->evaluateAsAbsolute(Size, Layout))
1636+
if (!WS.getSize()->evaluateAsAbsolute(Size, Asm))
16371637
report_fatal_error(".size expression must be evaluatable");
16381638

16391639
auto &DataSection = static_cast<MCSectionWasm &>(WS.getSection());
@@ -1752,7 +1752,7 @@ uint64_t WasmObjectWriter::writeOneObject(MCAssembler &Asm,
17521752
// size of the alias. When an offset from the base is involved this
17531753
// can result in a offset + size goes past the end of the data section
17541754
// which out object format doesn't support. So we must clamp it.
1755-
if (!Base->getSize()->evaluateAsAbsolute(Size, Layout))
1755+
if (!Base->getSize()->evaluateAsAbsolute(Size, Asm))
17561756
report_fatal_error(".size expression must be evaluatable");
17571757
const WasmDataSegment &Segment =
17581758
DataSegments[DataSection.getSegmentIndex()];

llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ bool LoongArchAsmBackend::relaxDwarfLineAddr(const MCAssembler &Asm,
323323
size_t OldSize = Data.size();
324324

325325
int64_t Value;
326-
if (AddrDelta.evaluateAsAbsolute(Value, Layout))
326+
if (AddrDelta.evaluateAsAbsolute(Value, Asm))
327327
return false;
328328
bool IsAbsolute = AddrDelta.evaluateKnownAbsolute(Value, Layout);
329329
assert(IsAbsolute && "CFA with invalid expression");
@@ -389,7 +389,7 @@ bool LoongArchAsmBackend::relaxDwarfCFA(const MCAssembler &Asm,
389389

390390
auto &Layout = *Asm.getLayout();
391391
int64_t Value;
392-
if (AddrDelta.evaluateAsAbsolute(Value, Layout))
392+
if (AddrDelta.evaluateAsAbsolute(Value, Asm))
393393
return false;
394394
bool IsAbsolute = AddrDelta.evaluateKnownAbsolute(Value, Layout);
395395
assert(IsAbsolute && "CFA with invalid expression");

llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ bool RISCVAsmBackend::relaxDwarfCFA(const MCAssembler &Asm,
278278
size_t OldSize = Data.size();
279279

280280
int64_t Value;
281-
if (AddrDelta.evaluateAsAbsolute(Value, Layout))
281+
if (AddrDelta.evaluateAsAbsolute(Value, Asm))
282282
return false;
283283
[[maybe_unused]] bool IsAbsolute =
284284
AddrDelta.evaluateKnownAbsolute(Value, Layout);

0 commit comments

Comments
 (0)