| Index: src/IceELFObjectWriter.cpp
|
| diff --git a/src/IceELFObjectWriter.cpp b/src/IceELFObjectWriter.cpp
|
| index c3ba9b070ab24fd6397e7d3842afbe3bd3300b4c..e960d9cb90b1e20ea362cb3108e83ee341bc3029 100644
|
| --- a/src/IceELFObjectWriter.cpp
|
| +++ b/src/IceELFObjectWriter.cpp
|
| @@ -74,7 +74,7 @@ uint32_t getELFFlags(TargetArch Arch) {
|
| } // end of anonymous namespace
|
|
|
| ELFObjectWriter::ELFObjectWriter(GlobalContext &Ctx, ELFStreamer &Out)
|
| - : Ctx(Ctx), Str(Out), ELF64(isELF64(Ctx.getFlags())) {
|
| + : Ctx(Ctx), Str(Out), ELF64(isELF64(getFlags())) {
|
| // Create the special bookkeeping sections now.
|
| constexpr char NullSectionName[] = "";
|
| NullSection = new (Ctx.allocate<ELFSection>())
|
| @@ -223,7 +223,7 @@ void ELFObjectWriter::writeFunctionCode(GlobalString FuncName, bool IsInternal,
|
| TimerMarker Timer(TimerStack::TT_writeELF, &Ctx);
|
| ELFTextSection *Section = nullptr;
|
| ELFRelocationSection *RelSection = nullptr;
|
| - const bool FunctionSections = Ctx.getFlags().getFunctionSections();
|
| + const bool FunctionSections = getFlags().getFunctionSections();
|
| if (TextSections.empty() || FunctionSections) {
|
| std::string SectionName = ".text";
|
| if (FunctionSections)
|
| @@ -247,7 +247,7 @@ void ELFObjectWriter::writeFunctionCode(GlobalString FuncName, bool IsInternal,
|
| constexpr SizeT SymbolSize = 0;
|
| uint8_t SymbolType;
|
| uint8_t SymbolBinding;
|
| - if (IsInternal && !Ctx.getFlags().getDisableInternal()) {
|
| + if (IsInternal && !getFlags().getDisableInternal()) {
|
| SymbolType = STT_NOTYPE;
|
| SymbolBinding = STB_LOCAL;
|
| } else {
|
| @@ -310,8 +310,7 @@ void ELFObjectWriter::writeDataSection(const VariableDeclarationList &Vars,
|
| VariableDeclarationPartition VarsBySection[ELFObjectWriter::NumSectionTypes];
|
| for (auto &SectionList : VarsBySection)
|
| SectionList.reserve(Vars.size());
|
| - partitionGlobalsBySection(Vars, VarsBySection,
|
| - Ctx.getFlags().getTranslateOnly());
|
| + partitionGlobalsBySection(Vars, VarsBySection, getFlags().getTranslateOnly());
|
| size_t I = 0;
|
| for (auto &SectionList : VarsBySection) {
|
| writeDataOfType(static_cast<SectionType>(I++), SectionList, RelocationKind,
|
| @@ -392,7 +391,7 @@ void ELFObjectWriter::writeDataOfType(SectionType ST,
|
| const auto Align = std::max<Elf64_Xword>(MinAlign, Var->getAlignment());
|
| Section->padToAlignment(Str, Align);
|
| SizeT SymbolSize = Var->getNumBytes();
|
| - bool IsExternal = Var->isExternal() || Ctx.getFlags().getDisableInternal();
|
| + bool IsExternal = Var->isExternal() || getFlags().getDisableInternal();
|
| const uint8_t SymbolBinding = IsExternal ? STB_GLOBAL : STB_LOCAL;
|
| GlobalString Name = Var->getName();
|
| SymTab->createDefinedSym(Name, SymbolType, SymbolBinding, Section,
|
| @@ -476,12 +475,12 @@ void ELFObjectWriter::writeELFHeaderInternal(Elf64_Off SectionHeaderOffset,
|
| assert(NumSections < SHN_LORESERVE);
|
| assert(SectHeaderStrIndex < SHN_LORESERVE);
|
|
|
| - const TargetArch Arch = Ctx.getFlags().getTargetArch();
|
| + const TargetArch Arch = getFlags().getTargetArch();
|
| // Write the rest of the file header, which does depend on byte order and ELF
|
| // class.
|
| - Str.writeLE16(ET_REL); // e_type
|
| - Str.writeLE16(getELFMachine(Ctx.getFlags().getTargetArch())); // e_machine
|
| - Str.writeELFWord<IsELF64>(1); // e_version
|
| + Str.writeLE16(ET_REL); // e_type
|
| + Str.writeLE16(getELFMachine(getFlags().getTargetArch())); // e_machine
|
| + Str.writeELFWord<IsELF64>(1); // e_version
|
| // Since this is for a relocatable object, there is no entry point, and no
|
| // program headers.
|
| Str.writeAddrOrOffset<IsELF64>(0); // e_entry
|
| @@ -531,11 +530,11 @@ template <typename ConstType> void ELFObjectWriter::writeConstantPool(Type Ty) {
|
|
|
| // If the -reorder-pooled-constant option is set to true, we should shuffle
|
| // the constants before we emit them.
|
| - if (Ctx.getFlags().getReorderPooledConstants() && !Pool.empty()) {
|
| + if (getFlags().getReorderPooledConstants() && !Pool.empty()) {
|
| // Use the constant's kind value as the salt for creating random number
|
| // generator.
|
| Operand::OperandKind K = (*Pool.begin())->getKind();
|
| - RandomNumberGenerator RNG(Ctx.getFlags().getRandomSeed(),
|
| + RandomNumberGenerator RNG(getFlags().getRandomSeed(),
|
| RPE_PooledConstantReordering, K);
|
| RandomShuffle(Pool.begin(), Pool.end(),
|
| [&RNG](uint64_t N) { return (uint32_t)RNG.next(N); });
|
| @@ -597,7 +596,7 @@ void ELFObjectWriter::writeJumpTable(const JumpTableData &JT,
|
|
|
| constexpr uint8_t SymbolType = STT_OBJECT;
|
| Section->padToAlignment(Str, PointerSize);
|
| - const bool IsExternal = Ctx.getFlags().getDisableInternal();
|
| + const bool IsExternal = getFlags().getDisableInternal();
|
| const uint8_t SymbolBinding = IsExternal ? STB_GLOBAL : STB_LOCAL;
|
| GlobalString JumpTableName = Ctx.getGlobalString(
|
| InstJumpTable::makeName(JT.getFunctionName(), JT.getId()));
|
|
|