]> granicus.if.org Git - clang/log
clang
9 years ago[X86-64] Allow additional register names in inline assembler.
Alexey Bataev [Fri, 4 Sep 2015 03:42:23 +0000 (03:42 +0000)]
[X86-64] Allow additional register names in inline assembler.
Patch allows to recognize additional registers x8d, x8b, x8w - x15d, x15b, x15w in inline assembler, already recognized by backend
Differential Revision: http://reviews.llvm.org/D12594

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246835 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix a potential APInt memory leak when using __attribute__((flag_enum)), and
Richard Smith [Fri, 4 Sep 2015 01:03:03 +0000 (01:03 +0000)]
Fix a potential APInt memory leak when using __attribute__((flag_enum)), and
simplify the implementation a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246830 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUntabify.
Eric Christopher [Fri, 4 Sep 2015 00:15:47 +0000 (00:15 +0000)]
Untabify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246826 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Static Analyzer] Remove sinks from nullability checks.
Gabor Horvath [Thu, 3 Sep 2015 23:16:21 +0000 (23:16 +0000)]
[Static Analyzer] Remove sinks from nullability checks.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246818 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRefactored dtor sanitizing into EHScopeStack
Naomi Musgrave [Thu, 3 Sep 2015 23:02:30 +0000 (23:02 +0000)]
Refactored dtor sanitizing into EHScopeStack

Summary:
Dtor sanitization handled amidst other dtor cleanups,
between cleaning bases and fields. Sanitizer call pushed onto
stack of cleanup operations.

Reviewers: eugenis, kcc

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

Refactoring dtor sanitizing emission order.

- Support multiple inheritance by poisoning after
 member destructors are invoked, and before base
 class destructors are invoked.
- Poison for virtual destructor and virtual bases.
- Repress dtor aliasing when sanitizing in dtor.
- CFE test for dtor aliasing, and repression of aliasing in dtor
 code generation.
- Poison members on field-by-field basis, with collective poisoning
 of trivial members when possible.
- Check msan flags and existence of fields, before dtor sanitizing,
 and when determining if aliasing is allowed.
- Testing sanitizing bit fields.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246815 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Initial WebAssembly support in clang
Dan Gohman [Thu, 3 Sep 2015 22:51:53 +0000 (22:51 +0000)]
[WebAssembly] Initial WebAssembly support in clang

This implements basic support for compiling (though not yet assembling
or linking) for a WebAssembly target. Note that ABI details are not yet
finalized, and may change.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246814 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoThread safety analysis: the NO_THREAD_SAFETY_ANALYSIS attribute will now
DeLesley Hutchins [Thu, 3 Sep 2015 21:14:22 +0000 (21:14 +0000)]
Thread safety analysis: the NO_THREAD_SAFETY_ANALYSIS attribute will now
disable checking of arguments to the function, which is done by
-Wthread-safety-reference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246806 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd target flag to clang-cl invocation in this test.
Alexey Samsonov [Thu, 3 Sep 2015 20:53:14 +0000 (20:53 +0000)]
Add target flag to clang-cl invocation in this test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246804 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix PR23472þ by emitting initialized variable and its guard in the same COMDAT only...
Yaron Keren [Thu, 3 Sep 2015 20:33:29 +0000 (20:33 +0000)]
Fix PR23472þ by emitting initialized variable and its guard in the same COMDAT only for ELF objects.

 http://llvm.org/pr23472

Reviewed by Reid Kleckner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246803 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd -target flag to Clang invocations in this test.
Alexey Samsonov [Thu, 3 Sep 2015 19:11:42 +0000 (19:11 +0000)]
Add -target flag to Clang invocations in this test.

ASan may not be supported for the default target triple.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246795 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[libclang] Return deduced type for auto type, not the one written in the source.
Manuel Klimek [Thu, 3 Sep 2015 16:11:10 +0000 (16:11 +0000)]
[libclang] Return deduced type for auto type, not the one written in the source.

It used to work, but was accidentally broken by r179769.
The issue with decayed types was fixed by r190796.
So this patch partially reverts r179769, and adds more tests.

This also fixes PR 18669.

Patch by Sergey Kalinichev.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246778 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoImplement ACLE 2.0 macros of chapters 6.4 and 6.5 for [ARM] and [Aarch64] targets.
Alexandros Lamprineas [Thu, 3 Sep 2015 14:40:57 +0000 (14:40 +0000)]
Implement ACLE 2.0 macros of chapters 6.4 and 6.5 for [ARM] and [Aarch64] targets.
Differential Revision: http://reviews.llvm.org/D12244

Change-Id: Iffd4e822c15e18668fe8868278230ff232ef50aa

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246768 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips] Added support for choosing between traps and breaks in the integrated assemble...
Daniel Sanders [Thu, 3 Sep 2015 12:58:39 +0000 (12:58 +0000)]
[mips] Added support for choosing between traps and breaks in the integrated assembler macros.

