Skip to content

Commit 50f0532

Browse files
Sightemadriweb
authored andcommitted
feat: Apply numerous API fixes for LLVM v19
Signed-off-by: Sightem <sightem@national.shitposting.agency>
1 parent ff036fa commit 50f0532

47 files changed

Lines changed: 563 additions & 353 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

clang/tools/driver/cc1_main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,15 +288,15 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
288288
llvm::initializeCodeGen(Registry);
289289
llvm::initializeLoopStrengthReducePass(Registry);
290290
llvm::initializeLowerIntrinsicsPass(Registry);
291-
llvm::initializeEntryExitInstrumenterPass(Registry);
291+
llvm::initializePostInlineEntryExitInstrumenterPass(Registry);
292292
llvm::initializePostInlineEntryExitInstrumenterPass(Registry);
293293
llvm::initializeUnreachableBlockElimLegacyPassPass(Registry);
294294
llvm::initializeConstantHoistingLegacyPassPass(Registry);
295295
llvm::initializeScalarOpts(Registry);
296296
llvm::initializeVectorization(Registry);
297297
llvm::initializeScalarizeMaskedMemIntrinLegacyPassPass(Registry);
298298
llvm::initializeExpandReductionsPass(Registry);
299-
llvm::initializeHardwareLoopsPass(Registry);
299+
llvm::initializeHardwareLoopsLegacyPass(Registry);
300300
llvm::initializeTransformUtils(Registry);
301301
}
302302

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
#ifndef ELF_RELOC
3+
#error "ELF_RELOC must be defined"
4+
#endif
5+
6+
ELF_RELOC(R_Z80_NONE, 0)
7+
ELF_RELOC(R_Z80_8, 1)
8+
ELF_RELOC(R_Z80_8_DIS, 2)
9+
ELF_RELOC(R_Z80_8_PCREL, 3)
10+
ELF_RELOC(R_Z80_16, 4)
11+
ELF_RELOC(R_Z80_24, 5)
12+
ELF_RELOC(R_Z80_32, 6)
13+
ELF_RELOC(R_Z80_BYTE0, 7)
14+
ELF_RELOC(R_Z80_BYTE1, 8)
15+
ELF_RELOC(R_Z80_BYTE2, 9)
16+
ELF_RELOC(R_Z80_BYTE3, 10)
17+
ELF_RELOC(R_Z80_WORD0, 11)
18+
ELF_RELOC(R_Z80_WORD1, 12)
19+
ELF_RELOC(R_Z80_16_BE, 13)

llvm/include/llvm/BinaryFormat/ELFRelocs/z80.def

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Z80.def

