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
..
2014-06-09 22:42:55 +00:00
2014-12-15 19:07:53 +00:00
2014-12-15 19:07:53 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-12-24 15:18:04 +00:00
2013-10-16 11:10:55 +00:00
2013-10-28 13:53:37 +00:00
2014-06-13 14:24:07 +00:00
2014-06-13 14:24:07 +00:00
2014-06-13 14:24:07 +00:00
2014-06-13 14:24:07 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-12-10 10:49:34 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2015-01-13 19:45:16 +00:00
2014-03-21 10:56:30 +00:00
2014-03-21 10:56:30 +00:00
2014-03-21 10:56:30 +00:00
2014-03-21 10:56:30 +00:00
2014-03-21 10:56:30 +00:00
2014-03-21 10:56:30 +00:00
2013-10-31 12:14:17 +00:00
2013-10-01 14:33:55 +00:00
2014-01-24 17:20:08 +00:00
2014-01-13 15:44:44 +00:00
2013-12-10 10:36:34 +00:00
2013-12-10 10:36:34 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2013-12-11 11:37:27 +00:00
2013-12-13 15:35:00 +00:00
2013-10-28 13:53:37 +00:00
2013-10-28 13:53:37 +00:00
2013-10-31 12:14:17 +00:00
2013-10-15 08:42:59 +00:00
2013-12-06 09:56:50 +00:00
2013-12-06 09:56:50 +00:00
2015-01-13 19:45:16 +00:00
2015-01-13 19:45:16 +00:00
2013-12-13 15:46:55 +00:00
2013-11-22 17:28:28 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2013-10-01 12:49:07 +00:00
2013-12-18 23:04:37 +00:00
2013-12-18 23:04:37 +00:00
2013-12-18 23:04:37 +00:00
2013-12-18 23:04:37 +00:00
2013-12-13 15:35:00 +00:00
2014-06-09 22:42:55 +00:00
2014-02-13 14:44:26 +00:00
2015-01-13 19:45:16 +00:00
2014-12-15 19:07:53 +00:00
2014-01-13 15:40:25 +00:00
2014-01-09 11:28:53 +00:00
2014-01-09 11:28:53 +00:00
2014-01-09 11:28:53 +00:00
2013-12-06 09:53:09 +00:00
2013-12-06 09:53:09 +00:00
2013-12-06 09:53:09 +00:00
2013-12-10 10:36:34 +00:00
2013-10-31 12:14:17 +00:00
2013-10-31 12:14:17 +00:00
2014-01-09 10:56:42 +00:00
2014-01-13 15:17:53 +00:00
2013-12-10 10:36:34 +00:00
2015-02-18 09:13:27 +00:00
2015-02-18 09:13:27 +00:00
2015-02-18 09:13:27 +00:00
2015-02-18 09:13:27 +00:00
2015-02-18 09:13:27 +00:00
2015-02-18 09:13:27 +00:00
2015-02-18 09:13:27 +00:00
2013-10-28 13:53:37 +00:00