Ulrich Weigand bebd59c74b [SystemZ] Support all TLS access models - CodeGen part
The current SystemZ back-end only supports the local-exec TLS access model.
This patch adds all required CodeGen support for the other TLS models, which
means in particular:

- Expand initial-exec TLS accesses by loading TLS offsets from the GOT
  using @indntpoff relocations.

- Expand general-dynamic and local-dynamic accesses by generating the
  appropriate calls to __tls_get_offset.  Note that this routine has
  a non-standard ABI and requires loading the GOT pointer into %r12,
  so the patch also adds support for the GLOBAL_OFFSET_TABLE ISD node.

- Add a new platform-specific optimization pass to remove redundant
  __tls_get_offset calls in the local-dynamic model (modeled after
  the corresponding X86 pass).

- Add test cases verifying all access models and optimizations.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229654 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-18 09:13:27 +00:00
..
2013-07-19 16:21:55 +00:00
2013-07-19 16:24:22 +00:00
2013-07-19 16:24:22 +00:00
2013-09-16 09:03:10 +00:00
2013-10-28 13:53:37 +00:00
2014-01-24 17:20:08 +00:00
2013-12-11 11:37:27 +00:00
2013-10-28 13:53:37 +00:00
2013-10-28 13:53:37 +00:00
2013-07-19 16:32:12 +00:00
2013-07-19 16:32:12 +00:00
2013-12-13 15:46:55 +00:00
2013-09-10 10:20:32 +00:00
2013-07-19 16:21:55 +00:00
2013-07-19 16:24:22 +00:00
2013-07-19 16:24:22 +00:00
2013-09-05 10:36:45 +00:00
2014-01-13 15:40:25 +00:00
2014-01-09 10:56:42 +00:00
2013-10-28 13:53:37 +00:00
2013-07-19 16:21:55 +00:00
2013-07-19 16:24:22 +00:00
2013-07-19 16:24:22 +00:00
2013-09-05 10:36:45 +00:00