mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-19 03:24:09 +00:00
Split GlobalValue into GlobalValue and GlobalObject.
This allows code to statically accept a Function or a GlobalVariable, but not an alias. This is already a cleanup by itself IMHO, but the main reason for it is that it gives a lot more confidence that the refactoring to fix the design of GlobalAlias is correct. That will be a followup patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208716 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -495,15 +495,15 @@ static void forceRenaming(GlobalValue *GV, StringRef Name) {
|
||||
/// a GlobalValue) from the SrcGV to the DestGV.
|
||||
static void copyGVAttributes(GlobalValue *DestGV, const GlobalValue *SrcGV) {
|
||||
// Use the maximum alignment, rather than just copying the alignment of SrcGV.
|
||||
auto *DestGO = dyn_cast<GlobalObject>(DestGV);
|
||||
unsigned Alignment;
|
||||
bool IsAlias = isa<GlobalAlias>(DestGV);
|
||||
if (!IsAlias)
|
||||
Alignment = std::max(DestGV->getAlignment(), SrcGV->getAlignment());
|
||||
if (DestGO)
|
||||
Alignment = std::max(DestGO->getAlignment(), SrcGV->getAlignment());
|
||||
|
||||
DestGV->copyAttributesFrom(SrcGV);
|
||||
|
||||
if (!IsAlias)
|
||||
DestGV->setAlignment(Alignment);
|
||||
if (DestGO)
|
||||
DestGO->setAlignment(Alignment);
|
||||
|
||||
forceRenaming(DestGV, SrcGV->getName());
|
||||
}
|
||||
|
Reference in New Issue
Block a user