1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test
Jason Liu 57335fbdaf [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
2019-06-06 19:13:36 +00:00
..
Analysis [RISCV] Disable test/Analysis/CostModel/RISCV tests if RISCV backend not built 2019-06-06 10:12:28 +00:00
Assembler Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
Bindings
Bitcode Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
BugPoint
CodeGen [AIX] Implement function descriptor on SDAG 2019-06-06 19:13:36 +00:00
DebugInfo [LiveDebugValues] Close range for previous variable's location when adding newly deduced location 2019-06-03 09:48:29 +00:00
Demangle llvm-undname: Correctly demangle vararg parameters 2019-06-04 19:10:08 +00:00
Examples
ExecutionEngine [RuntimeDyld] Apply padding and alignment bumps to all sections with stubs, and 2019-05-30 19:59:20 +00:00
Feature
FileCheck FileCheck [6/12]: Introduce numeric variable definition 2019-06-06 13:21:06 +00:00
Instrumentation [MSAN] Add unary FNeg visitor to the MemorySanitizer 2019-06-05 22:37:05 +00:00
Integer
JitListener
Linker Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
LTO
MachineVerifier
MC [ARM] Turn some undefined encoding bits into 0s. 2019-06-04 08:28:48 +00:00
Object [llvm-readelf] - Allow dumping of the .dynamic section even if there is no PT_DYNAMIC header. 2019-05-29 10:31:46 +00:00
ObjectYAML
Other [Attributor] Pass infrastructure and fixpoint framework 2019-06-05 03:02:24 +00:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
ThinLTO/X86 [ThinLTO] Use original alias visibility when importing 2019-05-29 16:50:46 +00:00
tools [llvm-ar] Create thin archives with MRI scripts 2019-06-06 13:19:50 +00:00
Transforms [InlineCost] Add support for unary fneg. 2019-06-06 19:02:18 +00:00
Unit
Verifier [SVE][IR] Scalable Vector IR Type 2019-05-29 12:22:54 +00:00
YAMLParser
.clang-format
CMakeLists.txt [tools] Introduce llvm-lipo 2019-05-28 23:22:12 +00:00
lit.cfg.py
lit.site.cfg.py.in
TestRunner.sh