platform/upstream/llvm.git
9 years ago[SeparateConstOffsetFromGEP] set PreservesCFG flag
Jingyue Wu [Sun, 1 Feb 2015 02:33:02 +0000 (02:33 +0000)]
[SeparateConstOffsetFromGEP] set PreservesCFG flag

SeparateConstOffsetFromGEP does not change the shape of the control flow graph.

llvm-svn: 227704

9 years ago[NVPTX] Emit .pragma "nounroll" for loops marked with nounroll
Jingyue Wu [Sun, 1 Feb 2015 02:27:45 +0000 (02:27 +0000)]
[NVPTX] Emit .pragma "nounroll" for loops marked with nounroll

Summary:
CUDA driver can unroll loops when jit-compiling PTX. To prevent CUDA
driver from unrolling a loop marked with llvm.loop.unroll.disable is not
unrolled by CUDA driver, we need to emit .pragma "nounroll" at the
header of that loop.

This patch also extracts getting unroll metadata from loop ID metadata
into a shared helper function.

Test Plan: test/CodeGen/NVPTX/nounroll.ll

Reviewers: eliben, meheff, jholewinski

Reviewed By: jholewinski

Subscribers: jholewinski, llvm-commits

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

llvm-svn: 227703

9 years agoFix PR22393. When recursively replacing an aggregate with a smaller
Adrian Prantl [Sun, 1 Feb 2015 00:58:04 +0000 (00:58 +0000)]
Fix PR22393. When recursively replacing an aggregate with a smaller
aggregate or scalar, the debug info needs to refer to the absolute offset
(relative to the entire variable) instead of storing the offset inside
the smaller aggregate.

llvm-svn: 227702

9 years agoAdd missing tags.
Adrian Prantl [Sun, 1 Feb 2015 00:57:31 +0000 (00:57 +0000)]
Add missing tags.

llvm-svn: 227701

9 years ago[CMake] LLVMLTO requires Intrinsics.gen since r227685 introduced llvm/Analysis/Target...
NAKAMURA Takumi [Sun, 1 Feb 2015 00:55:43 +0000 (00:55 +0000)]
[CMake] LLVMLTO requires Intrinsics.gen since r227685 introduced llvm/Analysis/TargetTransformInfo.h.

llvm-svn: 227700

9 years ago[CMake] LLVMTarget requires Intrinsics.gen since r227669 introduced llvm/Analysis...
NAKAMURA Takumi [Sun, 1 Feb 2015 00:55:32 +0000 (00:55 +0000)]
[CMake] LLVMTarget requires Intrinsics.gen since r227669 introduced llvm/Analysis/TargetTransformInfo.h.

llvm-svn: 227699

9 years ago[PM] Remove a bunch of stale TTI creation method declarations. I nuked
Chandler Carruth [Sun, 1 Feb 2015 00:22:15 +0000 (00:22 +0000)]
[PM] Remove a bunch of stale TTI creation method declarations. I nuked
their definitions, but forgot to clean up all the declarations which are
in different files.

llvm-svn: 227698

9 years agoFix typo
Matt Arsenault [Sat, 31 Jan 2015 23:37:27 +0000 (23:37 +0000)]
Fix typo

llvm-svn: 227697

9 years agoFix a typo
Filipe Cabecinhas [Sat, 31 Jan 2015 23:25:54 +0000 (23:25 +0000)]
Fix a typo

We're not that much into metals.

llvm-svn: 227696

9 years agoTweak behavior due to -fexceptions, in C++ mode, imply -fcxx-exceptions
Filipe Cabecinhas [Sat, 31 Jan 2015 23:05:51 +0000 (23:05 +0000)]
Tweak behavior due to -fexceptions, in C++ mode, imply -fcxx-exceptions

Added test

llvm-svn: 227695

9 years agoImplement semantic action for SEARCH_DIR linker script command
Rafael Auler [Sat, 31 Jan 2015 22:42:19 +0000 (22:42 +0000)]
Implement semantic action for SEARCH_DIR linker script command

This is needed, among others by the FreeBSD kernel linker script.

Patch by Davide Italiano!

Reviewers: ruiu, rafaelauler

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

llvm-svn: 227694

9 years agoR600/SI: Only select cvt_flr/cvt_rpi with no NaNs.
Matt Arsenault [Sat, 31 Jan 2015 21:28:13 +0000 (21:28 +0000)]
R600/SI: Only select cvt_flr/cvt_rpi with no NaNs.

These have different behavior from cvt_i32_f32 on NaN.

llvm-svn: 227693

9 years agoX86: silence a GCC warning
Saleem Abdulrasool [Sat, 31 Jan 2015 17:56:11 +0000 (17:56 +0000)]
X86: silence a GCC warning

GCC 4.9 gives the following warning:
  warning: enumeral and non-enumeral type in conditional expression
Cast the enumeral value to an integer within the ternary operation.  NFC.

