Go to file
Ulrich Weigand 3a610ebf1e [SystemZ] Support transactional execution on zEC12
The zEC12 provides the transactional-execution facility.  This is exposed
to users via a set of builtin routines on other compilers.  This patch
adds clang support to enable those builtins.  In partciular, the patch:

- enables the transactional-execution feature by default on zEC12
- allows to override presence of that feature via the -mhtm/-mno-htm options
- adds a predefined macro __HTM__ if the feature is enabled
- adds support for the transactional-execution GCC builtins
- adds Sema checking to verify the __builtin_tabort abort code
- adds the s390intrin.h header file (for GCC compatibility)
- adds s390 sections to the htmintrin.h and htmxlintrin.h header files

Since this is first use of target-specific intrinsics on the platform,
the patch creates the include/clang/Basic/BuiltinsSystemZ.def file and
hooks it up in TargetBuiltins.h and lib/Basic/Targets.cpp.

An associated LLVM patch adds the required LLVM IR intrinsics.

For reference, the transactional-execution instructions are documented
in the z/Architecture Principles of Operation for the zEC12:
http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/download/DZ9ZR009.pdf
The associated builtins are documented in the GCC manual:
http://gcc.gnu.org/onlinedocs/gcc/S_002f390-System-z-Built-in-Functions.html
The htmxlintrin.h intrinsics provided for compatibility with the IBM XL
compiler are documented in the "z/OS XL C/C++ Programming Guide".

llvm-svn: 233804
2015-04-01 12:54:25 +00:00
clang [SystemZ] Support transactional execution on zEC12 2015-04-01 12:54:25 +00:00
clang-tools-extra [clang-tidy] Clarify message for the google-explicit-constructor check 2015-03-31 16:24:44 +00:00
compiler-rt [ASan] Deduplicate interception-in-shared-lib-test.cc by introducing platform-specific substitutions for rpath linker flags 2015-04-01 12:13:03 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Implement fmax using __builtin_fmax 2015-03-31 16:59:23 +00:00
libcxx [libcxx] Optimize vectors uninitialized construction of trivial types from an iterator range. 2015-03-31 16:54:19 +00:00
libcxxabi Revert r228351 - Dont install header files. 2015-04-01 02:56:13 +00:00
lld [ARM] Set specific flags in ELF header 2015-04-01 11:39:53 +00:00
lldb Make TestBreakpointConditions aarch64 compatible 2015-04-01 11:44:47 +00:00
llgo llgoi: Fix type identity for imported binary packages. 2015-03-18 08:34:40 +00:00
llvm [SystemZ] Support transactional execution on zEC12 2015-04-01 12:51:43 +00:00
openmp fix for broken commit 231774 2015-03-10 10:14:57 +00:00
polly Do not scale tile loops 2015-03-31 07:52:36 +00:00