platform/upstream/llvm.git
9 years ago[X86][MMX] Added shuffle decodes for MMX/3DNow! shuffles.
Simon Pilgrim [Sun, 13 Sep 2015 11:28:45 +0000 (11:28 +0000)]
[X86][MMX] Added shuffle decodes for MMX/3DNow! shuffles.

Added shuffle decodes for MMX PUNPCK + PSHUFW shuffles.
Added shuffle decodes for 3DNow! PSWAPD shuffles.

llvm-svn: 247526

9 years ago[FunctionAttrs] Move the malloc-like test to a static helper function
Chandler Carruth [Sun, 13 Sep 2015 08:23:27 +0000 (08:23 +0000)]
[FunctionAttrs] Move the malloc-like test to a static helper function
that could be used from a new pass manager. This one makes particular
sense as a static helper as it doesn't even need TLI.

llvm-svn: 247525

9 years ago[FunctionAttrs] Factor the logic to test for a known non-null return out
Chandler Carruth [Sun, 13 Sep 2015 08:17:14 +0000 (08:17 +0000)]
[FunctionAttrs] Factor the logic to test for a known non-null return out
of a method and into a re-usable static helper. We can potentially use
this function from the implementation of a new pass manager oriented
version of the pass. Also add some better documentation of exactly what
the semantic model of this routine is (it isn't trivial) and use a more
modern naming convention for it.

llvm-svn: 247524

9 years agoAVX-512: Fixed a bug in OR/XOR operations for 512-bit FP values on KNL.
Elena Demikhovsky [Sun, 13 Sep 2015 08:15:15 +0000 (08:15 +0000)]
AVX-512: Fixed a bug in OR/XOR operations for 512-bit FP values on KNL.
KNL does not have VXORPS, VORPS for 512-bit values.
I use integer VPXOR, VPOR that actually do the same.

X86ISD::FXOR/FOR are generated as a result of FSUB combining.

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

llvm-svn: 247523

9 years ago[FunctionAttrs] Make the per-function attribute inference a boring
Chandler Carruth [Sun, 13 Sep 2015 08:03:23 +0000 (08:03 +0000)]
[FunctionAttrs] Make the per-function attribute inference a boring
static function rather than a method. It just needed access to
TargetLibraryInfo, and this way it can be easily reused between the
current FunctionAttrs implementation and any port for the new pass
manager.

llvm-svn: 247522

9 years ago[FunctionAttrs] Collect utility functions as static helpers rather than
Chandler Carruth [Sun, 13 Sep 2015 07:50:43 +0000 (07:50 +0000)]
[FunctionAttrs] Collect utility functions as static helpers rather than
methods. They don't need anything from the class anyways.

Also, collect the declarations into the private section of the pass.

llvm-svn: 247521

9 years agoClean up doxygen comments in FunctionAttrs, promoting some non-doxygen
Chandler Carruth [Sun, 13 Sep 2015 06:57:25 +0000 (06:57 +0000)]
Clean up doxygen comments in FunctionAttrs, promoting some non-doxygen
comments, deleting duplicate comments, moving comments to consistently
live on the definition since these are all really internal routines,
etc. NFC.

llvm-svn: 247520

9 years agoDo some spring cleaning on FunctionAttrs.cpp with clang-format prior to
Chandler Carruth [Sun, 13 Sep 2015 06:47:20 +0000 (06:47 +0000)]
Do some spring cleaning on FunctionAttrs.cpp with clang-format prior to
other refactorings and cleanups here.

llvm-svn: 247519

9 years ago[llvm-mc] More meaningful error if input file doesn't exist.
Davide Italiano [Sun, 13 Sep 2015 04:09:40 +0000 (04:09 +0000)]
[llvm-mc] More meaningful error if input file doesn't exist.

Before we just printed on stderr the program name. Now at least we
print the name of the file that doesn't exist. There's probably room
for improvement of error handling in llvm-mc (and the tools in general),
but still this is a step forward.

llvm-svn: 247518

9 years ago[x86] enable machine combiner reassociations for 128-bit vector logical integer insts...
Sanjay Patel [Sat, 12 Sep 2015 19:47:50 +0000 (19:47 +0000)]
[x86] enable machine combiner reassociations for 128-bit vector logical integer insts (2nd try)

The changes in:
test/CodeGen/X86/machine-cp.ll
are just due to scheduling differences after some logic instructions were reassociated.

llvm-svn: 247516

9 years ago[CodeGen] Fix AtomicExpand invalidation issue caused by r247429.
Ahmed Bougacha [Sat, 12 Sep 2015 18:51:23 +0000 (18:51 +0000)]
[CodeGen] Fix AtomicExpand invalidation issue caused by r247429.

llvm-svn: 247514

9 years ago[X86] Renamed lowerVectorShuffleAsUnpack NFCI.
Simon Pilgrim [Sat, 12 Sep 2015 18:26:47 +0000 (18:26 +0000)]
[X86] Renamed lowerVectorShuffleAsUnpack NFCI.

Renamed to lowerVectorShuffleAsPermuteAndUnpack to make it clear that it lowers to more than just a UNPCK instruction.

llvm-svn: 247513

9 years agoDon't use bashism/kshism of test ==. From Kamil Rytarowski.
Joerg Sonnenberger [Sat, 12 Sep 2015 16:30:32 +0000 (16:30 +0000)]
Don't use bashism/kshism of test ==. From Kamil Rytarowski.

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

llvm-svn: 247512

9 years ago[X86] Moved lowerVectorShuffleWithUNPCK earlier to make reuse easier. NFCI.
Simon Pilgrim [Sat, 12 Sep 2015 16:03:06 +0000 (16:03 +0000)]
[X86] Moved lowerVectorShuffleWithUNPCK earlier to make reuse easier. NFCI.

llvm-svn: 247511

9 years agoUse -f instead of -d flag for testing existing of clang executable (http://reviews...
Ted Kremenek [Sat, 12 Sep 2015 16:01:34 +0000 (16:01 +0000)]
Use -f instead of -d flag for testing existing of clang executable (reviews.llvm.org/D12827).

llvm-svn: 247510

9 years ago[X86] Added i1 vector sextload tests
Simon Pilgrim [Sat, 12 Sep 2015 15:36:41 +0000 (15:36 +0000)]
[X86] Added i1 vector sextload tests

llvm-svn: 247509

9 years ago[X86][FMA] Refreshed fma tests
Simon Pilgrim [Sat, 12 Sep 2015 15:33:05 +0000 (15:33 +0000)]
[X86][FMA] Refreshed fma tests

llvm-svn: 247508

9 years agorevert r247506; need to verify changes in existing tests
Sanjay Patel [Sat, 12 Sep 2015 15:27:31 +0000 (15:27 +0000)]
revert r247506; need to verify changes in existing tests

llvm-svn: 247507

9 years ago[x86] enable machine combiner reassociations for 128-bit vector logical integer insts
Sanjay Patel [Sat, 12 Sep 2015 14:58:04 +0000 (14:58 +0000)]
[x86] enable machine combiner reassociations for 128-bit vector logical integer insts

llvm-svn: 247506

9 years agoFixed unused variable warning.
Simon Pilgrim [Sat, 12 Sep 2015 14:00:17 +0000 (14:00 +0000)]
Fixed unused variable warning.

llvm-svn: 247505

9 years ago[InstCombine] CVTPH2PS Vector Demanded Elements + Constant Folding
Simon Pilgrim [Sat, 12 Sep 2015 13:39:53 +0000 (13:39 +0000)]
[InstCombine] CVTPH2PS Vector Demanded Elements + Constant Folding

Improved InstCombine support for CVTPH2PS (F16C half 2 float conversion):

<4 x float> @llvm.x86.vcvtph2ps.128(<8 x i16>) - only uses the bottom 4 i16 elements for the conversion.

Added constant folding support.

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

llvm-svn: 247504

9 years agoTest commit.
Kelvin Li [Sat, 12 Sep 2015 13:35:31 +0000 (13:35 +0000)]
Test commit.

llvm-svn: 247503

9 years ago[X86][SSE] Use general sext IR for (v)pmovsx stack folding tests
Simon Pilgrim [Sat, 12 Sep 2015 11:45:24 +0000 (11:45 +0000)]
[X86][SSE] Use general sext IR for (v)pmovsx stack folding tests

llvm-svn: 247502

9 years ago[PM] Port SROA to the new pass manager.
Chandler Carruth [Sat, 12 Sep 2015 09:09:14 +0000 (09:09 +0000)]
[PM] Port SROA to the new pass manager.

In some ways this is a very boring port to the new pass manager as there
are no interesting analyses or dependencies or other oddities.

However, this does introduce the first good example of a transformation
pass with non-trivial state porting to the new pass manager. I've tried
to carve out patterns here to replicate elsewhere, and would appreciate
comments on whether folks like these patterns:

- A common need in the new pass manager is to effectively lift the pass
  class and some of its state into a public header file. Prior to this,
  LLVM used anonymous namespaces to provide "module private" types and
  utilities, but that doesn't scale to cases where a public header file
  is needed and the new pass manager will exacerbate that. The pattern
  I've adopted here is to use the namespace-cased-name of the core pass
  (what would be a module if we had them) as a module-private namespace.
  Then utility and other code can be declared and defined in this
  namespace. At some point in the future, we could even have
  (conditionally compiled) code that used modules features when
  available to do the same basic thing.

- I've split the actual pass run method in two in order to expose
  a private method usable by the old pass manager to wrap the new class
  with a minimum of duplicated code. I actually looked at a bunch of
  ways to automate or generate these, but they are all quite terrible
  IMO. The fundamental need is to extract the set of analyses which need
  to cross this interface boundary, and that will end up being too
  unpredictable to effectively encapsulate IMO. This is also
  a relatively small amount of boiler plate that will live a relatively
  short time, so I'm not too worried about the fact that it is boiler
  plate.

The rest of the patch is totally boring but results in a massive diff
(sorry). It just moves code around and removes or adds qualifiers to
reflect the new name and nesting structure.

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

llvm-svn: 247501

9 years ago[CodeGen] Remove wrapper-free always_inline functions from COMDATs
David Majnemer [Sat, 12 Sep 2015 06:37:42 +0000 (06:37 +0000)]
[CodeGen] Remove wrapper-free always_inline functions from COMDATs

always_inline functions without a wrapper don't need to be in a COMDAT.

llvm-svn: 247500

9 years agoubsan: Also disable vptr validation on powerpc64le.
Peter Collingbourne [Sat, 12 Sep 2015 05:24:44 +0000 (05:24 +0000)]
ubsan: Also disable vptr validation on powerpc64le.

llvm-svn: 247499

9 years agoClean up trailing whitespace in the builtin headers
Sean Silva [Sat, 12 Sep 2015 02:55:19 +0000 (02:55 +0000)]
Clean up trailing whitespace in the builtin headers

llvm-svn: 247498

9 years agoClean up: Refactoring the hardcoded value of 6 for FindAvailableLoadedValue()'s param...
Larisse Voufo [Sat, 12 Sep 2015 01:41:55 +0000 (01:41 +0000)]
Clean up: Refactoring the hardcoded value of 6 for FindAvailableLoadedValue()'s parameter MaxInstsToScan.

llvm-svn: 247497

9 years agoclang/test/Driver/stackrealign.c REQUIRES clang-driver.
NAKAMURA Takumi [Sat, 12 Sep 2015 01:29:35 +0000 (01:29 +0000)]
clang/test/Driver/stackrealign.c REQUIRES clang-driver.

GCC driver, for example cygwin, both "-mstackrealign" "-mno-stackrealign" are passed.

llvm-svn: 247496

9 years agoFix typos.
Bruce Mitchener [Sat, 12 Sep 2015 01:17:08 +0000 (01:17 +0000)]
Fix typos.

Summary: This fixes a variety of typos in docs, code and headers.

Subscribers: jholewinski, sanjoy, arsenm, llvm-commits

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

llvm-svn: 247495

9 years agoAlways_inline codegen rewrite.
Evgeniy Stepanov [Sat, 12 Sep 2015 01:07:37 +0000 (01:07 +0000)]
Always_inline codegen rewrite.

Current implementation may end up emitting an undefined reference for
an "inline __attribute__((always_inline))" function by generating an
"available_externally alwaysinline" IR function for it and then failing to
inline all the calls. This happens when a call to such function is in dead
code. As the inliner is an SCC pass, it does not process dead code.

Libc++ relies on the compiler never emitting such undefined reference.

With this patch, we emit a pair of
1. internal alwaysinline definition (called F.alwaysinline)
2a. A stub F() { musttail call F.alwaysinline }
  -- or, depending on the linkage --
2b. A declaration of F.

The frontend ensures that F.inlinefunction is only used for direct
calls, and the stub is used for everything else (taking the address of
the function, really). Declaration (2b) is emitted in the case when
"inline" is meant for inlining only (like __gnu_inline__ and some
other cases).

This approach, among other nice properties, ensures that alwaysinline
functions are always internal, making it impossible for a direct call
to such function to produce an undefined symbol reference.

This patch is based on ideas by Chandler Carruth and Richard Smith.

llvm-svn: 247494

9 years agoubsan: Disable vptr validation on powerpc64.
Peter Collingbourne [Sat, 12 Sep 2015 00:08:28 +0000 (00:08 +0000)]
ubsan: Disable vptr validation on powerpc64.

Should fix sanitizer-ppc64-linux1 bot.

llvm-svn: 247493

9 years agoMove asserts from PHINode::addIncoming to PHINode::setIncoming*
Hal Finkel [Sat, 12 Sep 2015 00:08:21 +0000 (00:08 +0000)]
Move asserts from PHINode::addIncoming to PHINode::setIncoming*

We had asserts in PHINode::addIncoming to check that the value types matched
the type of the PHI, and that the associated BB was not null. These did not
catch, however, later uses of setIncomingValue and setIncomingBlock (which are
called by addIncoming as well). Moving the asserts to PHINode::setIncoming*
provides better coverage. NFC.

llvm-svn: 247492

9 years agoRevert "Specify target triple in alwaysinline tests."
Evgeniy Stepanov [Fri, 11 Sep 2015 23:48:37 +0000 (23:48 +0000)]
Revert "Specify target triple in alwaysinline tests."
Revert "Always_inline codegen rewrite."

Breaks gdb & lldb tests.
Breaks on Fedora 22 x86_64.

llvm-svn: 247491

9 years agodsymutil: Factor out the relocation handling into a RelocationManager (NFC)
Adrian Prantl [Fri, 11 Sep 2015 23:45:30 +0000 (23:45 +0000)]
dsymutil: Factor out the relocation handling into a RelocationManager (NFC)

llvm-svn: 247490

9 years ago[clang-tidy] misc-sizeof-container: whitelist std::bitset<>.
Alexander Kornienko [Fri, 11 Sep 2015 22:54:44 +0000 (22:54 +0000)]
[clang-tidy] misc-sizeof-container: whitelist std::bitset<>.

It's fine to use sizeof on std::bitset<>, since it doesn't have any external
storage, everything's inside.

llvm-svn: 247489

9 years agoAdd new test file missing from r247486.
Richard Smith [Fri, 11 Sep 2015 22:54:01 +0000 (22:54 +0000)]
Add new test file missing from r247486.

llvm-svn: 247488

9 years agoStart adding support for creating shared libraries.
Rafael Espindola [Fri, 11 Sep 2015 22:42:45 +0000 (22:42 +0000)]
Start adding support for creating shared libraries.

They are not fully functional yet, but this implements enough support for lld
itself to read them.

With that, delete the .so binary we were using for tests and start eating our
own dog food.

llvm-svn: 247487

9 years ago[modules] When picking one of two template declarations as a lookup result,
Richard Smith [Fri, 11 Sep 2015 22:39:35 +0000 (22:39 +0000)]
[modules] When picking one of two template declarations as a lookup result,
it's not sufficient to prefer the declaration with more default arguments, or
the one that's visible; they might both be visible, but one of them might have
a visible default argument where the other has a hidden default argument.

llvm-svn: 247486

9 years ago[clang-tidy] Fix minor issues in the testing script.
Alexander Kornienko [Fri, 11 Sep 2015 22:38:26 +0000 (22:38 +0000)]
[clang-tidy] Fix minor issues in the testing script.

llvm-svn: 247485

9 years agoubsan: Implement memory permission validation for vtables.
Peter Collingbourne [Fri, 11 Sep 2015 22:18:35 +0000 (22:18 +0000)]
ubsan: Implement memory permission validation for vtables.

If the pointer passed to the getVtablePrefix function was read from a freed
object, we may end up following pointers into objects on the heap and
printing bogus dynamic type names in diagnostics. However, we know that
vtable pointers will generally only point into memory mapped from object
files, not objects on the heap.

This change causes us to only follow pointers in a vtable if the vtable
and one of the virtual functions it points to appear to have appropriate
permissions (i.e. non-writable, and maybe executable), which will generally
exclude heap pointers.

Only enabled for Linux; this hasn't been tested on FreeBSD, and vtables are
writable on Mac (PR24782) so this won't work there.

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

llvm-svn: 247484

9 years ago[MC] Fix style bugs introduced in r247471. Reported by Rafael Espindola.
Davide Italiano [Fri, 11 Sep 2015 22:04:21 +0000 (22:04 +0000)]
[MC] Fix style bugs introduced in r247471. Reported by Rafael Espindola.

llvm-svn: 247483

9 years agoWhen comparing two block captures for layout, don't crash
John McCall [Fri, 11 Sep 2015 22:00:51 +0000 (22:00 +0000)]
When comparing two block captures for layout, don't crash
if they have the same alignment and one was 'this'.

Fixes PR24780.

llvm-svn: 247482

9 years agoFix handling of _start being undefined.
Rafael Espindola [Fri, 11 Sep 2015 21:44:55 +0000 (21:44 +0000)]
Fix handling of _start being undefined.

We were crashing before.

llvm-svn: 247481

9 years agoMerge TempScop into Scop
Michael Kruse [Fri, 11 Sep 2015 21:41:48 +0000 (21:41 +0000)]
Merge TempScop into Scop

Summary:
TempScop is basically a holder for AccFuncMap, the dictionary from BasicBlocks to IRAccess lists. We move the list into polly::Scop and remove the polly::TempScop class.

There is one small change in behavior: If ScopInfo finds that its AssumedContext is impossible, it bails out by deleting the Scop object. The TempScop::print (invoked with opt -polly-scops -analyze) cannot print the AccFuncMap anymore as it would with a separate TempScop.

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

llvm-svn: 247480

9 years agoFix a thinko causing test logs for crashes to not get written.
Zachary Turner [Fri, 11 Sep 2015 21:27:37 +0000 (21:27 +0000)]
Fix a thinko causing test logs for crashes to not get written.

llvm-svn: 247479

9 years agoFix a copy and paste error. Sorry about that.
Rafael Espindola [Fri, 11 Sep 2015 21:26:42 +0000 (21:26 +0000)]
Fix a copy and paste error. Sorry about that.

llvm-svn: 247478

9 years agoLet selector-expr-lvalue.mm actually test something.
Nico Weber [Fri, 11 Sep 2015 21:24:40 +0000 (21:24 +0000)]
Let selector-expr-lvalue.mm actually test something.

I accidentally introduced a bug locally, and noticed that none of the tests
caught it. No longer!

llvm-svn: 247477

9 years ago[Static Analyzer] Properly cash the configuration option for lambda support.
Gabor Horvath [Fri, 11 Sep 2015 21:19:39 +0000 (21:19 +0000)]
[Static Analyzer] Properly cash the configuration option for lambda support.

llvm-svn: 247476

9 years agoImplement -rpath.
Rafael Espindola [Fri, 11 Sep 2015 21:18:56 +0000 (21:18 +0000)]
Implement -rpath.

llvm-svn: 247475

9 years ago[Shave]: pass -isystem dirs and "-Wa," args to moviAsm
Douglas Katzman [Fri, 11 Sep 2015 21:13:46 +0000 (21:13 +0000)]
[Shave]: pass -isystem dirs and "-Wa," args to moviAsm

llvm-svn: 247474

9 years agoSpecify target triple in alwaysinline tests.
Evgeniy Stepanov [Fri, 11 Sep 2015 21:10:12 +0000 (21:10 +0000)]
Specify target triple in alwaysinline tests.

This should fix the tests on Windows (failing due to mangling differencies).

llvm-svn: 247473

9 years agoSimplify logic introduced in r247464.
David Majnemer [Fri, 11 Sep 2015 20:55:29 +0000 (20:55 +0000)]
Simplify logic introduced in r247464.

llvm-svn: 247472

9 years ago[MC] Don't crash on division by zero.
Davide Italiano [Fri, 11 Sep 2015 20:47:35 +0000 (20:47 +0000)]
[MC] Don't crash on division by zero.

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

llvm-svn: 247471

9 years agoIntrospect llvm-config --assertion-mode in cmake out-of-tree builds
Michael Kruse [Fri, 11 Sep 2015 20:47:14 +0000 (20:47 +0000)]
Introspect llvm-config --assertion-mode in cmake out-of-tree builds

When compiling Polly without LLVM sources but with system-installed
LLVM, the build process would not honor the LLVM_ENABLE_ASSERTIONS
setting LLVM was compiled with, but effectively assume that it is
switched off when compiling. During unit-tests llvm-lit would still
query the LLVM_ENABLE_ASSERTIONS flag and enable tests which require
assertions. Even if enabled for LLVM, Polly does not output its debug
info and statistics in this this mode such that 7 tests fail.

To fix, we query llvm-config --assertion-mode and if on, enable
assertions as HandleLLVMOptions.cmake would do.

We cannot reliably use HandleLLVMOptions.cmake itself as the host's
LLVM build might have been built using automake and distributions
change file locations (e.g. Debian to
/usr/share/llvm-${VERSION}/cmake/HandleLLVMOptions.cmake).

llvm-svn: 247470

9 years agoAdd missed import lldbtest.
Oleksiy Vyalov [Fri, 11 Sep 2015 20:46:46 +0000 (20:46 +0000)]
Add missed import lldbtest.

llvm-svn: 247469

9 years ago[tooling] In CompileCommand, Expose the 'file' that was associated with the command.
Argyrios Kyrtzidis [Fri, 11 Sep 2015 20:43:05 +0000 (20:43 +0000)]
[tooling] In CompileCommand, Expose the 'file' that was associated with the command.

llvm-svn: 247468

9 years ago[CMake] [Darwin] Add support for building bootstrap builds with -flto
Chris Bieneman [Fri, 11 Sep 2015 20:42:57 +0000 (20:42 +0000)]
[CMake] [Darwin] Add support for building bootstrap builds with -flto

When building with LTO the bootstrap builds need to depend on libLTO, llvm-ar, and llvm-ranlib, which all need to be passed into the bootstrap build. This functionality only works on Darwin.

llvm-svn: 247467

9 years ago[analyzer] Improve behavior if Clang not found.
Anton Yartsev [Fri, 11 Sep 2015 20:41:09 +0000 (20:41 +0000)]
[analyzer] Improve behavior if Clang not found.

- Eliminate 'No such file or directory at scan-build line ...' error if '$RealBin/bin/clang' or '$RealBin/clang' directory does not exist.
- Eliminate 'Use of uninitialized value $Clang in concatenation (.) or string at scan-build line ...' error if help is displayed while $Clang was not found.

llvm-svn: 247466

9 years agoAlways_inline codegen rewrite.
Evgeniy Stepanov [Fri, 11 Sep 2015 20:29:07 +0000 (20:29 +0000)]
Always_inline codegen rewrite.

Current implementation may end up emitting an undefined reference for
an "inline __attribute__((always_inline))" function by generating an
"available_externally alwaysinline" IR function for it and then failing to
inline all the calls. This happens when a call to such function is in dead
code. As the inliner is an SCC pass, it does not process dead code.

Libc++ relies on the compiler never emitting such undefined reference.

With this patch, we emit a pair of
1. internal alwaysinline definition (called F.alwaysinline)
2a. A stub F() { musttail call F.alwaysinline }
  -- or, depending on the linkage --
2b. A declaration of F.

The frontend ensures that F.inlinefunction is only used for direct
calls, and the stub is used for everything else (taking the address of
the function, really). Declaration (2b) is emitted in the case when
"inline" is meant for inlining only (like __gnu_inline__ and some
other cases).

This approach, among other nice properties, ensures that alwaysinline
functions are always internal, making it impossible for a direct call
to such function to produce an undefined symbol reference.

This patch is based on ideas by Chandler Carruth and Richard Smith.

llvm-svn: 247465

9 years ago[MS ABI] Select an inheritance model in template arguments
David Majnemer [Fri, 11 Sep 2015 20:18:09 +0000 (20:18 +0000)]
[MS ABI] Select an inheritance model in template arguments

We used to only select an inheritance model if the pointer to member was
nullptr.  Instead, select a model regardless of the member pointer's
value.

N.B.  This bug was exposed by making member pointers report true for
isIncompleteType but has been latent since the member pointer scheme's
inception.

llvm-svn: 247464

9 years ago[analyzer] Add -analyzer-config option for function size the inliner considers as...
Devin Coughlin [Fri, 11 Sep 2015 20:14:05 +0000 (20:14 +0000)]
[analyzer] Add -analyzer-config option for function size the inliner considers as large

Add an option (-analyzer-config min-blocks-for-inline-large=14) to control the function
size the inliner considers as large, in relation to "max-times-inline-large". The option
defaults to the original hard coded behaviour, which I believe should be adjustable with
the other inlining settings.

The analyzer-config test has been modified so that the analyzer will reach the
getMinBlocksForInlineLarge() method and store the result in the ConfigTable, to ensure it
is dumped by the debug checker.

A patch by Sean Eveson!

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

llvm-svn: 247463

9 years ago[Edit] Fix issue with tracking what macro argument inputs have been edited.
Argyrios Kyrtzidis [Fri, 11 Sep 2015 20:09:11 +0000 (20:09 +0000)]
[Edit] Fix issue with tracking what macro argument inputs have been edited.

This was not working correctly, leading to erroneously rejecting valid edits.

llvm-svn: 247462

9 years agoAdd a non-exiting diagnostic handler for LTO.
Yunzhong Gao [Fri, 11 Sep 2015 20:01:53 +0000 (20:01 +0000)]
Add a non-exiting diagnostic handler for LTO.
This is in order to give LTO clients a chance to do some clean-up before
terminating the process.

llvm-svn: 247461

9 years agoXFAIL miscellaneous tests on windows.
Zachary Turner [Fri, 11 Sep 2015 20:01:24 +0000 (20:01 +0000)]
XFAIL miscellaneous tests on windows.

llvm.org/pr24778

llvm-svn: 247460

9 years agoXFAIL 2 breakpoint tests on Windows.
Zachary Turner [Fri, 11 Sep 2015 20:00:39 +0000 (20:00 +0000)]
XFAIL 2 breakpoint tests on Windows.

llvm.org/pr24777

llvm-svn: 247459

9 years agoXFAIL some more tests related to value api
Zachary Turner [Fri, 11 Sep 2015 20:00:25 +0000 (20:00 +0000)]
XFAIL some more tests related to value api

llvm.org/pr24772

llvm-svn: 247458

9 years agoXFAIL TestDisassembleBreakpoint.
Zachary Turner [Fri, 11 Sep 2015 20:00:09 +0000 (20:00 +0000)]
XFAIL TestDisassembleBreakpoint.

This is a trivial issue to fix, just marking it for later.
Windows prints function signatures a bit differently, and the
test expects a specific format.

llvm-svn: 247457

9 years agoXFAIL tests that try to call a function in the inferior.
Zachary Turner [Fri, 11 Sep 2015 20:00:00 +0000 (20:00 +0000)]
XFAIL tests that try to call a function in the inferior.

llvm.org/pr21765

llvm-svn: 247456

9 years agoXFAIL some C++ language specific tests on Windows.
Zachary Turner [Fri, 11 Sep 2015 19:59:39 +0000 (19:59 +0000)]
XFAIL some C++ language specific tests on Windows.

http://llvm.org/pr24764

llvm-svn: 247455

9 years agotypo; NFC
Sanjay Patel [Fri, 11 Sep 2015 19:29:18 +0000 (19:29 +0000)]
typo; NFC

llvm-svn: 247454

9 years agoDon't make assumptions about the size of the dynamic string table.
Rafael Espindola [Fri, 11 Sep 2015 19:12:37 +0000 (19:12 +0000)]
Don't make assumptions about the size of the dynamic string table.

It contains pathnames, so it can be different in each machine.

llvm-svn: 247453

9 years agoFix a small typo in ObjectFileELF.cpp.
Stephane Sezer [Fri, 11 Sep 2015 18:56:59 +0000 (18:56 +0000)]
Fix a small typo in ObjectFileELF.cpp.

llvm-svn: 247452

9 years agoRecord function attribute "stackrealign" instead of using backend option
Akira Hatanaka [Fri, 11 Sep 2015 18:55:09 +0000 (18:55 +0000)]
Record function attribute "stackrealign" instead of using backend option
-force-align-stack.

Also, make changes to the driver so that -mno-stack-realign is no longer
an option exposed to the end-user that disallows stack realignment in
the backend.

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

llvm-svn: 247451

9 years agoUse function attribute "stackrealign" to decide whether stack
Akira Hatanaka [Fri, 11 Sep 2015 18:54:38 +0000 (18:54 +0000)]
Use function attribute "stackrealign" to decide whether stack
realignment should be forced.

With this commit, we can now force stack realignment when doing LTO and
do so on a per-function basis. Also, add a new cl::opt option
"stackrealign" to CommandFlags.h which is used to force stack
realignment via llc's command line.

Out-of-tree projects currently using -force-align-stack to force stack
realignment should make changes to attach the attribute to the functions
in the IR.

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

llvm-svn: 247450

9 years agoFix a typo and make this test stricter.
Adrian Prantl [Fri, 11 Sep 2015 18:54:34 +0000 (18:54 +0000)]
Fix a typo and make this test stricter.

llvm-svn: 247449

9 years agoRemove an unnecessary check. NFC
Adrian Prantl [Fri, 11 Sep 2015 18:54:31 +0000 (18:54 +0000)]
Remove an unnecessary check. NFC

llvm-svn: 247448

9 years agoRemove a redundant check from CGDebugInfo::shouldOmitDefinition() (NFC).
Adrian Prantl [Fri, 11 Sep 2015 18:54:28 +0000 (18:54 +0000)]
Remove a redundant check from CGDebugInfo::shouldOmitDefinition() (NFC).

llvm-svn: 247447

9 years agoImplement the -dynamic-linker option.
Rafael Espindola [Fri, 11 Sep 2015 18:49:42 +0000 (18:49 +0000)]
Implement the -dynamic-linker option.

With this dynamic executables can be executed with just ./t instead of
/lib64/ld-2.20.so ./t

llvm-svn: 247446

9 years agoCleanup: Get rid of a bunch of unnecessary invocations of internString()
Adrian Prantl [Fri, 11 Sep 2015 18:45:02 +0000 (18:45 +0000)]
Cleanup: Get rid of a bunch of unnecessary invocations of internString()
in CGDebugInfo.cpp: MDString::get() copies its arguments.

llvm-svn: 247445

9 years ago[Static Analyzer] Fixed a typo in a diagnostic message.
Gabor Horvath [Fri, 11 Sep 2015 18:41:50 +0000 (18:41 +0000)]
[Static Analyzer] Fixed a typo in a diagnostic message.

llvm-svn: 247444

9 years ago[CMake] [Darwin] Need to set lto_library on CMAKE_MODULE_LINKER_FLAGS as well
Chris Bieneman [Fri, 11 Sep 2015 18:39:19 +0000 (18:39 +0000)]
[CMake] [Darwin] Need to set lto_library on CMAKE_MODULE_LINKER_FLAGS as well

This is a follow-on to r247308.

llvm-svn: 247443

9 years agoExtend the Token visualizer used by MSVC to display the identifier text for tok:...
Aaron Ballman [Fri, 11 Sep 2015 18:35:18 +0000 (18:35 +0000)]
Extend the Token visualizer used by MSVC to display the identifier text for tok::identifier tokens.

Patch by Mike Spertus.

llvm-svn: 247442

9 years agoFix some typos in comments
Tobias Grosser [Fri, 11 Sep 2015 18:26:59 +0000 (18:26 +0000)]
Fix some typos in comments

llvm-svn: 247441

9 years agoMake this test a bit more resistant to section number changes.
Rafael Espindola [Fri, 11 Sep 2015 17:53:01 +0000 (17:53 +0000)]
Make this test a bit more resistant to section number changes.

llvm-svn: 247439

9 years agoUse Itanium C++ ABI triple for new modules+debug test
Reid Kleckner [Fri, 11 Sep 2015 17:50:14 +0000 (17:50 +0000)]
Use Itanium C++ ABI triple for new modules+debug test

llvm-svn: 247438

9 years ago[test] Specify exception object type in two tests
Vedant Kumar [Fri, 11 Sep 2015 17:39:34 +0000 (17:39 +0000)]
[test] Specify exception object type in two tests

Replace:
    'try { throw 0; } catch (...)'
with
    'try { throw 0; } catch (int e)'

in two test cases.

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

llvm-svn: 247437

9 years ago[CMake] Making the bootstrap-clear target always delete the boostrap build directories.
Chris Bieneman [Fri, 11 Sep 2015 17:38:38 +0000 (17:38 +0000)]
[CMake] Making the bootstrap-clear target always delete the boostrap build directories.

llvm-svn: 247436

9 years ago[X86] Make sure startproc/endproc are paired
David Majnemer [Fri, 11 Sep 2015 17:34:34 +0000 (17:34 +0000)]
[X86] Make sure startproc/endproc are paired

We used different conditions to determine if we should emit startproc vs
endproc.  Use the same condition to ensure that they will always be
paired.

This fixes PR24374.

llvm-svn: 247435

9 years agoUpdate test expectations for LLVM asm printing change
Reid Kleckner [Fri, 11 Sep 2015 17:27:53 +0000 (17:27 +0000)]
Update test expectations for LLVM asm printing change

llvm-svn: 247434

9 years ago[IR] Print the label operands of a catchpad like an invoke
Reid Kleckner [Fri, 11 Sep 2015 17:27:52 +0000 (17:27 +0000)]
[IR] Print the label operands of a catchpad like an invoke

The rest of the EH pads are fine, since they have at most one label and
take fewer operands for the personality.

Old catchpad vs. new:
  %5 = catchpad [i8* bitcast (i32 ()* @"\01?filt$0@0@main@@" to i8*)] to label %__except.ret.10 unwind label %catchendblock.9
-----
  %5 = catchpad [i8* bitcast (i32 ()* @"\01?filt$0@0@main@@" to i8*)]
          to label %__except.ret.10 unwind label %catchendblock.9

llvm-svn: 247433

9 years agoModule Debugging: Emit forward declarations for types that are defined in
Adrian Prantl [Fri, 11 Sep 2015 17:23:08 +0000 (17:23 +0000)]
Module Debugging: Emit forward declarations for types that are defined in
clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified.

This reimplements r247369 in about a third of the amount of code.
Thanks to David Blaikie pointing this out in post-commit review!

llvm-svn: 247432

9 years agoRevert "Module Debugging: Emit forward declarations for types that are defined in"
Adrian Prantl [Fri, 11 Sep 2015 17:23:03 +0000 (17:23 +0000)]
Revert "Module Debugging: Emit forward declarations for types that are defined in"

This reverts commit r247369 to facilitate reviewing of the following patch.

llvm-svn: 247431

9 years ago[Static Analyzer] Properly clean up the dynamic type information for dead regions.
Gabor Horvath [Fri, 11 Sep 2015 17:19:57 +0000 (17:19 +0000)]
[Static Analyzer] Properly clean up the dynamic type information for dead regions.

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

llvm-svn: 247430

9 years ago[CodeGen] Refactor TLI/AtomicExpand interface to make LLSC explicit.
Ahmed Bougacha [Fri, 11 Sep 2015 17:08:28 +0000 (17:08 +0000)]
[CodeGen] Refactor TLI/AtomicExpand interface to make LLSC explicit.

We used to have this magic "hasLoadLinkedStoreConditional()" callback,
which really meant two things:
- expand cmpxchg (to ll/sc).
- expand atomic loads using ll/sc (rather than cmpxchg).

Remove it, and, instead, introduce explicit callbacks:
- bool shouldExpandAtomicCmpXchgInIR(inst)
- AtomicExpansionKind shouldExpandAtomicLoadInIR(inst)

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

llvm-svn: 247429

9 years ago[CodeGen] Rename AtomicRMWExpansionKind to AtomicExpansionKind.
Ahmed Bougacha [Fri, 11 Sep 2015 17:08:17 +0000 (17:08 +0000)]
[CodeGen] Rename AtomicRMWExpansionKind to AtomicExpansionKind.

This lets us generalize its usage to the other atomic instructions.

llvm-svn: 247428

9 years ago[PR24785] Appease MSC18 to tweak optimizations.
NAKAMURA Takumi [Fri, 11 Sep 2015 17:08:02 +0000 (17:08 +0000)]
[PR24785] Appease MSC18 to tweak optimizations.

This brings a warning.

  cl : Command line warning D9035: option 'Og-' has been deprecated and will be removed in a future release

We should resolve PR11951 to remove this tweak.

llvm-svn: 247427

9 years ago[Static Analyzer] Lambda support.
Gabor Horvath [Fri, 11 Sep 2015 16:55:01 +0000 (16:55 +0000)]
[Static Analyzer] Lambda support.

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

llvm-svn: 247426

9 years ago[libFuzzer] mention more trophies
Kostya Serebryany [Fri, 11 Sep 2015 16:34:14 +0000 (16:34 +0000)]
[libFuzzer] mention more trophies

llvm-svn: 247425

9 years ago[SEH] Port __try / __leave test to new IR
Reid Kleckner [Fri, 11 Sep 2015 16:29:27 +0000 (16:29 +0000)]
[SEH] Port __try / __leave test to new IR

It turns out that the IR we already generate for __leave is fine, so no
code changes were needed.

llvm-svn: 247424