summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
diff options
context:
space:
mode:
authorJason Liu <jasonliu.development@gmail.com>2019-06-06 19:13:36 +0000
committerJason Liu <jasonliu.development@gmail.com>2019-06-06 19:13:36 +0000
commit60ec248148c52a47cecf8b660c32a0e7568a8a00 (patch)
tree76cad463d64a536c8379b7029e45c16cc4773fd8 /llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
parentf288a0685f874d2b965db25a16b9c44f78c55b12 (diff)
downloadbcm5719-llvm-60ec248148c52a47cecf8b660c32a0e7568a8a00.tar.gz
bcm5719-llvm-60ec248148c52a47cecf8b660c32a0e7568a8a00.zip
[AIX] Implement function descriptor on SDAG
Summary: (1) Function descriptor on AIX On AIX, a called routine may have 2 distinct symbols associated with it: * A function descriptor (Name) * A function entry point (.Name) The descriptor structure on AIX is the same as those in the ELF V1 ABI: * The address of the entry point of the function. * The TOC base address for the function. * The environment pointer. The descriptor symbol uses the same name as the source level function in C. The function entry point is analogous to the symbol we would generate for a function in a non-descriptor-based ABI, except that it is renamed by prepending a ".". Which symbol gets referenced depends on the context: * Taking the address of the function references the descriptor symbol. * Calling the function references the entry point symbol. (2) Speaking of implementation on AIX, for direct function call target, we create proper MCSymbol SDNode(e.g . ".foo") while constructing SDAG to replace original TargetGlobalAddress SDNode. Then down the path, we can take advantage of this MCSymbol. Patch by: Xiangling_L Reviewed by: sfertile, hubert.reinterpretcast, jasonliu, syzaara Differential Revision: https://reviews.llvm.org/D62532 llvm-svn: 362735
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud