Commit Graph

19 Commits

Author SHA1 Message Date
Craig Topper 7f2627f33e [X86] Clzero flag addition and inclusion under znver1
1. Adds the command line flag for clzero.
2. Includes the clzero flag under znver1.
3. Defines the macro for clzero.
4. Adds a new file which has the intrinsic definition for clzero instruction.

Patch by Ganesh Gopalasubramanian with some additional tests from me.

Differential revision: https://reviews.llvm.org/D29386

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@294559 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-09 06:10:14 +00:00
Elad Cohen 430938bacf [Modules] Add 'freestanding' to the 'requires-declaration' feature-list.
This adds support for modules that require (non-)freestanding
environment, such as the compiler builtin mm_malloc submodule.

Differential Revision: https://reviews.llvm.org/D23871



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280613 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-04 06:00:42 +00:00
Bruno Cardoso Lopes b69026bf2c [Modules] Add 'gnuinlineasm' to the 'requires-declaration' feature-list.
This adds support for modules that require (no-)gnu-inline-asm
environment, such as the compiler builtin cpuid submodule.

This is the gnu-inline-asm variant of https://reviews.llvm.org/D23871

Differential Revision: https://reviews.llvm.org/D23905

rdar://problem/26931199

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280159 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-30 21:25:42 +00:00
Yaxun Liu 5a7e51b93e [OpenCL] Include opencl-c.h by default as a clang module
Include opencl-c.h by default as a module to utilize the automatic AST caching mechanism of clang modules.

Add an option -finclude-default-header to enable default header for OpenCL, which is off by default.

Differential Revision: http://reviews.llvm.org/D20444

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273191 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-20 19:26:00 +00:00
Richard Smith e6ee5c3add Revert incorrect module map changes in r269907 and replace them with the
appropriate changes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@270169 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-20 01:06:47 +00:00
Ashutosh Nema a809e07c01 Add new intrinsic support for MONITORX and MWAITX instructions
Summary:
MONITORX/MWAITX instructions provide similar capability to the MONITOR/MWAIT
pair while adding a timer function, such that another termination of the MWAITX
instruction occurs when the timer expires. The presence of the MONITORX and 
MWAITX instructions is indicated by CPUID 8000_0001, ECX, bit 29.

The MONITORX and MWAITX instructions are intercepted by the same bits that
intercept MONITOR and MWAIT. MONITORX instruction establishes a range to be
monitored. MWAITX instruction causes the processor to stop instruction
execution and enter an implementation-dependent optimized state until
occurrence of a class of events.

Opcode of MONITORX instruction is "0F 01 FA". Opcode of MWAITX instruction is
"0F 01 FB". These opcode information is used in adding tests for the
disassembler.

These instructions are enabled for AMD's bdver4 architecture.

Patch by Ganesh Gopalasubramanian!

Reviewers: echristo, craig.topper

Subscribers: RKSimon, joker.eph, llvm-commits, cfe-commits

Differential Revision: http://reviews.llvm.org/D19796


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@269907 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-18 11:56:23 +00:00
Richard Smith 89a1e712a9 [modules] Don't expose *intrin.h headers that cannot be included standalone as
separate modules. These cause build breakage with -fmodules-local-submodule-visibility.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266501 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-16 00:46:26 +00:00
Yunzhong Gao 7c9014b991 Add copyright notice to the modulemap file.
The module.modulemap file in the lib/Headers directory was missing the LLVM
copyright notice. This patch adds the copyright notice just like the rest of
the files in this directory.

Differential Revision: http://reviews.llvm.org/D18709



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@265325 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-04 18:46:09 +00:00
John Thompson 3e81ea47a0 D18325: Added mm_malloc module export.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264092 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-22 20:57:51 +00:00
Ulrich Weigand f7debb1f08 [SystemZ] Add support for vecintrin.h vector built-in functions
This patch adds support for the System Z vector built-in functions.
The API-defined header file has the name vecintrin.h.

The user-level functions are defined in the same style as the clang
version of altivec.h, making heavy use of the __overloadable__ and
__always_inline__ attributes.  Where possible the functions expand to
generic operations rather than specific built-in functions, in the hope
that that form can be optimised better.

Where a built-in routine is specified to require an immediate integer
argument, the __enable_if__ attribute is used to verify the argument is
in fact constant and in the appropriate range.

Based on a patch by Richard Sandiford.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243643 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-30 14:10:43 +00:00
Sean Silva 3c48c81749 Remove `requires` for x86 CPU features.
Ever since the target attributes change, we don't need to guard these
headers with `requires`. Actually it's a bit worse, because if we do
then they are included textually under the covers, causing declarations
to appear in submodules they aren't supposed to be in.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240720 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-25 23:22:11 +00:00
John Thompson fcd25cd148 It appears these exports are needed, as wmmintrin.h includes them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@238345 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-27 18:26:41 +00:00
Richard Smith 560b361a40 [modules] Fix a #include cycle when building a module for our builtin headers.
xmmintrin.h includes emmintrin.h and vice versa if SSE2 is enabled. We break
this cycle for a modules build, and instead make the xmmintrin.h module
re-export the immintrin.h module. Also included is a fix for an assert in the
serialization code if a module exports another module that was declared later
in the same module map.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@237321 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-14 00:45:20 +00:00
Ulrich Weigand a5c0e8fe98 [SystemZ] Add header files to Makefile / module.modulemap
This should fix build-bot failures after r233804.

The patch also adds a "systemz" feature, and renames the
"transactional-execution" feature to "htm", since it turns
out "-" is not a legal character in module feature names.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@233807 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-01 14:15:35 +00:00
Ben Langmuir 31cb3c7284 Add [extern_c] attribute to _Builtin_intrinsics module
This allows users to import this module inside an extern "C" {} block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225835 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-13 21:54:32 +00:00
Richard Smith b3385dcc44 Fix interaction of max_align_t and modules.
When building with modules enabled, we were defining max_align_t as a typedef
for a different anonymous struct type each time it was included, resulting in
an error if <stddef.h> is not covered by a module map and is included more than
once in the same modules-enabled compilation of C11 or C++11 code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218931 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-03 00:31:35 +00:00
Yi Kong a5c80df8b7 Add module map entry for ARM ACLE header file
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213731 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-23 09:00:21 +00:00
Elena Demikhovsky 3a5a26a28d AVX-512: I added new headers to makefiles. It should resolve tests fail.
If it will not, I'm reverting the both commits.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213645 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-22 12:08:25 +00:00
Ben Langmuir f053390236 Rename lib/Headers/module.map to module.modulemap
Don't install a file using the legacy spelling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206431 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-17 00:52:48 +00:00