[NFC][XCOFF][AIX] Refactor get/setContainingCsect
authorjasonliu <jasonliu.development@gmail.com>
Fri, 3 Apr 2020 13:13:13 +0000 (13:13 +0000)
committerjasonliu <jasonliu.development@gmail.com>
Fri, 3 Apr 2020 13:33:12 +0000 (13:33 +0000)
commitd65557d15d40e541c10691996125d7a0310c42ab
tree6fd65aeee6a12df4f6684b606ecfb3795ce6eaab
parentf22445bf57606ffc9914777c228936d4b3f8140d
[NFC][XCOFF][AIX] Refactor get/setContainingCsect

Summary:
For current architect, we always require setContainingCsect to be
called on every MCSymbol got used in XCOFF context.
This is very hard to achieve because symbols gets created everywhere
 and other MCSymbol types(ELF, COFF) do not have similar rules.
It's very easy to miss setting the containing csect, and we would
need to add a lot of XCOFF specialized code around some common code area.

This patch intendeds to do
1. Rely on getFragment().getParent() to get csect from labels.
2. Only use get/setRepresentedCsect (was get/setContainingCsect)
if symbol itself represents a csect.

Reviewers: DiggerLin, hubert.reinterpretcast, daltenty

Differential Revision: https://reviews.llvm.org/D77080
llvm/include/llvm/MC/MCSectionXCOFF.h
llvm/include/llvm/MC/MCSymbolXCOFF.h
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/lib/CodeGen/MachineModuleInfo.cpp
llvm/lib/MC/CMakeLists.txt
llvm/lib/MC/MCSymbolXCOFF.cpp [new file with mode: 0644]
llvm/lib/MC/XCOFFObjectWriter.cpp
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
llvm/lib/Target/PowerPC/PPCISelLowering.cpp