Summary: The command line options for these are -Wa,--trap and -Wa,--break.

Patch by Scott Egerton.

Reviewers: vkalintiris, dsanders

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246765 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ARM] Allow passing/returning of __fp16 arguments
Oliver Stannard [Thu, 3 Sep 2015 12:40:58 +0000 (12:40 +0000)]
[ARM] Allow passing/returning of __fp16 arguments

The ACLE (ARM C Language Extensions) 2.0 allows the __fp16 type to be
used as a functon argument or return type (ACLE 1.1 did not).

The current public release of the AAPCS (2.09) states that __fp16 values
should be converted to single-precision before being passed or returned,
but AAPCS 2.10 (to be released shortly) changes this, so that they are
passed in the least-significant 16 bits of either a GPR (for base AAPCS)
or a single-precision register (for AAPCS-VFP). This does not change how
arguments are passed if they get passed on the stack.

This patch brings clang up to compliance with the latest versions of
both of these specs.

We can now set the __ARM_FP16_ARGS ACLE predefine, and we have always
been able to set the __ARM_FP16_FORMAT_IEEE predefine (we do not support
the alternative format).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246764 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert 246755 as it breaks buildbots
Oliver Stannard [Thu, 3 Sep 2015 11:46:24 +0000 (11:46 +0000)]
Revert 246755 as it breaks buildbots

Original commit message:
[ARM] Allow passing/returning of __fp16 arguments

The ACLE (ARM C Language Extensions) 2.0 allows the __fp16 type to be
used as a functon argument or return type (ACLE 1.1 did not).

The current public release of the AAPCS (2.09) states that __fp16 values
should be converted to single-precision before being passed or returned,
but AAPCS 2.10 (to be released shortly) changes this, so that they are
passed in the least-significant 16 bits of either a GPR (for base AAPCS)
or a single-precision register (for AAPCS-VFP). This does not change how
arguments are passed if they get passed on the stack.

This patch brings clang up to compliance with the latest versions of
both of these specs.

We can now set the __ARM_FP16_ARGS ACLE predefine, and we have always
been able to set the __ARM_FP16_FORMAT_IEEE predefine (we do not support
the alternative format).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246760 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP] Fix for http://llvm.org/PR24687: ICE on compilation of R package TPmsm.
Alexey Bataev [Thu, 3 Sep 2015 10:21:46 +0000 (10:21 +0000)]
[OPENMP] Fix for http://llvm.org/PR24687: ICE on compilation of R package TPmsm.
Fixed capturing of VLAs in 'private' clause of the OpenMP directives.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246757 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ARM] Allow passing/returning of __fp16 arguments
Oliver Stannard [Thu, 3 Sep 2015 09:34:53 +0000 (09:34 +0000)]
[ARM] Allow passing/returning of __fp16 arguments

The ACLE (ARM C Language Extensions) 2.0 allows the __fp16 type to be
used as a functon argument or return type (ACLE 1.1 did not).

The current public release of the AAPCS (2.09) states that __fp16 values
should be converted to single-precision before being passed or returned,
but AAPCS 2.10 (to be released shortly) changes this, so that they are
passed in the least-significant 16 bits of either a GPR (for base AAPCS)
or a single-precision register (for AAPCS-VFP). This does not change how
arguments are passed if they get passed on the stack.

This patch brings clang up to compliance with the latest versions of
both of these specs.

We can now set the __ARM_FP16_ARGS ACLE predefine, and we have always
been able to set the __ARM_FP16_FORMAT_IEEE predefine (we do not support
the alternative format).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246755 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP 4.1] Codegen for extended format of 'if' clause.
Alexey Bataev [Thu, 3 Sep 2015 08:45:56 +0000 (08:45 +0000)]
[OPENMP 4.1] Codegen for extended format of 'if' clause.
Fixed codegen for extended format of 'if' clauses with special 'directive-name-modifier' + ast-print tests for extended format of 'if' clause.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246748 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP 4.1] Parsing/sema analysis for extended format of 'if' clause.
Alexey Bataev [Thu, 3 Sep 2015 07:23:48 +0000 (07:23 +0000)]
[OPENMP 4.1] Parsing/sema analysis for extended format of 'if' clause.
OpenMP 4.1 added special 'directive-name-modifier' to the 'if' clause.
Format of 'if' clause is as follows:
```
if([ directive-name-modifier :] scalar-logical-expression)
```

The restriction rules are also changed.
1. If any 'if' clause on the directive includes a 'directive-name-modifier' then all 'if' clauses on the directive must include a 'directive-name-modifier'.
2. At most one 'if' clause without a 'directive-name-modifier' can appear on the directive.
3. At most one 'if' clause with some particular 'directive-name-modifier' can appear on the directive.

