[llvm] [SystemZ][z/OS] Remove use of subsections. (PR #184167)
Ulrich Weigand via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 5 09:55:45 PST 2026
================
@@ -99,15 +100,35 @@ class LLVM_LIBRARY_VISIBILITY SystemZAsmPrinter : public AsmPrinter {
DenseMap<const GlobalObject *, SmallVector<const GlobalAlias *, 1>>
GOAliasMap;
- void emitPPA1(MCSymbol *FnEndSym);
+ struct PPA1Info {
+ StringRef Name;
+ MCSymbol *FnEnd = nullptr; // Symbol marking function end.
+ MCSymbol *PPA1 = nullptr; // Symbol marking PPA1 begin.
+ MCSymbol *EPMarker = nullptr; // Symbol marking entry point.
+ MCSymbol *PersonalityRoutine = nullptr;
+ MCSymbol *GCCEH = nullptr;
+ uint64_t CallFrameSize = 0;
+ unsigned SizeOfFnParams = 0;
+ uint32_t FrameAndFPROffset;
+ uint32_t FrameAndVROffset;
+ uint16_t SavedGPRMask = 0;
+ uint16_t SavedFPRMask = 0;
+ uint8_t SavedVRMask = 0;
+ bool HasArgAreaLength = false;
+ bool IsVarArg = false;
+ bool HasStackProtector = false;
+ };
+ SmallVector<PPA1Info, 0> DeferredPPA1;
+
+ void calculatePPA1(MCSymbol *FnEndSym);
+ void emitPPA1(PPA1Info &Info);
void emitPPA2(Module &M);
void emitADASection();
void emitIDRLSection(Module &M);
public:
SystemZAsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer> Streamer)
- : AsmPrinter(TM, std::move(Streamer), ID), CurrentFnPPA1Sym(nullptr),
----------------
uweigand wrote:
I'd like to get rid of these globals, but as long as we still have them, don't we still need the initialization here?
https://github.com/llvm/llvm-project/pull/184167
More information about the llvm-commits
mailing list