forked from OSchip/llvm-project
Simplify MCContext::(Next|Get)Instance
- Allocate MCLabels in the context so they don't leak. - Avoid duplicated densemap lookup. llvm-svn: 104020
This commit is contained in:
parent
0e704f7fcd
commit
ab7be75e3f
|
@ -73,33 +73,17 @@ MCSymbol *MCContext::CreateTempSymbol() {
|
|||
}
|
||||
|
||||
unsigned MCContext::NextInstance(int64_t LocalLabelVal) {
|
||||
unsigned Instance;
|
||||
MCLabel *Label;
|
||||
Label = Instances[LocalLabelVal];
|
||||
if (Label) {
|
||||
Instance = Label->incInstance();
|
||||
}
|
||||
else {
|
||||
Instance = 1;
|
||||
Label = new MCLabel(Instance);
|
||||
Instances[LocalLabelVal] = Label;
|
||||
}
|
||||
return Instance;
|
||||
MCLabel *&Label = Instances[LocalLabelVal];
|
||||
if (!Label)
|
||||
Label = new (*this) MCLabel(0);
|
||||
return Label->incInstance();
|
||||
}
|
||||
|
||||
unsigned MCContext::GetInstance(int64_t LocalLabelVal) {
|
||||
int Instance;
|
||||
MCLabel *Label;
|
||||
Label = Instances[LocalLabelVal];
|
||||
if (Label) {
|
||||
Instance = Label->getInstance();
|
||||
}
|
||||
else {
|
||||
Instance = 0;
|
||||
Label = new MCLabel(Instance);
|
||||
Instances[LocalLabelVal] = Label;
|
||||
}
|
||||
return Instance;
|
||||
MCLabel *&Label = Instances[LocalLabelVal];
|
||||
if (!Label)
|
||||
Label = new (*this) MCLabel(0);
|
||||
return Label->getInstance();
|
||||
}
|
||||
|
||||
MCSymbol *MCContext::CreateDirectionalLocalSymbol(int64_t LocalLabelVal) {
|
||||
|
|
Loading…
Reference in New Issue