'directive-name-modifier' is important for combined directives and allows to separate conditions in 'if' clause for simple sub-directives in combined directive. This 'directive-name-modifier' identifies the sub-directive to which this 'if' clause must be applied.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246747 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRemove inadvertent debug output from prior change.
Douglas Katzman [Wed, 2 Sep 2015 21:18:10 +0000 (21:18 +0000)]
Remove inadvertent debug output from prior change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246715 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUse new utility function to clean leading junk from pathnames. NFC
Douglas Katzman [Wed, 2 Sep 2015 21:14:53 +0000 (21:14 +0000)]
Use new utility function to clean leading junk from pathnames. NFC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246714 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[analyzer] Refactoring: bring together scan-build options and environment variables.
Anton Yartsev [Wed, 2 Sep 2015 21:01:59 +0000 (21:01 +0000)]
[analyzer] Refactoring: bring together scan-build options and environment variables.

Full list of changes:
- all scan-build command-line arguments are now kept in %Options hash.
- most of environment variables scan-build operates with are stored in %EnvVars hash.
- moved processing of command-line arguments to the ProcessArgs subroutine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246710 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMigrate the target attribute parsing code to returning an instance
Eric Christopher [Wed, 2 Sep 2015 20:40:12 +0000 (20:40 +0000)]
Migrate the target attribute parsing code to returning an instance
every time it's called rather than attempting to cache the result.
It's unlikely to be called frequently and the overhead of using
it in the first place is already factored out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246706 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Tighten up this test a bit.
Sean Silva [Wed, 2 Sep 2015 20:16:09 +0000 (20:16 +0000)]
[modules] Tighten up this test a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246702 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdate comment for AdditionalMembers with a note to avoid using
Eric Christopher [Wed, 2 Sep 2015 20:13:41 +0000 (20:13 +0000)]
Update comment for AdditionalMembers with a note to avoid using
additional data members in attributes as they'll leak and provide
some guidance as to where they should be allocated if necessary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246701 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDo not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.
Ivan Krasin [Wed, 2 Sep 2015 20:02:38 +0000 (20:02 +0000)]
Do not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.

Summary:
Do not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.

Introduce a frontend option -fdepfile-entry, and only insert them
for the user-defined sanitizer blacklists. In frontend, grab ExtraDeps
from -fdepfile-entry, instead of -fsanitize-blacklist.

Reviewers: rsmith, pcc

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246700 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoadd __builtin_unpredictable and convert to metadata
Sanjay Patel [Wed, 2 Sep 2015 20:01:30 +0000 (20:01 +0000)]
add __builtin_unpredictable and convert to metadata

This patch depends on r246688 (D12341).

The goal is to make LLVM generate different code for these functions for a target that
has cheap branches (see PR23827 for more details):

int foo();

int normal(int x, int y, int z) {
   if (x != 0 && y != 0) return foo();
   return 1;
}

int crazy(int x, int y) {
   if (__builtin_unpredictable(x != 0 && y != 0)) return foo();
   return 1;
}

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246699 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Don't waste time reading in the names the module file writer gave to blocks...
Richard Smith [Wed, 2 Sep 2015 17:45:54 +0000 (17:45 +0000)]
[modules] Don't waste time reading in the names the module file writer gave to blocks. We don't need these names, and decoding the corresponding bitcode has a significant cost.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246680 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Number unnamed TagDecls which aren't externally visible
David Majnemer [Wed, 2 Sep 2015 15:50:38 +0000 (15:50 +0000)]
[MS ABI] Number unnamed TagDecls which aren't externally visible

TagDecls (structs, enums, etc.) may have the same name for linkage
purposes of one another; to disambiguate, we add a number to the mangled
named.  However, we didn't do this if the TagDecl has a pseudo-name for
linkage purposes (it was defined alongside a DeclaratorDecl or a
TypeNameDecl).

This fixes PR24651.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246659 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OpenMP] Make helper functoin static. NFC.
Benjamin Kramer [Wed, 2 Sep 2015 15:31:05 +0000 (15:31 +0000)]
[OpenMP] Make helper functoin static. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246657 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Shave]: pass through more clang options to moviCompile
Douglas Katzman [Wed, 2 Sep 2015 13:42:43 +0000 (13:42 +0000)]
[Shave]: pass through more clang options to moviCompile

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246652 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Sparc]: GCCInstallationDetector should not care if little-endian
Douglas Katzman [Wed, 2 Sep 2015 13:33:42 +0000 (13:33 +0000)]
[Sparc]: GCCInstallationDetector should not care if little-endian

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246650 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoSilence a -Wsign-compare warning; NFC.
Aaron Ballman [Wed, 2 Sep 2015 12:50:12 +0000 (12:50 +0000)]
Silence a -Wsign-compare warning; NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246646 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Sema] Avoid crash on tag-type mismatch (Fixes PR24610)
Vedant Kumar [Wed, 2 Sep 2015 03:27:15 +0000 (03:27 +0000)]
[Sema] Avoid crash on tag-type mismatch (Fixes PR24610)

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246618 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMigrate the target attribute parsing code into an extension off of
Eric Christopher [Wed, 2 Sep 2015 00:12:02 +0000 (00:12 +0000)]
Migrate the target attribute parsing code into an extension off of
the main attribute and cache the results so we don't have to parse
a single attribute more than once.

