- /// We name each basic block in a Function with a unique number, so
- /// that we can consistently refer to them later. This is cleared
- /// at the beginning of each call to runOnMachineFunction().
- ///
- typedef std::map<const Value *, unsigned> ValueMapTy;
- ValueMapTy NumberForBB;
-
- /// GVNonLazyPtrs - Keeps the set of GlobalValues that require
- /// non-lazy-pointers for indirect access.
- StringMap<std::string> GVNonLazyPtrs;
-
- /// HiddenGVNonLazyPtrs - Keeps the set of GlobalValues with hidden
- /// visibility that require non-lazy-pointers for indirect access.
- StringMap<std::string> HiddenGVNonLazyPtrs;
-
- struct FnStubInfo {
- std::string Stub, LazyPtr, SLP, SCV;
-
- FnStubInfo() {}
-
- void Init(const GlobalValue *GV, Mangler *Mang) {
- // Already initialized.
- if (!Stub.empty()) return;
- Stub = Mang->getMangledName(GV, "$stub", true);
- LazyPtr = Mang->getMangledName(GV, "$lazy_ptr", true);
- SLP = Mang->getMangledName(GV, "$slp", true);
- SCV = Mang->getMangledName(GV, "$scv", true);
- }
-
- void Init(const std::string &GV, Mangler *Mang) {
- // Already initialized.
- if (!Stub.empty()) return;
- Stub = Mang->makeNameProper(GV + "$stub", Mangler::Private);
- LazyPtr = Mang->makeNameProper(GV + "$lazy_ptr", Mangler::Private);
- SLP = Mang->makeNameProper(GV + "$slp", Mangler::Private);
- SCV = Mang->makeNameProper(GV + "$scv", Mangler::Private);
- }
- };
-
- /// FnStubs - Keeps the set of external function GlobalAddresses that the
- /// asm printer should generate stubs for.
- StringMap<FnStubInfo> FnStubs;
-
- /// True if asm printer is printing a series of CONSTPOOL_ENTRY.
- bool InCPMode;