mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-03 01:46:06 +00:00

variable with its multiple aliases. This patch handles the case where a variable has multiple aliases. AIX's assembly directive .set is not usable for the aliasing purpose, and using different labels allows AIX to emulate symbol aliases. If a value is emitted between any two labels, meaning they are not aligned, XCOFF will automatically calculate the offset for them. This patch implements: 1) Emits the label of the alias just before emitting the value of the sub-element that the alias referred to. 2) A set of aliases that refers to the same offset should be aligned. 3) We didn't emit aliasing labels for common and zero-initialized local symbols in PPCAIXAsmPrinter::emitGlobalVariableHelper, but emitted linkage for them in AsmPrinter::emitGlobalAlias, which caused a FAILURE. This patch fixes the bug by blocking emitting linkage for the alias without a label. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D124654