This reapplies r246596 with a fix for an uninitialized class member,
and a couple of cleanups and formatting changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246610 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix assertion failure in TransformOpaqueValueExpr
Hubert Tong [Tue, 1 Sep 2015 22:50:31 +0000 (22:50 +0000)]
Fix assertion failure in TransformOpaqueValueExpr

Summary:
`OpaqueValueExpr`s may not have a source expression (as in the case when
they are created due to a default argument error).
This can cause an assertion failure in `TransformOpaqueValueExpr` during
template instantiation.

This patch fixes the assertion failure.

Reviewers: hfinkel, rsmith

Subscribers: fraggamuffin, cfe-commits

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

Patch by Rachel Craik!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246600 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Migrate the target attribute parsing code into an extension off of"
Eric Christopher [Tue, 1 Sep 2015 22:37:03 +0000 (22:37 +0000)]
Revert "Migrate the target attribute parsing code into an extension off of"

This is failing in release mode. Revert while I figure out what's happening.

This reverts commit r246596.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246598 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMigrate the target attribute parsing code into an extension off of
Eric Christopher [Tue, 1 Sep 2015 22:03:58 +0000 (22:03 +0000)]
Migrate the target attribute parsing code into an extension off of
the main attribute and cache the results so we don't have to parse
a single attribute more than once.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246596 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUse hasAttr, not getAttr if we're just checking for presence.
Eric Christopher [Tue, 1 Sep 2015 22:03:56 +0000 (22:03 +0000)]
Use hasAttr, not getAttr if we're just checking for presence.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246595 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Switch to the CRC implementation in LLVM
David Majnemer [Tue, 1 Sep 2015 21:24:07 +0000 (21:24 +0000)]
[MS ABI] Switch to the CRC implementation in LLVM

We now have an implementation of the CRC in LLVM's libSupport.  Let's
consolidate around that one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246591 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMake trunk release notes point to 3.7, not 3.6
Nico Weber [Tue, 1 Sep 2015 21:13:14 +0000 (21:13 +0000)]
Make trunk release notes point to 3.7, not 3.6

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246589 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRe-commit r246497 (and dependent changes r246524 and r246521), reverted in
Richard Smith [Tue, 1 Sep 2015 20:35:42 +0000 (20:35 +0000)]
Re-commit r246497 (and dependent changes r246524 and r246521), reverted in
r246546, with a workaround for an MSVC 2013 miscompile and an MSVC 2015
rejects-valid.

Original commit message:

[modules] Rework serialized DeclContext lookup table management. Instead of
walking the loaded ModuleFiles looking for lookup tables for the context, store
them all in one place, and merge them together if we find we have too many
(currently, more than 4). If we do merge, include the merged form in our
serialized lookup table, so that downstream readers never need to look at our
imports' tables.

This gives a huge performance improvement to builds with very large numbers of
modules (in some cases, more than a 2x speedup was observed).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246582 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix typo in test
Eli Bendersky [Tue, 1 Sep 2015 18:56:19 +0000 (18:56 +0000)]
Fix typo in test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246573 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPull initFeatureMap out of line now that it's used in multiple places.
Eric Christopher [Tue, 1 Sep 2015 18:13:20 +0000 (18:13 +0000)]
Pull initFeatureMap out of line now that it's used in multiple places.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246565 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd a new frontend warning for referencing members from the handler of a constructor...
Aaron Ballman [Tue, 1 Sep 2015 14:49:24 +0000 (14:49 +0000)]
Add a new frontend warning for referencing members from the handler of a constructor or destructor function-try-block, which is UB in C++.