llvm-svn: 227692

9 years agoRemove unused variable.
Diego Novillo [Sat, 31 Jan 2015 17:17:33 +0000 (17:17 +0000)]
Remove unused variable.

Summary:
This variable is only used inside an assert. This breaks builds with
asserts disabled.

OK for trunk?

Subscribers: llvm-commits

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

llvm-svn: 227691

9 years agoRemoved a spurious semicolon; NFC
Aaron Ballman [Sat, 31 Jan 2015 15:18:47 +0000 (15:18 +0000)]
Removed a spurious semicolon; NFC

llvm-svn: 227690

9 years agoRemoved SSE lane blend findCommutedOpIndices overrides. NFCI.
Simon Pilgrim [Sat, 31 Jan 2015 15:16:30 +0000 (15:16 +0000)]
Removed SSE lane blend findCommutedOpIndices overrides. NFCI.

The default op indices frmo TargetInstrInfo::findCommutedOpIndices are being commuted so we don't need to do this.

llvm-svn: 227689

9 years ago[X86][SSE] Shuffle mask decode support for zero extend, scalar float/double moves...
Simon Pilgrim [Sat, 31 Jan 2015 14:09:36 +0000 (14:09 +0000)]
[X86][SSE] Shuffle mask decode support for zero extend, scalar float/double moves and integer load instructions

This patch adds shuffle mask decodes for integer zero extends (pmovzx** and movq xmm,xmm) and scalar float/double loads/moves (movss/movsd).

Also adds shuffle mask decodes for integer loads (movd/movq).

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

llvm-svn: 227688

9 years ago[PM] Update Clang for the new LLVM API in r227685 for managing the
Chandler Carruth [Sat, 31 Jan 2015 11:18:46 +0000 (11:18 +0000)]
[PM] Update Clang for the new LLVM API in r227685 for managing the
TargetTransformInfo, and unify the code in a single place.

llvm-svn: 227686

9 years ago[PM] Switch the TargetMachine interface from accepting a pass manager
Chandler Carruth [Sat, 31 Jan 2015 11:17:59 +0000 (11:17 +0000)]
[PM] Switch the TargetMachine interface from accepting a pass manager
base which it adds a single analysis pass to, to instead return the type
erased TargetTransformInfo object constructed for that TargetMachine.

This removes all of the pass variants for TTI. There is now a single TTI
*pass* in the Analysis layer. All of the Analysis <-> Target
communication is through the TTI's type erased interface itself. While
the diff is large here, it is nothing more that code motion to make
types available in a header file for use in a different source file
within each target.

I've tried to keep all the doxygen comments and file boilerplate in line
with this move, but let me know if I missed anything.

With this in place, the next step to making TTI work with the new pass
manager is to introduce a really simple new-style analysis that produces
a TTI object via a callback into this routine on the target machine.
Once we have that, we'll have the building blocks necessary to accept
a function argument as well.

llvm-svn: 227685

9 years ago[asan][mips] Fix MIPS64 Asan mapping
Kumar Sukhani [Sat, 31 Jan 2015 10:43:18 +0000 (10:43 +0000)]
[asan][mips] Fix MIPS64 Asan mapping

llvm-svn: 227684

9 years ago[asan][mips] Fix MIPS64 Asan mapping
Kumar Sukhani [Sat, 31 Jan 2015 09:13:58 +0000 (09:13 +0000)]
[asan][mips] Fix MIPS64 Asan mapping

llvm-svn: 227683

9 years agoReplace another std::set in the core of CodeGenRegister, this time with sorted arrays.
Owen Anderson [Sat, 31 Jan 2015 09:13:36 +0000 (09:13 +0000)]
Replace another std::set in the core of CodeGenRegister, this time with sorted arrays.

The hot path through this region of code does lots of batch inserts into sets. By storing them as sorted arrays, we can defer the sorting to the end of the batch, which is dramatically more efficient. This reduces tblgen runtime by 25% on my worst-case target.

llvm-svn: 227682

9 years ago[X86] Make AVX512 integer comparison builtins use unsigned types for the masks.
Craig Topper [Sat, 31 Jan 2015 08:58:36 +0000 (08:58 +0000)]
[X86] Make AVX512 integer comparison builtins use unsigned types for the masks.

llvm-svn: 227681

9 years ago[X86] AVX512 scatter/gather builtins as taking an ICE for scale instead of just a...
Craig Topper [Sat, 31 Jan 2015 08:58:30 +0000 (08:58 +0000)]
[X86] AVX512 scatter/gather builtins as taking an ICE for scale instead of just a const int.

llvm-svn: 227680

9 years ago[X86] Add immediate range checking for a couple XOP builtins.
Craig Topper [Sat, 31 Jan 2015 08:57:52 +0000 (08:57 +0000)]
[X86] Add immediate range checking for a couple XOP builtins.

