mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-24 12:55:45 +00:00
Cleanup formatting, comments and naming.
llvm-svn: 169762
This commit is contained in:
parent
c10e48ba6a
commit
074c9e1b36
@ -21,10 +21,10 @@ class MCSymbolData;
|
||||
|
||||
/// Encapsulates the layout of an assembly file at a particular point in time.
|
||||
///
|
||||
/// Assembly may requiring compute multiple layouts for a particular assembly
|
||||
/// Assembly may require computing multiple layouts for a particular assembly
|
||||
/// file as part of the relaxation process. This class encapsulates the layout
|
||||
/// at a single point in time in such a way that it is always possible to
|
||||
/// efficiently compute the exact addresses of any symbol in the assembly file,
|
||||
/// efficiently compute the exact address of any symbol in the assembly file,
|
||||
/// even during the relaxation process.
|
||||
class MCAsmLayout {
|
||||
public:
|
||||
@ -54,9 +54,9 @@ public:
|
||||
/// Get the assembler object this is a layout for.
|
||||
MCAssembler &getAssembler() const { return Assembler; }
|
||||
|
||||
/// \brief Invalidate all following fragments because a fragment has been
|
||||
/// resized. The fragments size should have already been updated.
|
||||
void Invalidate(MCFragment *F);
|
||||
/// \brief Invalidate the fragments after F because it has been resized.
|
||||
/// The fragment's size should have already been updated.
|
||||
void invalidateFragmentsAfter(MCFragment *F);
|
||||
|
||||
/// \brief Perform layout for a single fragment, assuming that the previous
|
||||
/// fragment has already been laid out correctly, and the parent section has
|
||||
|
@ -738,10 +738,12 @@ private:
|
||||
bool fragmentNeedsRelaxation(const MCInstFragment *IF,
|
||||
const MCAsmLayout &Layout) const;
|
||||
|
||||
/// layoutOnce - Perform one layout iteration and return true if any offsets
|
||||
/// \brief Perform one layout iteration and return true if any offsets
|
||||
/// were adjusted.
|
||||
bool layoutOnce(MCAsmLayout &Layout);
|
||||
|
||||
/// \brief Perform one layout iteration of the given section and return true
|
||||
/// if any offsets were adjusted.
|
||||
bool layoutSectionOnce(MCAsmLayout &Layout, MCSectionData &SD);
|
||||
|
||||
bool relaxInstruction(MCAsmLayout &Layout, MCInstFragment &IF);
|
||||
|
@ -80,7 +80,7 @@ bool MCAsmLayout::isFragmentUpToDate(const MCFragment *F) const {
|
||||
return F->getLayoutOrder() <= LastValid->getLayoutOrder();
|
||||
}
|
||||
|
||||
void MCAsmLayout::Invalidate(MCFragment *F) {
|
||||
void MCAsmLayout::invalidateFragmentsAfter(MCFragment *F) {
|
||||
// If this fragment wasn't already up-to-date, we don't need to do anything.
|
||||
if (!isFragmentUpToDate(F))
|
||||
return;
|
||||
@ -678,7 +678,7 @@ bool MCAssembler::fragmentNeedsRelaxation(const MCInstFragment *IF,
|
||||
return false;
|
||||
|
||||
for (MCInstFragment::const_fixup_iterator it = IF->fixup_begin(),
|
||||
ie = IF->fixup_end(); it != ie; ++it)
|
||||
ie = IF->fixup_end(); it != ie; ++it)
|
||||
if (fixupNeedsRelaxation(*it, IF, Layout))
|
||||
return true;
|
||||
|
||||
@ -767,39 +767,39 @@ bool MCAssembler::relaxDwarfCallFrameFragment(MCAsmLayout &Layout,
|
||||
return OldSize != Data.size();
|
||||
}
|
||||
|
||||
bool MCAssembler::layoutSectionOnce(MCAsmLayout &Layout,
|
||||
MCSectionData &SD) {
|
||||
bool MCAssembler::layoutSectionOnce(MCAsmLayout &Layout, MCSectionData &SD) {
|
||||
// Holds the first fragment which needed relaxing during this layout. It will
|
||||
// remain NULL if none were relaxed.
|
||||
MCFragment *FirstInvalidFragment = NULL;
|
||||
|
||||
// Scan for fragments that need relaxation.
|
||||
for (MCSectionData::iterator it2 = SD.begin(),
|
||||
ie2 = SD.end(); it2 != ie2; ++it2) {
|
||||
// Check if this is an fragment that needs relaxation.
|
||||
bool relaxedFrag = false;
|
||||
switch(it2->getKind()) {
|
||||
for (MCSectionData::iterator I = SD.begin(), IE = SD.end(); I != IE; ++I) {
|
||||
// Check if this is a fragment that needs relaxation.
|
||||
bool RelaxedFrag = false;
|
||||
switch(I->getKind()) {
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
case MCFragment::FT_Inst:
|
||||
relaxedFrag = relaxInstruction(Layout, *cast<MCInstFragment>(it2));
|
||||
RelaxedFrag = relaxInstruction(Layout, *cast<MCInstFragment>(I));
|
||||
break;
|
||||
case MCFragment::FT_Dwarf:
|
||||
relaxedFrag = relaxDwarfLineAddr(Layout,
|
||||
*cast<MCDwarfLineAddrFragment>(it2));
|
||||
RelaxedFrag = relaxDwarfLineAddr(Layout,
|
||||
*cast<MCDwarfLineAddrFragment>(I));
|
||||
break;
|
||||
case MCFragment::FT_DwarfFrame:
|
||||
relaxedFrag =
|
||||
RelaxedFrag =
|
||||
relaxDwarfCallFrameFragment(Layout,
|
||||
*cast<MCDwarfCallFrameFragment>(it2));
|
||||
*cast<MCDwarfCallFrameFragment>(I));
|
||||
break;
|
||||
case MCFragment::FT_LEB:
|
||||
relaxedFrag = relaxLEB(Layout, *cast<MCLEBFragment>(it2));
|
||||
RelaxedFrag = relaxLEB(Layout, *cast<MCLEBFragment>(I));
|
||||
break;
|
||||
}
|
||||
// Update the layout, and remember that we relaxed.
|
||||
if (relaxedFrag && !FirstInvalidFragment)
|
||||
FirstInvalidFragment = it2;
|
||||
if (RelaxedFrag && !FirstInvalidFragment)
|
||||
FirstInvalidFragment = I;
|
||||
}
|
||||
if (FirstInvalidFragment) {
|
||||
Layout.Invalidate(FirstInvalidFragment);
|
||||
Layout.invalidateFragmentsAfter(FirstInvalidFragment);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -811,7 +811,7 @@ bool MCAssembler::layoutOnce(MCAsmLayout &Layout) {
|
||||
bool WasRelaxed = false;
|
||||
for (iterator it = begin(), ie = end(); it != ie; ++it) {
|
||||
MCSectionData &SD = *it;
|
||||
while(layoutSectionOnce(Layout, SD))
|
||||
while (layoutSectionOnce(Layout, SD))
|
||||
WasRelaxed = true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user