This corresponds to the CERT secure coding rule ERR53-CPP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246548 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoReverting r246497 (which requires also reverting r246524 and r246521 to avoid merge...
Aaron Ballman [Tue, 1 Sep 2015 13:24:39 +0000 (13:24 +0000)]
Reverting r246497 (which requires also reverting r246524 and r246521 to avoid merge conflicts). It broke the build on MSVC 2015. It also broke an MSVC 2013 bot with testing issues.

llvm\tools\clang\lib\serialization\MultiOnDiskHashTable.h(117):
error C2065: 'Files': undeclared identifier

http://bb.pgr.jp/builders/ninja-clang-i686-msc18-R/builds/2917

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246546 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] When emitting line tables, only emit filenames that are actually referenced...
Richard Smith [Tue, 1 Sep 2015 07:41:55 +0000 (07:41 +0000)]
[modules] When emitting line tables, only emit filenames that are actually referenced by the entries that we emit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246534 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoDon't use fprintf to emit this diagnostic!
Richard Smith [Tue, 1 Sep 2015 02:35:58 +0000 (02:35 +0000)]
Don't use fprintf to emit this diagnostic!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246526 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUse a more appropriate way of writing 1.
Richard Smith [Tue, 1 Sep 2015 02:02:09 +0000 (02:02 +0000)]
Use a more appropriate way of writing 1.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246524 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Cleanup get*ForUnnamedTagDecl
David Majnemer [Tue, 1 Sep 2015 01:53:07 +0000 (01:53 +0000)]
[MS ABI] Cleanup get*ForUnnamedTagDecl

Use "lookup" instead of operator[], it will not perform unnecessary
insertions.  No functionality change is intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246523 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Preserve DeclID order when merging lookup tables to give a more
Richard Smith [Tue, 1 Sep 2015 01:37:34 +0000 (01:37 +0000)]
[modules] Preserve DeclID order when merging lookup tables to give a more
predictable diagnostic experience. The hash-of-DeclID order we were using
before gave different results on Win32 due to a different predefined
declaration of __builtin_va_list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246521 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix path seperator for Windows.
Yaron Keren [Tue, 1 Sep 2015 01:29:13 +0000 (01:29 +0000)]
Fix path seperator for Windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246520 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[PowerPC] Support __builtin_ppc_get_timebase
Hal Finkel [Mon, 31 Aug 2015 23:55:19 +0000 (23:55 +0000)]
[PowerPC] Support __builtin_ppc_get_timebase

GCC 4.8+ has a PowerPC-specific intrinsic, __builtin_ppc_get_timebase, to do
what Clang's __builtin_readcyclecounter does. For compatibility with code that
uses GCC's spelling (including glibc), support it as well.

Partially fixes PR23681.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246510 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Pull the target attribute parsing out of CGCall and onto TargetInfo."
Eric Christopher [Mon, 31 Aug 2015 23:19:55 +0000 (23:19 +0000)]
Revert "Pull the target attribute parsing out of CGCall and onto TargetInfo."

This reverts commit r246468 while we figure out what to do about Basic and AST.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246508 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Add some missing blockinfo records.
Richard Smith [Mon, 31 Aug 2015 22:43:10 +0000 (22:43 +0000)]
[modules] Add some missing blockinfo records.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246504 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[modules] Rework serialized DeclContext lookup table management. Instead of
Richard Smith [Mon, 31 Aug 2015 22:17:11 +0000 (22:17 +0000)]
[modules] Rework serialized DeclContext lookup table management. Instead of
walking the loaded ModuleFiles looking for lookup tables for the context, store
them all in one place, and merge them together if we find we have too many
(currently, more than 4). If we do merge, include the merged form in our
serialized lookup table, so that downstream readers never need to look at our
imports' tables.

This gives a huge performance improvement to builds with very large numbers of
modules (in some cases, more than a 2x speedup was observed).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246497 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix CHECK directives that weren't checking.
Hans Wennborg [Mon, 31 Aug 2015 21:48:52 +0000 (21:48 +0000)]
Fix CHECK directives that weren't checking.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246492 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert r246345 until an assertion is fixed.
Gabor Horvath [Mon, 31 Aug 2015 20:10:35 +0000 (20:10 +0000)]
Revert r246345 until an assertion is fixed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246479 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoStop hardcoding GCC paths in crt/ld.so lookup.
Rafael Espindola [Mon, 31 Aug 2015 19:17:51 +0000 (19:17 +0000)]
Stop hardcoding GCC paths in crt/ld.so lookup.

This patch refactors the code to use the GCC installation detector
(modified so that it works in Solaris), and uses
ToolChain::GetFilePath everywhere once it works.

Patch by Xan López <xan@igalia.com>!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246473 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[MS ABI] Correctly mangle classes without names for linkage purposes
David Majnemer [Mon, 31 Aug 2015 18:48:39 +0000 (18:48 +0000)]
[MS ABI] Correctly mangle classes without names for linkage purposes

A class without a name for linkage purposes gets a name along the lines
of <unnamed-type-foo> where foo is either the name of a declarator which
defined it (like a variable or field) or a
typedef-name (like a typedef or alias-declaration).