llvm-svn: 227679

9 years agoChange more of the guts of CodeGenRegister's RegUnit tracking to be based on bit...
Owen Anderson [Sat, 31 Jan 2015 07:49:41 +0000 (07:49 +0000)]
Change more of the guts of CodeGenRegister's RegUnit tracking to be based on bit vectors.

This is a continuation of my prior work to move some of the inner workings for CodeGenRegister to use bit vectors when computing about register units. This is highly beneficial to TableGen runtime on targets with large, dense register files. This patch represents a ~40% runtime reduction over and above my earlier improvement on a stress test of this case.

llvm-svn: 227678

9 years agoclang-format: Fix incorrect handling of leading whitespace.
Daniel Jasper [Sat, 31 Jan 2015 07:05:46 +0000 (07:05 +0000)]
clang-format: Fix incorrect handling of leading whitespace.

Added an assertion that triggered in an existing test case (without
observable differences) and fixed the code.

llvm-svn: 227677

9 years ago[x86] Remove tab characters from avxintrin.h. NFC.
Craig Topper [Sat, 31 Jan 2015 06:33:59 +0000 (06:33 +0000)]
[x86] Remove tab characters from avxintrin.h. NFC.

llvm-svn: 227676

9 years ago[X86] Make order consistent between 'const' and 'int' in one of the intrinsic header...
Craig Topper [Sat, 31 Jan 2015 06:31:30 +0000 (06:31 +0000)]
[X86] Make order consistent between 'const' and 'int' in one of the intrinsic header files. NFC

llvm-svn: 227675

9 years ago[X86] Add range checking to the immediate arguments of many of the SSE/AVX builtins.
Craig Topper [Sat, 31 Jan 2015 06:31:23 +0000 (06:31 +0000)]
[X86] Add range checking to the immediate arguments of many of the SSE/AVX builtins.

llvm-svn: 227674

9 years agollvm-readobj: add a test case for ARM_MOV32(T) base relocation
Saleem Abdulrasool [Sat, 31 Jan 2015 04:46:50 +0000 (04:46 +0000)]
llvm-readobj: add a test case for ARM_MOV32(T) base relocation

Add a trivial binary (int main() { return 0; }) built for Windows on ARM to
ensure that we can correctly identify ARM_MOV32(T) base relocations.  Addresses
post-commit review comments.

llvm-svn: 227673

9 years agoMake atom collections private.
Rui Ueyama [Sat, 31 Jan 2015 04:19:57 +0000 (04:19 +0000)]
Make atom collections private.

These fields were made protected in r193585. The aim of that change is to
expose these fields to SimpleFileWrapper. Because SimpleFileWrapper class
was removed in r227549, we can make them private.

llvm-svn: 227672

9 years agoRemove dead code.
Rui Ueyama [Sat, 31 Jan 2015 04:19:55 +0000 (04:19 +0000)]
Remove dead code.

llvm-svn: 227671

9 years agoARM: make a table more readable (NFC)
Saleem Abdulrasool [Sat, 31 Jan 2015 04:12:06 +0000 (04:12 +0000)]
ARM: make a table more readable (NFC)

This adds some comments and splits the flag calculation on type boundaries to
make the table more readable.  Addresses some post-commit review comments to SVN
r227603.  NFC.

llvm-svn: 227670

9 years ago[PM] Change the core design of the TTI analysis to use a polymorphic
Chandler Carruth [Sat, 31 Jan 2015 03:43:40 +0000 (03:43 +0000)]
[PM] Change the core design of the TTI analysis to use a polymorphic
type erased interface and a single analysis pass rather than an
extremely complex analysis group.

The end result is that the TTI analysis can contain a type erased
implementation that supports the polymorphic TTI interface. We can build
one from a target-specific implementation or from a dummy one in the IR.

I've also factored all of the code into "mix-in"-able base classes,
including CRTP base classes to facilitate calling back up to the most
specialized form when delegating horizontally across the surface. These
aren't as clean as I would like and I'm planning to work on cleaning
some of this up, but I wanted to start by putting into the right form.

There are a number of reasons for this change, and this particular
design. The first and foremost reason is that an analysis group is
complete overkill, and the chaining delegation strategy was so opaque,
confusing, and high overhead that TTI was suffering greatly for it.
Several of the TTI functions had failed to be implemented in all places
because of the chaining-based delegation making there be no checking of
this. A few other functions were implemented with incorrect delegation.
The message to me was very clear working on this -- the delegation and
analysis group structure was too confusing to be useful here.

The other reason of course is that this is *much* more natural fit for
the new pass manager. This will lay the ground work for a type-erased
per-function info object that can look up the correct subtarget and even
cache it.

Yet another benefit is that this will significantly simplify the
interaction of the pass managers and the TargetMachine. See the future
work below.

