mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-01 01:30:36 +00:00
Clean the sub-reg index composition maps at emission.
Preserve the Composites map in the CodeGenSubRegIndex class so it can be used to determine which sub-register indices can actually be composed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163629 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
59f45e4610
commit
de0250728b
@ -75,16 +75,6 @@ void CodeGenSubRegIndex::updateComponents(CodeGenRegBank &RegBank) {
|
||||
}
|
||||
}
|
||||
|
||||
void CodeGenSubRegIndex::cleanComposites() {
|
||||
// Clean out redundant mappings of the form this+X -> X.
|
||||
for (CompMap::iterator i = Composed.begin(), e = Composed.end(); i != e;) {
|
||||
CompMap::iterator j = i;
|
||||
++i;
|
||||
if (j->first == j->second)
|
||||
Composed.erase(j);
|
||||
}
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// CodeGenRegister
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -1164,11 +1154,6 @@ void CodeGenRegBank::computeComposites() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We don't care about the difference between (Idx1, Idx2) -> Idx2 and invalid
|
||||
// compositions, so remove any mappings of that form.
|
||||
for (unsigned i = 0, e = SubRegIndices.size(); i != e; ++i)
|
||||
SubRegIndices[i]->cleanComposites();
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
@ -80,9 +80,6 @@ namespace llvm {
|
||||
// Update the composite maps of components specified in 'ComposedOf'.
|
||||
void updateComponents(CodeGenRegBank&);
|
||||
|
||||
// Clean out redundant composite mappings.
|
||||
void cleanComposites();
|
||||
|
||||
// Return the map of composites.
|
||||
const CompMap &getComposites() const { return Composed; }
|
||||
|
||||
|
@ -1055,8 +1055,8 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
|
||||
for (unsigned i = 0, e = SubRegIndices.size(); i != e; ++i) {
|
||||
bool Open = false;
|
||||
for (unsigned j = 0; j != e; ++j) {
|
||||
if (CodeGenSubRegIndex *Comp =
|
||||
SubRegIndices[i]->compose(SubRegIndices[j])) {
|
||||
CodeGenSubRegIndex *Comp = SubRegIndices[i]->compose(SubRegIndices[j]);
|
||||
if (Comp && Comp != SubRegIndices[j]) {
|
||||
if (!Open) {
|
||||
OS << " case " << SubRegIndices[i]->getQualifiedName()
|
||||
<< ": switch(IdxB) {\n default: return IdxB;\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user