We handled the declarator case correctly but it would fall down during
template instantiation if the declarator didn't share the tag's type.
We failed to handle the typedef-name case at all.

Instead, keep track of the association between the two and keep it up to
date in the face of template instantiation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246469 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPull the target attribute parsing out of CGCall and onto TargetInfo.
Eric Christopher [Mon, 31 Aug 2015 18:39:22 +0000 (18:39 +0000)]
Pull the target attribute parsing out of CGCall and onto TargetInfo.

Also:
  - Add a typedef to make working with the result easier.
  - Update callers to use the new function.
  - Make initFeatureMap out of line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246468 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPull out the ppc incompatible features check into a separate function.
Eric Christopher [Mon, 31 Aug 2015 18:39:16 +0000 (18:39 +0000)]
Pull out the ppc incompatible features check into a separate function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246467 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CUDA] fix codegen for __nvvm_atom_min/max_gen_u*
Jingyue Wu [Mon, 31 Aug 2015 17:25:51 +0000 (17:25 +0000)]
[CUDA] fix codegen for __nvvm_atom_min/max_gen_u*

Summary: Clang should emit "atomicrmw umin/umax" instead of "atomicrmw min/max".

Reviewers: eliben, tra

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246455 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OpenMP] base specific_clause_iterator on iterator_adaptor_base.
Benjamin Kramer [Mon, 31 Aug 2015 16:45:35 +0000 (16:45 +0000)]
[OpenMP] base specific_clause_iterator on iterator_adaptor_base.

Removes some boilerplate code. No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246452 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPR17829: Proper diagnostic of mangled names conflicts
Andrey Bokhanko [Mon, 31 Aug 2015 13:20:44 +0000 (13:20 +0000)]
PR17829: Proper diagnostic of mangled names conflicts

Proper diagnostic and resolution of mangled names conflicts between C++ methods
and C functions. This patch implements support for functions/methods only;
support for variables is coming separately.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246438 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAVX-512: Changed cnt parameter in valignq/d intrinsic from i8 to i32 according to...
Igor Breger [Mon, 31 Aug 2015 11:15:06 +0000 (11:15 +0000)]
AVX-512: Changed cnt parameter in valignq/d intrinsic from i8 to i32 according to the Intel Spec

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246430 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP 4.0] Codegen for array sections.
Alexey Bataev [Mon, 31 Aug 2015 07:32:19 +0000 (07:32 +0000)]
[OPENMP 4.0] Codegen for array sections.
Added codegen for array section in 'depend' clause of 'task' directive. It emits to pointers, one for the begin of array section and another for the end of array section. Size of the section is calculated as (end + 1 - start) * sizeof(basic_element_type).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246422 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OpenCL] Improve diagnostics detecting implicit vector conversion.
Alexey Bader [Sun, 30 Aug 2015 18:06:39 +0000 (18:06 +0000)]
[OpenCL] Improve diagnostics detecting implicit vector conversion.

Reviewers: pekka.jaaskelainen

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246393 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix test for Release builds, the label form is <label>:14, not <label>14.
Yaron Keren [Sun, 30 Aug 2015 17:46:43 +0000 (17:46 +0000)]
Fix test for Release builds, the label form is <label>:14, not <label>14.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246391 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMake test resistant to false matches of numbered (unnamed) labels inside other numbers.
Yaron Keren [Sun, 30 Aug 2015 15:24:46 +0000 (15:24 +0000)]
Make test resistant to false matches of numbered (unnamed) labels inside other numbers.

In release builds labels are numbers. Matching just the number may result
in false matches where the label is contained in other numbers, such as
14 inside [114 x i8]. A stricter match requiring start of line or > character
before the label avoids these false matches.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246385 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OpenMP] Make the filetered clause iterator a real iterator and type safe.
Benjamin Kramer [Sun, 30 Aug 2015 15:12:28 +0000 (15:12 +0000)]
[OpenMP] Make the filetered clause iterator a real iterator and type safe.

This replaces the filtered generic iterator with a type-specfic one based
on dyn_cast instead of comparing the kind enum. This allows us to use
range-based for loops and eliminates casts. No functionality change
intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246384 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdate for several APIs in LLVM that now use StringRefs rather than
Chandler Carruth [Sun, 30 Aug 2015 07:51:18 +0000 (07:51 +0000)]
Update for several APIs in LLVM that now use StringRefs rather than
const char pointers. In turn, push this through Clang APIs as well,
simplifying a number of bits of code that was handling the oddities of
nullptrs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246375 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdate for API change in LLVM: ARMTargetParser class is just the ARM
Chandler Carruth [Sun, 30 Aug 2015 02:16:36 +0000 (02:16 +0000)]
Update for API change in LLVM: ARMTargetParser class is just the ARM
namespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246368 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[X86] Reapplied r246204, r246206, r246211, r246223
Simon Pilgrim [Sat, 29 Aug 2015 17:13:40 +0000 (17:13 +0000)]
[X86] Reapplied r246204, r246206, r246211, r246223