The downside of this change is that it is very, very verbose. I'm going
to work to improve that, but it is somewhat an implementation necessity
in C++ to do type erasure. =/ I discussed this design really extensively
with Eric and Hal prior to going down this path, and afterward showed
them the result. No one was really thrilled with it, but there doesn't
seem to be a substantially better alternative. Using a base class and
virtual method dispatch would make the code much shorter, but as
discussed in the update to the programmer's manual and elsewhere,
a polymorphic interface feels like the more principled approach even if
this is perhaps the least compelling example of it. ;]

Ultimately, there is still a lot more to be done here, but this was the
huge chunk that I couldn't really split things out of because this was
the interface change to TTI. I've tried to minimize all the other parts
of this. The follow up work should include at least:

1) Improving the TargetMachine interface by having it directly return
   a TTI object. Because we have a non-pass object with value semantics
   and an internal type erasure mechanism, we can narrow the interface
   of the TargetMachine to *just* do what we need: build and return
   a TTI object that we can then insert into the pass pipeline.
2) Make the TTI object be fully specialized for a particular function.
   This will include splitting off a minimal form of it which is
   sufficient for the inliner and the old pass manager.
3) Add a new pass manager analysis which produces TTI objects from the
   target machine for each function. This may actually be done as part
   of #2 in order to use the new analysis to implement #2.
4) Work on narrowing the API between TTI and the targets so that it is
   easier to understand and less verbose to type erase.
5) Work on narrowing the API between TTI and its clients so that it is
   easier to understand and less verbose to forward.
6) Try to improve the CRTP-based delegation. I feel like this code is
   just a bit messy and exacerbating the complexity of implementing
   the TTI in each target.

Many thanks to Eric and Hal for their help here. I ended up blocked on
this somewhat more abruptly than I expected, and so I appreciate getting
it sorted out very quickly.

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

llvm-svn: 227669

9 years ago[modules] When we try to complete the redeclaration chain for a class template
Richard Smith [Sat, 31 Jan 2015 03:04:55 +0000 (03:04 +0000)]
[modules] When we try to complete the redeclaration chain for a class template
specialization, pull in any lazy specializations of the class template.

llvm-svn: 227668

9 years agoARM: support stack probe size on Windows on ARM
Saleem Abdulrasool [Sat, 31 Jan 2015 02:26:37 +0000 (02:26 +0000)]
ARM: support stack probe size on Windows on ARM

Now that -mstack-probe-size is piped through to the backend via the function
attribute as on Windows x86, honour the value to permit handling of non-default
values for stack probes.  This is needed /Gs with the clang-cl driver or
-mstack-probe-size with the clang driver when targeting Windows on ARM.

llvm-svn: 227667

9 years agoELF: Don't use LayoutPass.
Rui Ueyama [Sat, 31 Jan 2015 02:05:01 +0000 (02:05 +0000)]
ELF: Don't use LayoutPass.

Previously we applied the LayoutPass to order atoms and then
apply elf::ArrayOrderPass to sort them again. The first pass is
basically supposed to sort atoms in the normal fashion (which
is to sort symbols in the same order as the input files).
The second pass sorts atoms in {init,fini}_array.<priority> by
priority.

The problem is that the LayoutPass is overkill. It analyzes
references between atoms to make a decision how to sort them.
It's slow, hard to understand, and above all, it doesn't seem
that we need its feature for ELF in the first place.

This patch remove the LayoutPass from ELF pass list. Now all
reordering is done in elf::OrderPass. That pass sorts atoms by
{init,fini}_array, and if they are not in the special section,
they are ordered as the same order as they appear in the command
line. The new code is far easier to understand, faster, and
still able to create valid executables.

Unlike the previous layout pass, elf::OrderPass doesn't count
any attributes of an atom (e.g. permissions) except its
position. It's OK because the writer takes care of them if we
have to.

This patch changes the order of final output, although that's
benign. Tests are updated.

http://reviews.llvm.org/D7278

llvm-svn: 227666

9 years agoRevert "Remove unused function."
Alexey Samsonov [Sat, 31 Jan 2015 01:27:18 +0000 (01:27 +0000)]
Revert "Remove unused function."

This reverts commit r227633. SetEnv was prematurely deleted.

llvm-svn: 227665

9 years ago[fuzzer] add flags to run fuzzer in multiple parallel processes
Kostya Serebryany [Sat, 31 Jan 2015 01:14:40 +0000 (01:14 +0000)]
[fuzzer] add flags to run fuzzer in multiple parallel processes

llvm-svn: 227664