llvm/include/llvm/CodeGen/AsmPrinter.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -848,8 +848,6 @@ class AsmPrinter : public MachineFunctionPass {
848848
static Align getGVAlignment(const GlobalObject *GV, const DataLayout &DL,
849849
Align InAlign = Align(1));
850850

851-
virtual void emitGlobalAlias(Module &M, const GlobalAlias &GA);
852-
853851
private:
854852
/// Private state for PrintSpecial()
855853
// Assign a unique ID to this machine instruction.

llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,54 @@ matchConstant<const IgnoreMatch>(Register Reg, const MachineRegisterInfo &MRI) {
9292
return std::optional<const IgnoreMatch>{ IgnoreMatch{} };
9393
}
9494

95+
template <>
96+
inline std::optional<uint64_t>
97+
matchConstant<uint64_t>(Register Reg, const MachineRegisterInfo &MRI) {
98+
if (auto Val = matchConstant<APInt>(Reg, MRI)) {
99+
if (Val->getBitWidth() <= 64)
100+
return Val->getZExtValue();
101+
}
102+
return std::nullopt;
103+
}
104+
105+
template <>
106+
inline std::optional<int64_t>
107+
matchConstant<int64_t>(Register Reg, const MachineRegisterInfo &MRI) {
108+
if (auto Val = matchConstant<APInt>(Reg, MRI)) {
109+
if (Val->getBitWidth() <= 64)
110+
return Val->getSExtValue();
111+
}
112+
return std::nullopt;
113+
}
114+
115+
template <>
116+
inline std::optional<bool>
117+
matchConstant<bool>(Register Reg, const MachineRegisterInfo &MRI) {
118+
if (auto Val = matchConstant<APInt>(Reg, MRI))
119+
return Val->getBoolValue();
120+
return std::nullopt;
121+
}
122+
123+
template <>
124+
inline std::optional<unsigned>
125+
matchConstant<unsigned>(Register Reg, const MachineRegisterInfo &MRI) {
126+
if (auto Val = matchConstant<APInt>(Reg, MRI)) {
127+
if (Val->getBitWidth() <= 32)
128+
return static_cast<unsigned>(Val->getZExtValue());
129+
}
130+
return std::nullopt;
131+
}
132+
133+
template <>
134+
inline std::optional<unsigned char>
135+
matchConstant<unsigned char>(Register Reg, const MachineRegisterInfo &MRI) {
136+
if (auto Val = matchConstant<APInt>(Reg, MRI)) {
137+
if (Val->getBitWidth() <= 8)
138+
return static_cast<unsigned char>(Val->getZExtValue());
139+
}
140+
return std::nullopt;
141+
}
142+
95143
// template <typename ConstT>
96144
// inline std::optional<ConstT> matchConstant(Register Reg,
97145
// const MachineRegisterInfo &MRI) {

llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6365,14 +6365,14 @@ bool CombinerHelper::matchBuildVectorIdentityFold(MachineInstr &MI,
63656365
return MRI.getType(MatchInfo) == DstVecTy;
63666366
}
63676367

6368-
std::optional<ValueAndVReg> ShiftAmount;
6368+
ValueAndVReg ShiftAmount;
63696369
const auto LoPattern = m_GBitcast(m_Reg(Lo));
63706370
const auto HiPattern = m_GLShr(m_GBitcast(m_Reg(Hi)), m_ICst(ShiftAmount));
63716371
if (mi_match(
63726372
MI, MRI,
63736373
m_any_of(m_GBuildVectorTrunc(LoPattern, HiPattern),
63746374
m_GBuildVector(m_GTrunc(LoPattern), m_GTrunc(HiPattern))))) {
6375-
if (Lo == Hi && ShiftAmount->Value == DstEltTy.getSizeInBits()) {
6375+
if (Lo == Hi && ShiftAmount.Value == DstEltTy.getSizeInBits()) {
63766376
MatchInfo = Lo;
63776377
return MRI.getType(MatchInfo) == DstVecTy;
63786378
}
@@ -6396,14 +6396,14 @@ bool CombinerHelper::matchTruncLshrBuildVectorFold(MachineInstr &MI,
63966396
Register &MatchInfo) {
63976397
// Replace (G_TRUNC (G_LSHR (G_BITCAST (G_BUILD_VECTOR x, y)), K)) with
63986398
// y if K == size of vector element type
6399-
std::optional<ValueAndVReg> ShiftAmt;
6399+
ValueAndVReg ShiftAmt;
64006400
if (!mi_match(MI.getOperand(1).getReg(), MRI,
64016401
m_GLShr(m_GBitcast(m_GBuildVector(m_Reg(), m_Reg(MatchInfo))),
64026402
m_ICst(ShiftAmt))))
64036403
return false;
64046404

64056405
LLT MatchTy = MRI.getType(MatchInfo);
6406-
return ShiftAmt->Value.getZExtValue() == MatchTy.getSizeInBits() &&
6406+
return ShiftAmt.Value.getZExtValue() == MatchTy.getSizeInBits() &&
64076407
MatchTy == MRI.getType(MI.getOperand(0).getReg());
64086408
}
64096409

llvm/lib/CodeGen/GlobalISel/Utils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ Register llvm::getSrcRegIgnoringCopies(Register Reg,
536536
/// Returns -1 in the first element of the pair if the breakdown is not
537537
/// satisfiable.
538538
std::pair<int, int>
539-
getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) {
539+
llvm::getNarrowTypeBreakDown(LLT OrigTy, LLT NarrowTy, LLT &LeftoverTy) {
540540
unsigned Size = OrigTy.getSizeInBits();
541541
unsigned NarrowSize = NarrowTy.getSizeInBits();
542542
unsigned NumParts = Size / NarrowSize;

llvm/lib/Target/Z80/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ tablegen(LLVM EZ80GenAsmWriter.inc -gen-asm-writer -asmwriternum=1)
66
tablegen(LLVM Z80GenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM Z80GenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM Z80GenPostLegalizeGICombiner.inc -gen-global-isel-combiner
9-
-combiners="Z80PostLegalizerCombinerHelper")
9+
-combiners="Z80PostLegalizerCombiner")
1010
tablegen(LLVM Z80GenPreLegalizeGICombiner.inc -gen-global-isel-combiner
11-
-combiners="Z80PreLegalizerCombinerHelper")
11+
-combiners="Z80PreLegalizerCombiner")
1212
tablegen(LLVM Z80GenGlobalISel.inc -gen-global-isel)
1313
tablegen(LLVM Z80GenInstrInfo.inc -gen-instr-info)
1414
tablegen(LLVM Z80GenRegisterBank.inc -gen-register-bank)

llvm/lib/Target/Z80/GISel/Z80CallLowering.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"
2525
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
2626
#include "llvm/Support/Debug.h"
27+
#include "llvm/CodeGen/MachineFrameInfo.h"
2728
#include "llvm/Target/TargetMachine.h"
2829
using namespace llvm;
2930
using namespace MIPatternMatch;
@@ -59,13 +60,13 @@ struct Z80OutgoingValueHandler : public CallLowering::OutgoingValueHandler {
5960
}
6061

6162
void assignValueToReg(Register ValVReg, Register PhysReg,
62-
CCValAssign VA) override {
63+
const CCValAssign &VA) override {
6364
MIB.addReg(PhysReg, RegState::Implicit);
6465
MIRBuilder.buildCopy(PhysReg, ValVReg);
6566
}
6667

6768
void assignValueToAddress(Register ValVReg, Register Addr, LLT MemTy,
68-
MachinePointerInfo &MPO, CCValAssign &VA) override {
69+
const MachinePointerInfo &MPO, const CCValAssign &VA) override {
6970
auto MMO = MIRBuilder.getMF().getMachineMemOperand(
7071
MPO, MachineMemOperand::MOStore, VA.getLocVT().getStoreSize(),
7172
Align());
@@ -123,7 +124,7 @@ struct CallArgHandler : public Z80OutgoingValueHandler {
123124
StackPushes(MIRBuilder.getInsertPt()), RegCopies(StackPushes) {}
124125

125126
void assignValueToReg(Register ValVReg, Register PhysReg,
126-
CCValAssign VA) override {
127+
const CCValAssign &VA) override {
127128
auto SaveInsertPt = std::prev(MIRBuilder.getInsertPt());
128129
--StackPushes;
129130
MIRBuilder.setInsertPt(MIRBuilder.getMBB(), RegCopies);
@@ -140,7 +141,7 @@ struct CallArgHandler : public Z80OutgoingValueHandler {
140141
}
141142

142143
void assignValueToAddress(Register ValVReg, Register Addr, LLT MemTy,
143-
MachinePointerInfo &MPO, CCValAssign &VA) override {
144+
const MachinePointerInfo &MPO, const CCValAssign &VA) override {
144145
LLT SlotTy = LLT::scalar(DL.getIndexSizeInBits(0));
145146
if (VA.getLocVT().getStoreSize() != SlotTy.getSizeInBytes() ||
146147
!mi_match(Addr, MRI,
@@ -167,7 +168,7 @@ struct CallArgHandler : public Z80OutgoingValueHandler {
167168
}
168169

169170
bool finalize(CCState &State) override {
170-
FrameSize = State.getNextStackOffset();
171+
FrameSize = State.getStackSize();
171172
bool Success = Z80OutgoingValueHandler::finalize(State);
172173
MIRBuilder.setInsertPt(MIRBuilder.getMBB(), RegCopies);
173174
return Success;
@@ -215,15 +216,15 @@ struct Z80IncomingValueHandler : public CallLowering::IncomingValueHandler {
215216
}
216217

217218
void assignValueToAddress(Register ValVReg, Register Addr, LLT MemTy,
218-
MachinePointerInfo &MPO, CCValAssign &VA) override {
219+
const MachinePointerInfo &MPO, const CCValAssign &VA) override {
219220
auto MMO = MIRBuilder.getMF().getMachineMemOperand(
220221
MPO, MachineMemOperand::MOLoad | MachineMemOperand::MOInvariant, MemTy,
221222
Align());
222223
MIRBuilder.buildLoad(ValVReg, Addr, *MMO);
223224
}
224225

225226
void assignValueToReg(Register ValVReg, Register PhysReg,
226-
CCValAssign VA) override {
227+
const CCValAssign &VA) override {
227228
markPhysRegUsed(PhysReg);
228229
MIRBuilder.buildCopy(ValVReg, PhysReg);
229230
}
@@ -249,10 +250,10 @@ struct FormalArgHandler : public Z80IncomingValueHandler {
249250
bool finalize(CCState &State) override {
250251
MachineFunction &MF = MIRBuilder.getMF();
251252
auto &FuncInfo = *MF.getInfo<Z80MachineFunctionInfo>();
252-
FuncInfo.setArgFrameSize(State.getNextStackOffset());
253+
FuncInfo.setArgFrameSize(State.getStackSize());
253254
if (State.isVarArg()) {
254255
int FrameIdx = MF.getFrameInfo().CreateFixedObject(
255-
1, State.getNextStackOffset(), true);
256+
1, State.getStackSize(), true);
256257
FuncInfo.setVarArgsFrameIndex(FrameIdx);
257258
}
258259
return true;
@@ -346,7 +347,7 @@ bool Z80CallLowering::areCalleeOutgoingArgsTailCallable(
346347

347348
// Make sure that they can fit on the caller's stack.
348349
const auto &FuncInfo = *MF.getInfo<Z80MachineFunctionInfo>();
349-
if (OutInfo.getNextStackOffset() > FuncInfo.getArgFrameSize()) {
350+
if (OutInfo.getStackSize() > FuncInfo.getArgFrameSize()) {
350351
LLVM_DEBUG(dbgs() << "... Cannot fit call operands on caller's stack.\n");
351352
return false;
352353
}
@@ -761,7 +762,7 @@ bool Z80CallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder,
761762
if (!MBB.empty())
762763
MIRBuilder.setInstr(*MBB.begin());
763764

764-
OutgoingValueAssigner Assigner(CC_Z80);
765+
IncomingValueAssigner Assigner(CC_Z80);
765766
FormalArgHandler Handler(MIRBuilder, MRI);
766767
if (!determineAndHandleAssignments(Handler, Assigner, SplitArgs, MIRBuilder,
767768
F.getCallingConv(), F.isVarArg()))
@@ -796,7 +797,7 @@ bool Z80CallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
796797
Type *RetTy = nullptr;
797798
if (SRetReturnReg) {
798799
VRegs = SRetReturnReg;
799-
RetTy = Type::getInt8PtrTy(Ctx);
800+
RetTy = PointerType::getUnqual(Ctx);
800801
} else if (!VRegs.empty())
801802
RetTy = Val->getType();
802803

0 commit comments

Comments
 (0)