(Re)added debug codegen test for F16C, FMA4, XOP + 3DNow! intrinsics

Part of PR24590

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246363 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[AST] Don't crash when comparing incomplete object
David Majnemer [Sat, 29 Aug 2015 08:32:55 +0000 (08:32 +0000)]
[AST] Don't crash when comparing incomplete object

We cannot tell if an object is past-the-end if its type is incomplete.
Zero sized objects satisfy past-the-end criteria and our object might
turn out to be such an object.

This fixes PR24622.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246359 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd a check for a function we're not testing.
Eric Christopher [Sat, 29 Aug 2015 02:59:37 +0000 (02:59 +0000)]
Add a check for a function we're not testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246355 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFollow-up to r246338: use getParentFunctionOrMethod
Hans Wennborg [Fri, 28 Aug 2015 22:56:21 +0000 (22:56 +0000)]
Follow-up to r246338: use getParentFunctionOrMethod

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246348 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPR24612: Don't bail out of checking a constexpr function before checking
Richard Smith [Fri, 28 Aug 2015 22:33:53 +0000 (22:33 +0000)]
PR24612: Don't bail out of checking a constexpr function before checking
whether it can ever produce a constant expression in the case where it has a
void return type and no return statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246347 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFold TargetInfo::handleUserFeatures into TargetInfo::initFeatureMap.
Eric Christopher [Fri, 28 Aug 2015 22:32:01 +0000 (22:32 +0000)]
Fold TargetInfo::handleUserFeatures into TargetInfo::initFeatureMap.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246346 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[analyzer] When memcpy'ing into a fixed-size array, do not invalidate entire region.
Devin Coughlin [Fri, 28 Aug 2015 22:26:05 +0000 (22:26 +0000)]
[analyzer] When memcpy'ing into a fixed-size array, do not invalidate entire region.

Change the analyzer's modeling of memcpy to be more precise when copying into fixed-size
array fields. With this change, instead of invalidating the entire containing region the
analyzer now invalidates only offsets for the array itself when it can show that the
memcpy stays within the bounds of the array.

This addresses false positive memory leak warnings of the kind reported by
krzysztof in https://llvm.org/bugs/show_bug.cgi?id=22954

A patch by Pierre Gousseau!

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246345 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAllow TLS vars in dllimport/export functions; only inline dllimport functions when...
Hans Wennborg [Fri, 28 Aug 2015 21:47:01 +0000 (21:47 +0000)]
Allow TLS vars in dllimport/export functions; only inline dllimport functions when safe (PR24593)

This patch does two things:

1) Don't error about dllimport/export on thread-local static local variables.
   We put those attributes on static locals in dllimport/export functions
   implicitly in case the function gets inlined. Now, for TLS variables this
   is a problem because we can't import such variables, but it's a benign
   problem becase:

2) Make sure we never inline a dllimport function TLS static locals. In fact,
   never inline a dllimport function that references a non-imported function
   or variable (because these are not defined in the importing library). This
   seems to match MSVC's behaviour.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246338 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoUpdating the AST matcher documentation with a new entry; NFC.
Aaron Ballman [Fri, 28 Aug 2015 19:39:56 +0000 (19:39 +0000)]
Updating the AST matcher documentation with a new entry; NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246324 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[X86][3DNow] Added debug codegen test for 3DNow! intrinsics"
Renato Golin [Fri, 28 Aug 2015 19:39:29 +0000 (19:39 +0000)]
Revert "[X86][3DNow] Added debug codegen test for 3DNow! intrinsics"

This reverts commit r246223, as it broke all ARM/AArch64 bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246323 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdding an AST matcher for namespaceAliasDecl.
Aaron Ballman [Fri, 28 Aug 2015 19:39:21 +0000 (19:39 +0000)]
Adding an AST matcher for namespaceAliasDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246322 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[X86][XOP] Added debug codegen test for XOP intrinsics"
Renato Golin [Fri, 28 Aug 2015 19:38:05 +0000 (19:38 +0000)]
Revert "[X86][XOP] Added debug codegen test for XOP intrinsics"

This reverts commit r246211, as it broke all ARM/AArch64 bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246321 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[X86][FMA4] Added debug codegen test for FMA4 intrinsics"
Renato Golin [Fri, 28 Aug 2015 19:36:27 +0000 (19:36 +0000)]
Revert "[X86][FMA4] Added debug codegen test for FMA4 intrinsics"