9 years agoDebugInfo: Fix line table for comparisons harder/better for the sake of C (& the...
David Blaikie [Sat, 31 Jan 2015 01:10:11 +0000 (01:10 +0000)]
DebugInfo: Fix line table for comparisons harder/better for the sake of C (& the GDB buildbot)

llvm-svn: 227663

9 years agoRename test file to be more accurate (& free up the file name for a more appropriate...
David Blaikie [Sat, 31 Jan 2015 01:10:09 +0000 (01:10 +0000)]
Rename test file to be more accurate (& free up the file name for a more appropriate test)

llvm-svn: 227662

9 years agoAdd the -section option to llvm-objdump used with -macho that takes the argument
Kevin Enderby [Sat, 31 Jan 2015 00:37:11 +0000 (00:37 +0000)]
Add the -section option to llvm-objdump used with -macho that takes the argument
segname,sectname to specify a Mach-O section to print.  The printing is based on
the section type or section attributes.

The printing of the module initialization and termination section types is printed
with this change.  Printing of other section types will be added next.

llvm-svn: 227649

9 years agoRemove the last vestiges of resetOperationActions.
Eric Christopher [Sat, 31 Jan 2015 00:21:17 +0000 (00:21 +0000)]
Remove the last vestiges of resetOperationActions.

llvm-svn: 227648

9 years agoReuse a bunch of cached subtargets and remove getSubtarget calls
Eric Christopher [Sat, 31 Jan 2015 00:06:45 +0000 (00:06 +0000)]
Reuse a bunch of cached subtargets and remove getSubtarget calls
without a Function argument.

llvm-svn: 227647

9 years agoAdd PPC test for r227481, but XFAIL because this is actually more work than it appear...
David Blaikie [Fri, 30 Jan 2015 23:52:19 +0000 (23:52 +0000)]
Add PPC test for r227481, but XFAIL because this is actually more work than it appeared to be.

Same sort of bug as on ARM where the cmp+branch are lowered to br_cc
(choosing the branch's debugloc for the br_cc's debugloc) then expanded
out to a cmp and a br, but both using the debug loc of the br_cc, thus
losing fidelity.

llvm-svn: 227645

9 years agoReuse a bunch of cached subtargets and remove getSubtarget calls
Eric Christopher [Fri, 30 Jan 2015 23:46:43 +0000 (23:46 +0000)]
Reuse a bunch of cached subtargets and remove getSubtarget calls
without a Function argument.

llvm-svn: 227644

9 years agoAvoid using the cast and use the templated accessor function.
Eric Christopher [Fri, 30 Jan 2015 23:46:40 +0000 (23:46 +0000)]
Avoid using the cast and use the templated accessor function.

llvm-svn: 227643

9 years ago[AArch64] Add a few more DUP testcases. NFC.
Ahmed Bougacha [Fri, 30 Jan 2015 23:41:15 +0000 (23:41 +0000)]
[AArch64] Add a few more DUP testcases.  NFC.

Also, don't lie about testing index 0.

llvm-svn: 227642

9 years agoCodeGen: create a WindowsARMTargetCodeGenInfo
Saleem Abdulrasool [Fri, 30 Jan 2015 23:29:19 +0000 (23:29 +0000)]
CodeGen: create a WindowsARMTargetCodeGenInfo

Create a new TargetCodeGenInfo for Windows on ARM to permit annotating the
functions with stack-probe-size (for /Gs and -mstack-probe-support) for
generating the stack probe necessary for Windows targets.  This will be used by
the backend when lowering the frame to generate the stack probe appropriately.

llvm-svn: 227641

9 years agoFactor out statepoint verification into separate function. (NFC)
Philip Reames [Fri, 30 Jan 2015 23:28:05 +0000 (23:28 +0000)]
Factor out statepoint verification into separate function. (NFC)

Patch by: Igor Laevsky

"Simple refactoring. This is done in preparation to support verification of invokable statepoints."

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

llvm-svn: 227640

9 years ago[fuzzer] Add a gtest-style test
Kostya Serebryany [Fri, 30 Jan 2015 23:26:57 +0000 (23:26 +0000)]
[fuzzer] Add a gtest-style test

Summary: Add one gtest-style test.

Test Plan: run on bot

Reviewers: samsonov

Reviewed By: samsonov

Subscribers: llvm-commits

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

llvm-svn: 227639

9 years agoReuse a bunch of cached subtargets and remove getSubtarget calls
Eric Christopher [Fri, 30 Jan 2015 23:24:40 +0000 (23:24 +0000)]
Reuse a bunch of cached subtargets and remove getSubtarget calls
without a Function argument.

llvm-svn: 227638

9 years agoFix statepoint verifier tests to actually test verifier.
Philip Reames [Fri, 30 Jan 2015 23:18:42 +0000 (23:18 +0000)]
Fix statepoint verifier tests to actually test verifier.

Patch by: Igor Laevsky

"Statepoint verifier tests were using wrong names for the statepoint and gc.relocate intrinsics. This change renames them to use correct names and fixes all uncovered issues."

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

llvm-svn: 227636

9 years ago[AArch64] Robustize neon-scalar-copy.ll tests. NFC.
Ahmed Bougacha [Fri, 30 Jan 2015 23:13:57 +0000 (23:13 +0000)]
[AArch64] Robustize neon-scalar-copy.ll tests. NFC.

Some of those didn't even have run lines: they were removed
inadvertently during the Great Merge of 2014.

They used to check for DUPs, but now we go through W-regs?
Filed PR22418 for that potential regression.

For now, just make the tests explicit, so we now where we stand.

llvm-svn: 227635

9 years ago[TSan] Fix Go build.
Alexey Samsonov [Fri, 30 Jan 2015 23:04:57 +0000 (23:04 +0000)]
[TSan] Fix Go build.

llvm-svn: 227634

9 years agoRemove unused function.
Alexey Samsonov [Fri, 30 Jan 2015 23:04:54 +0000 (23:04 +0000)]
Remove unused function.

llvm-svn: 227633

9 years agoAdd ARM test for r227489, but XFAIL because this is actually more work than it appear...
David Blaikie [Fri, 30 Jan 2015 23:04:39 +0000 (23:04 +0000)]
Add ARM test for r227489, but XFAIL because this is actually more work than it appeared to be.

Also revert r227489 since it didn't actually fix the thing I thought I
was fixing (since the test case was targeting the wrong architecture
initially). The change might be correct & demonstrated by other test
cases, but it's not a priority for me to find those test cases right
now.

Filed PR22417 for the failure.

llvm-svn: 227632

9 years agoGNU LD option export-dynamic can accept single dash flag.
Davide Italiano [Fri, 30 Jan 2015 22:56:22 +0000 (22:56 +0000)]
GNU LD option export-dynamic can accept single dash flag.

Differential Revision: D7044
Reviewed by: ruiu

llvm-svn: 227631

9 years agoAdd myself to CREDITS.TXT.
Dan Albert [Fri, 30 Jan 2015 22:40:31 +0000 (22:40 +0000)]
Add myself to CREDITS.TXT.

llvm-svn: 227630

9 years agoUpdate web page to direct patches to Phabricator.
Dan Albert [Fri, 30 Jan 2015 22:33:41 +0000 (22:33 +0000)]
Update web page to direct patches to Phabricator.

llvm-svn: 227629

9 years ago[PBQP] Fix transposed worst row/column check in handleAdd/RemoveNode in the PBQP
Lang Hames [Fri, 30 Jan 2015 22:28:49 +0000 (22:28 +0000)]
[PBQP] Fix transposed worst row/column check in handleAdd/RemoveNode in the PBQP
allocator.

Patch by Jonas Paulsson. Thanks Jonas!

llvm-svn: 227628

9 years agoSEH: Don't jump to an unreachable continuation block
Reid Kleckner [Fri, 30 Jan 2015 22:16:45 +0000 (22:16 +0000)]
SEH: Don't jump to an unreachable continuation block

If both the __try and __except blocks do not return, we want to delete
the continuation block as unreachable instead.

llvm-svn: 227627

9 years agoNFC. Making printOptionValues an API on the parser class.
Chris Bieneman [Fri, 30 Jan 2015 22:16:01 +0000 (22:16 +0000)]
NFC. Making printOptionValues an API on the parser class.

llvm-svn: 227626

9 years agoFix memory leak in WinEHPrepare introduced in r227405.
Alexey Samsonov [Fri, 30 Jan 2015 22:07:05 +0000 (22:07 +0000)]
Fix memory leak in WinEHPrepare introduced in r227405.

This leak was detected by ASan bootstrap of LLVM.

llvm-svn: 227625

9 years agoRemove unused function.
Eric Christopher [Fri, 30 Jan 2015 22:02:36 +0000 (22:02 +0000)]
Remove unused function.

llvm-svn: 227624

9 years agoRemove extraneous forward declaration.
Eric Christopher [Fri, 30 Jan 2015 22:02:34 +0000 (22:02 +0000)]
Remove extraneous forward declaration.

llvm-svn: 227623

9 years agoUse the cached subtargets and remove calls to getSubtarget/getSubtargetImpl
Eric Christopher [Fri, 30 Jan 2015 22:02:31 +0000 (22:02 +0000)]
Use the cached subtargets and remove calls to getSubtarget/getSubtargetImpl
without a Function argument.

llvm-svn: 227622

9 years agoAdd a similar templated cast for getSubtarget off of the MachineFunction
Eric Christopher [Fri, 30 Jan 2015 22:02:19 +0000 (22:02 +0000)]
Add a similar templated cast for getSubtarget off of the MachineFunction
to save typing a lot of static_casts.

llvm-svn: 227621

9 years agoAdd one more vim swap file pattern
Michael Liao [Fri, 30 Jan 2015 21:59:28 +0000 (21:59 +0000)]
Add one more vim swap file pattern

llvm-svn: 227620

9 years ago[Hexagon] Adding vector shift instructions and tests.
Colin LeMahieu [Fri, 30 Jan 2015 21:58:46 +0000 (21:58 +0000)]
[Hexagon] Adding vector shift instructions and tests.

llvm-svn: 227619

9 years agoR600/SI: Handle SI_SPILL_V96_RESTORE in SIRegisterInfo::eliminateFrameIndex()
Tom Stellard [Fri, 30 Jan 2015 21:51:51 +0000 (21:51 +0000)]
R600/SI: Handle SI_SPILL_V96_RESTORE in SIRegisterInfo::eliminateFrameIndex()

This fixes a crash in Unigine Heaven.

llvm-svn: 227618

9 years agoWindows: Fix _CPPUNWIND definition to follow -fcxx-exceptions
Reid Kleckner [Fri, 30 Jan 2015 21:42:55 +0000 (21:42 +0000)]
Windows: Fix _CPPUNWIND definition to follow -fcxx-exceptions

This is consistent with how we interpret the MSVC /EH flag, which
controls -fcxx-exceptions.

llvm-svn: 227616

9 years ago[X86] Cleanup tabs in test vector-zext.ll. NFC.
Ahmed Bougacha [Fri, 30 Jan 2015 21:41:28 +0000 (21:41 +0000)]
[X86] Cleanup tabs in test vector-zext.ll. NFC.

Some tests have tabs, some don't.
In vector-[sz]ext.ll, space wins (well duh!).

llvm-svn: 227615

9 years agoSilence "not all paths return a value" warning in MSVC
Reid Kleckner [Fri, 30 Jan 2015 21:30:57 +0000 (21:30 +0000)]
Silence "not all paths return a value" warning in MSVC

llvm-svn: 227614

9 years ago[Hexagon] Adding vector predicate instructions.
Colin LeMahieu [Fri, 30 Jan 2015 21:24:06 +0000 (21:24 +0000)]
[Hexagon] Adding vector predicate instructions.

llvm-svn: 227613

9 years ago[Hexagon] Adding vector permutation instructions and tests.
Colin LeMahieu [Fri, 30 Jan 2015 21:14:00 +0000 (21:14 +0000)]
[Hexagon] Adding vector permutation instructions and tests.

llvm-svn: 227612

9 years agoWin64: Put a REX_W prefix on all TAILJMP* instructions
Reid Kleckner [Fri, 30 Jan 2015 21:03:31 +0000 (21:03 +0000)]
Win64: Put a REX_W prefix on all TAILJMP* instructions

MSDN's x64 software conventions page says that this is one of the fixed
list of legal epilogues:
https://msdn.microsoft.com/en-us/library/tawsa7cb.aspx

Presumably this is how the unwinder distinguishes epilogue jumps from
in-function control flow.

Also normalize the way we place "## TAILCALL" comments on such jumps.

llvm-svn: 227611

9 years agoELF: Fix a bug in -l.
Rui Ueyama [Fri, 30 Jan 2015 21:03:19 +0000 (21:03 +0000)]
ELF: Fix a bug in -l.

If a linker script is given with -l, LLD failed to read the file.
The bug was introduced in 227341.

llvm-svn: 227610

9 years ago[Hexagon] Adding vector multiplies. Cleaning up tests.
Colin LeMahieu [Fri, 30 Jan 2015 20:56:54 +0000 (20:56 +0000)]
[Hexagon] Adding vector multiplies.  Cleaning up tests.

llvm-svn: 227609

9 years agoRemove the preverify pass from the documentation now that it has been removed
Yunzhong Gao [Fri, 30 Jan 2015 20:51:09 +0000 (20:51 +0000)]
Remove the preverify pass from the documentation now that it has been removed
since r199487.

llvm-svn: 227608

9 years ago[Hexagon] Adding XTYPE/COMPLEX instructions and cleaning up tests.
Colin LeMahieu [Fri, 30 Jan 2015 20:08:37 +0000 (20:08 +0000)]
[Hexagon] Adding XTYPE/COMPLEX instructions and cleaning up tests.

llvm-svn: 227607

9 years ago[AArch64] Make AArch64A57FPLoadBalancing output stable.
Chad Rosier [Fri, 30 Jan 2015 19:55:40 +0000 (19:55 +0000)]
[AArch64] Make AArch64A57FPLoadBalancing output stable.

Add tie breaker to colorChainSet() sort so that processing order doesn't
depend on std::set order, which depends on pointer order, which is
unstable from run to run.

No test case as this is nearly impossible to reproduce.

Phabricator Review: http://reviews.llvm.org/D7265
Patch by Geoff Berry <gberry@codeaurora.org>!

llvm-svn: 227606

9 years agoRemove a redundant dyn_cast.
Adrian Prantl [Fri, 30 Jan 2015 19:42:59 +0000 (19:42 +0000)]
Remove a redundant dyn_cast.

llvm-svn: 227605

9 years agoInliner: Use replaceDbgDeclareForAlloca() instead of splicing the
Adrian Prantl [Fri, 30 Jan 2015 19:37:48 +0000 (19:37 +0000)]
Inliner: Use replaceDbgDeclareForAlloca() instead of splicing the
instruction and generalize it to optionally dereference the variable.
Follow-up to r227544.

llvm-svn: 227604

9 years agoARM: further correct .fpu directive handling
Saleem Abdulrasool [Fri, 30 Jan 2015 19:35:18 +0000 (19:35 +0000)]
ARM: further correct .fpu directive handling

If the original FPU specification involved a restricted VFP unit (d16), ensure
that we reset the functionality when we encounter a new FPU type.  In
particular, if the user specified vfpv3-d16, but switched to a VFPv3 (which has
32 double precision registers), we would fail to reset the D16 feature, and
treat it as being equivalent to vfpv3-d16.

llvm-svn: 227603

9 years agoRevert "Add missing test from r227488"
Renato Golin [Fri, 30 Jan 2015 19:25:23 +0000 (19:25 +0000)]
Revert "Add missing test from r227488"

This reverts commit r227489, since this is the real one failing the bots.

llvm-svn: 227602

9 years agoRevert "Revert "Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respec...
Renato Golin [Fri, 30 Jan 2015 19:25:20 +0000 (19:25 +0000)]
Revert "Revert "Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps.""

This reverts commit r227600, since that reverted the wrong comit. Sorry.

llvm-svn: 227601

9 years agoRevert "Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the...
Renato Golin [Fri, 30 Jan 2015 19:18:58 +0000 (19:18 +0000)]
Revert "Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps."

This reverts commit r227488 as it was failing ARM bots.

llvm-svn: 227600

9 years agoFixup gold-plugin after r227576.
Alexey Samsonov [Fri, 30 Jan 2015 19:14:04 +0000 (19:14 +0000)]
Fixup gold-plugin after r227576.

llvm-svn: 227599

9 years ago[Hexagon] Adding XTYPE/ALU vector instructions. Organizing test files.
Colin LeMahieu [Fri, 30 Jan 2015 19:13:26 +0000 (19:13 +0000)]
[Hexagon] Adding XTYPE/ALU vector instructions.  Organizing test files.

llvm-svn: 227598

9 years agoARM: improve caret diagnostics for invalid FPU name
Saleem Abdulrasool [Fri, 30 Jan 2015 18:42:10 +0000 (18:42 +0000)]
ARM: improve caret diagnostics for invalid FPU name

In the case of an invalid FPU name, place the caret at the name rather than FPU
directive.

llvm-svn: 227595

9 years agoFix lli after the DebugInfo move.
Zachary Turner [Fri, 30 Jan 2015 18:42:03 +0000 (18:42 +0000)]
Fix lli after the DebugInfo move.

llvm-svn: 227594

9 years agoSpecial-case the PS4 SDK for a clang test
Filipe Cabecinhas [Fri, 30 Jan 2015 18:25:59 +0000 (18:25 +0000)]
Special-case the PS4 SDK for a clang test

Original patch by Gao Yunzhong!

llvm-svn: 227593

9 years agoShuffle tests around to more appropriate files
Filipe Cabecinhas [Fri, 30 Jan 2015 18:25:48 +0000 (18:25 +0000)]
Shuffle tests around to more appropriate files

llvm-svn: 227592

9 years agoFix regression in r227409 where we were passing -fsyntax-only
Eric Christopher [Fri, 30 Jan 2015 18:22:23 +0000 (18:22 +0000)]
Fix regression in r227409 where we were passing -fsyntax-only
in all cases.

Patch by Artem Belevich.

llvm-svn: 227591

9 years agoWrap debug output with DEBUG().
Rui Ueyama [Fri, 30 Jan 2015 18:20:44 +0000 (18:20 +0000)]
Wrap debug output with DEBUG().

llvm-svn: 227590

9 years agoCheck bit widths before trying to get a type.
Filipe Cabecinhas [Fri, 30 Jan 2015 18:13:50 +0000 (18:13 +0000)]
Check bit widths before trying to get a type.

Added a test case for it.
Also added run lines for the test case in r227566.

Bugs found with afl-fuzz

llvm-svn: 227589

9 years ago[Hexagon] Adding a number of vector load variants and organizing tests.
Colin LeMahieu [Fri, 30 Jan 2015 18:09:44 +0000 (18:09 +0000)]
[Hexagon] Adding a number of vector load variants and organizing tests.

llvm-svn: 227588

9 years agoReally really don't build llvm-pdbdump on MSVC < 2013.
Zachary Turner [Fri, 30 Jan 2015 18:08:05 +0000 (18:08 +0000)]
Really really don't build llvm-pdbdump on MSVC < 2013.

I thought it was enough to just not add the tool subdirectory,
but apparently I need to explicitly mark it ignore.

llvm-svn: 227587