This reverts commit r246206, as it broke all ARM/AArch64 bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246320 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[X86][F16C] Added debug codegen test for F16C intrinsics"
Renato Golin [Fri, 28 Aug 2015 19:34:53 +0000 (19:34 +0000)]
Revert "[X86][F16C] Added debug codegen test for F16C intrinsics"

This reverts commit r246204, as it was breaking all ARM/AArch64 bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246319 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agofix typo; NFC
Sanjay Patel [Fri, 28 Aug 2015 14:42:54 +0000 (14:42 +0000)]
fix typo; NFC

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246303 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoSupport Debian s390x multiarch paths
Sylvestre Ledru [Fri, 28 Aug 2015 12:26:09 +0000 (12:26 +0000)]
Support Debian s390x multiarch paths

Summary: Patch by Steven Chamberlain <steven@pyro.eu.org>

Reviewers: uweigand

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246295 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[OPENMP 4.0] Codegen for array sections."
Daniel Jasper [Fri, 28 Aug 2015 08:42:22 +0000 (08:42 +0000)]
Revert "[OPENMP 4.0] Codegen for array sections."

The test is currently failing on bots:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/12747/

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246288 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert r246214 and r246213
Steven Wu [Fri, 28 Aug 2015 07:14:10 +0000 (07:14 +0000)]
Revert r246214 and r246213

These two commits causes llvm LTO bootstrap to hang in ScalarEvolution.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246282 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[OPENMP 4.0] Codegen for array sections.
Alexey Bataev [Fri, 28 Aug 2015 06:09:05 +0000 (06:09 +0000)]
[OPENMP 4.0] Codegen for array sections.
Added codegen for array section in 'depend' clause of 'task' directive. It emits to pointers, one for the begin of array section and another for the end of array section. Size of the section is calculated as (end + 1 - start) * sizeof(basic_element_type).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246278 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoPR24597: Fix in-place evaluation of call expressions to provide a proper "this"
Richard Smith [Fri, 28 Aug 2015 02:43:42 +0000 (02:43 +0000)]
PR24597: Fix in-place evaluation of call expressions to provide a proper "this"
pointer to an RVO construction of a returned object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246263 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoInstead of duplicating code, call the base implementation.
Eric Christopher [Fri, 28 Aug 2015 02:14:00 +0000 (02:14 +0000)]
Instead of duplicating code, call the base implementation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246260 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMerge the two feature map setting functions into a single function
Eric Christopher [Fri, 28 Aug 2015 02:13:58 +0000 (02:13 +0000)]
Merge the two feature map setting functions into a single function
and replace all callers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246259 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix macro backtrace printing.
Richard Trieu [Thu, 27 Aug 2015 23:38:45 +0000 (23:38 +0000)]
Fix macro backtrace printing.

Sometimes, a macro that expands to another macro name will not be printed in
the macro backtrace.  This patch finds the missed macro expansions and prints
them.  Fixes PR16799

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246237 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoCGDebugInfo: Instead of uniquing RetainedTypes, just refrain from retaining
Adrian Prantl [Thu, 27 Aug 2015 22:56:46 +0000 (22:56 +0000)]
CGDebugInfo: Instead of uniquing RetainedTypes, just refrain from retaining
them more than once. (NFC)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246231 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[X86] Bump Darwin MaxVectorAlign to 64 when AVX512 is enabled.
Ahmed Bougacha [Thu, 27 Aug 2015 22:42:12 +0000 (22:42 +0000)]
[X86] Bump Darwin MaxVectorAlign to 64 when AVX512 is enabled.

Without this, 64-byte vector types (__m512), specified to be 64-byte
aligned in the AVX512 draft SysV ABI, will only be 32-byte aligned.

This is analoguous to AVX, for which we accept 32-byte max alignment.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246230 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[X86] Conditionalize Darwin MaxVectorAlign on the presence of AVX.
Ahmed Bougacha [Thu, 27 Aug 2015 22:30:38 +0000 (22:30 +0000)]
[X86] Conditionalize Darwin MaxVectorAlign on the presence of AVX.

There's no point in using a larger alignment if we have no instructions
that would benefit from it.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246229 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[X86] Use AVX features instead of ABI to init. SimdDefaultAlign.
Ahmed Bougacha [Thu, 27 Aug 2015 22:24:56 +0000 (22:24 +0000)]
[X86] Use AVX features instead of ABI to init. SimdDefaultAlign.

The ABI string only exists to communicate with TargetCodeGenInfo.
Concretely, since we only used "avx*" ABI strings on x86_64 (as AVX
doesn't affect the i386 ABIs), this meant that, when initializing
SimdDefaultAlign, we would ignore AVX/AVX512 on i386, for no good
reason.

Instead, directly check the features. A similar change for
MaxVectorAlign will follow.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246228 91177308-0d34-0410-b5e6-96231b3b80d8