]> granicus.if.org Git - llvm/log
llvm
8 years agoGlobalISel: improve error diagnostics when IRTranslation fails.
Tim Northover [Tue, 8 Nov 2016 01:12:17 +0000 (01:12 +0000)]
GlobalISel: improve error diagnostics when IRTranslation fails.

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

8 years agoGlobalISel: support selecting G_SELECT on AArch64.
Tim Northover [Tue, 8 Nov 2016 00:45:29 +0000 (00:45 +0000)]
GlobalISel: support selecting G_SELECT on AArch64.

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

8 years ago[CMake] Fix llvm_setup_rpath function
Mandeep Singh Grang [Tue, 8 Nov 2016 00:45:05 +0000 (00:45 +0000)]
[CMake] Fix llvm_setup_rpath function

Summary:
Set _install_rpath to CMAKE_INSTALL_RPATH if it is defined, so that eventually
INSTALL_RPATH is set to CMAKE_INSTALL_RPATH.
The "if(NOT DEFINED CMAKE_INSTALL_RPATH)" was missing a corresponding else
clause.
This also cleans up the fix made in r285908.

Patch by Azharuddin Mohammed

Reviewers: john.brawn, sgundapa, beanz

Subscribers: chapuni, mgorny, llvm-commits

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

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

8 years agoGlobalISel: constrain PHI registers on AArch64.
Tim Northover [Tue, 8 Nov 2016 00:34:06 +0000 (00:34 +0000)]
GlobalISel: constrain PHI registers on AArch64.

Self-referencing PHI nodes need their destination operands to be constrained
because nothing else is likely to do so. For now we just pick a register class
naively.

Patch mostly by Ahmed again.

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

8 years ago[LTO] Add error message on IO error in compileOptimizedToFile.
Eli Friedman [Mon, 7 Nov 2016 23:43:07 +0000 (23:43 +0000)]
[LTO] Add error message on IO error in compileOptimizedToFile.

(No testcase because it's difficult to force an error here.)

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

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

8 years ago[AArch64] Remove dead check prefixes after r286110. NFC.
Chad Rosier [Mon, 7 Nov 2016 23:13:59 +0000 (23:13 +0000)]
[AArch64] Remove dead check prefixes after r286110. NFC.

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

8 years ago[AArch64] Rename test to reflect changes after r286110. NFC.
Chad Rosier [Mon, 7 Nov 2016 23:13:55 +0000 (23:13 +0000)]
[AArch64] Rename test to reflect changes after r286110. NFC.

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

8 years ago[opt-viewer] Avoid division by zero
Adam Nemet [Mon, 7 Nov 2016 23:12:13 +0000 (23:12 +0000)]
[opt-viewer] Avoid division by zero

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

8 years ago[AMDGPU] Allow hoisting of comparisons out of a loop and eliminate condition copies
Stanislav Mekhanoshin [Mon, 7 Nov 2016 23:04:50 +0000 (23:04 +0000)]
[AMDGPU] Allow hoisting of comparisons out of a loop and eliminate condition copies

Codegen prepare sinks comparisons close to a user is we have only one register
for conditions. For AMDGPU we have many SGPRs capable to hold vector conditions.
Changed BE to report we have many condition registers. That way IR LICM pass
would hoist an invariant comparison out of a loop and codegen prepare will not
sink it.

With that done a condition is calculated in one block and used in another.
Current behavior is to store workitem's condition in a VGPR using v_cndmask
and then restore it with yet another v_cmp instruction from that v_cndmask's
result. To mitigate the issue a forward propagation of a v_cmp 64 bit result
to an user is implemented. Additional side effect of this is that we may
consume less VGPRs in a cost of more SGPRs in case if holding of multiple
conditions is needed, and that is a clear win in most cases.

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

8 years ago[OptDiag, opt-viewer] Save callee's location and display as link
Adam Nemet [Mon, 7 Nov 2016 22:41:13 +0000 (22:41 +0000)]
[OptDiag, opt-viewer] Save callee's location and display as link

With this we get a new field in the YAML record if the value being
streamed out has a debug location.  For examples, please see the changes
to the tests.

This is then used in opt-viewer to display a link for the callee
function in the inlining remarks.

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

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

8 years ago[AArch64] Transfer memory operands when lowering vector load/store intrinsics
Sanjin Sijaric [Mon, 7 Nov 2016 22:39:02 +0000 (22:39 +0000)]
[AArch64] Transfer memory operands when lowering vector load/store intrinsics

Summary:
Some vector loads and stores generated from AArch64 intrinsics alias each other
unnecessarily, preventing better scheduling.  We just need to transfer memory
operands during lowering.

Reviewers: mcrosier, t.p.northover, jmolloy

Subscribers: aemerson, rengolin, llvm-commits

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

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

8 years ago[docs] Add a pointer to ExitOnError to the discussion of handleErrors in the
Lang Hames [Mon, 7 Nov 2016 22:33:13 +0000 (22:33 +0000)]
[docs] Add a pointer to ExitOnError to the discussion of handleErrors in the
programmer's manual.

ExitOnError is often a better alternative to handleErrors for tool code. This
patch makes it easier to find the ExitOnError discussion when reading the
handleErrors section.

Thanks to Peter Collingbourne for the suggestion.

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

8 years ago[TRE] Remove dead code
Sanjoy Das [Mon, 7 Nov 2016 22:17:37 +0000 (22:17 +0000)]
[TRE] Remove dead code

Address review by Eli Friedman on rL286147.

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

8 years ago[doc] Add documentation about how to use a monorepo
Mehdi Amini [Mon, 7 Nov 2016 22:14:09 +0000 (22:14 +0000)]
[doc] Add documentation about how to use a monorepo

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

8 years agoAdd experimental support for unofficial monorepo-like directory layout
Mehdi Amini [Mon, 7 Nov 2016 22:13:38 +0000 (22:13 +0000)]
Add experimental support for unofficial monorepo-like directory layout

Summary:
This allows to have clang and llvm and the other subprojects
side-by-side instead of nested. This can be used with the monorepo or
multiple repos.

It will help having a single set of sources checked out but allows to
have a build directory with llvm and another one with llvm+clang.
Basically it abstracts LLVM_EXTERNAL_xxxx_SOURCE_DIR making it more
convenient by adopting a convention.

Reviewers: bogner, beanz, jlebar

Subscribers: mgorny, llvm-commits

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

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

8 years ago[WebAssembly] Emit a BasePointer when we have overly-aligned stack objects
Derek Schuff [Mon, 7 Nov 2016 22:00:48 +0000 (22:00 +0000)]
[WebAssembly] Emit a BasePointer when we have overly-aligned stack objects

Because we shift the stack pointer by an unknown amount, we need an
additional pointer. In the case where we have variable-size objects
as well, we can't reuse the frame pointer, thus three pointers.

Patch by Jacob Gravelle

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

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

8 years agoReset debug loc to OldInduction in InnerLoopVectorizer::createInductionVariable....
Dehao Chen [Mon, 7 Nov 2016 21:59:40 +0000 (21:59 +0000)]
Reset debug loc to OldInduction in InnerLoopVectorizer::createInductionVariable. (NFC)

This is to prevent SetInsertionPoint from setting debug loc to Latch->getTerminator().

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

8 years ago[lib/Object] Rename elf_hash to hashSysV.
Davide Italiano [Mon, 7 Nov 2016 21:56:04 +0000 (21:56 +0000)]
[lib/Object] Rename elf_hash to hashSysV.

This is more clear, as we have also GNU hash these days..

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

8 years ago[lit] Print negative exit codes on Windows in hex
Reid Kleckner [Mon, 7 Nov 2016 21:06:20 +0000 (21:06 +0000)]
[lit] Print negative exit codes on Windows in hex

Negative exit codes are usually exceptions. They're easier to recognize
in hex. Compare -1073741502 to 0xc0000142.

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

8 years agoAvoid tail recursion elimination across calls with operand bundles
Sanjoy Das [Mon, 7 Nov 2016 21:01:49 +0000 (21:01 +0000)]
Avoid tail recursion elimination across calls with operand bundles

Summary:
In some specific scenarios with well understood operand bundle types
(like `"deopt"`) it may be possible to go ahead and convert recursion to
iteration, but TailRecursionElimination does not have that logic today
so avoid doing the right thing for now.

I need some input on whether `"funclet"` operand bundles should also
block tail recursion elimination.  If not, I'll allow TRE across calls
with `"funclet"` operand bundles and add a test case.

Reviewers: rnk, majnemer, nlewycky, ahatanak

Subscribers: mcrosier, llvm-commits

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

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

8 years ago[lib/Object] Modernize. NFCI.
Davide Italiano [Mon, 7 Nov 2016 21:01:42 +0000 (21:01 +0000)]
[lib/Object] Modernize. NFCI.

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

8 years agoUse -fsanitize-recover instead of -mllvm -msan-keep-going.
Evgeniy Stepanov [Mon, 7 Nov 2016 21:00:10 +0000 (21:00 +0000)]
Use -fsanitize-recover instead of -mllvm -msan-keep-going.

Summary: Use -fsanitize-recover instead of -mllvm -msan-keep-going.

Reviewers: eugenis

Subscribers: llvm-commits

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

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

8 years agoAdd tests for r286139.
Jordan Rose [Mon, 7 Nov 2016 20:40:16 +0000 (20:40 +0000)]
Add tests for r286139.

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

8 years agoFix `git-llvm` script to handle `git worktree` setups correctly
Mehdi Amini [Mon, 7 Nov 2016 20:35:02 +0000 (20:35 +0000)]
Fix `git-llvm` script to handle `git worktree` setups correctly

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

8 years agoDisallow StringRef assignment from temporary std::strings.
Jordan Rose [Mon, 7 Nov 2016 20:34:16 +0000 (20:34 +0000)]
Disallow StringRef assignment from temporary std::strings.

Similar to r283798, this prevents accidentally referring to temporary
storage that goes out of scope by the end of the statement:

  someStringRef = getStringByValue();
  someStringRef = (Twine("-") + otherString).str();

Note that once again the constructor still has this problem:

  StringRef someStringRef = getStringByValue();

because once again we occasionally rely on this in calls:

  takesStringRef(getStringByValue());
  takesStringRef(Twine("-") + otherString);

Still, it's a step.

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

8 years agoAdd some facilities to work with a git monorepo (experimental setup)
Mehdi Amini [Mon, 7 Nov 2016 20:00:47 +0000 (20:00 +0000)]
Add some facilities to work with a git monorepo (experimental setup)

Add a new script in llvm/utils/git-svn/. When present in the $PATH,
it enables a `git llvm` command. It is providing at this
point only the ability to push from the git monorepo: `git llvm push`.
It is intended to evolves with more features, for instance I plan on
features like `git llvm show r284955` to help working with sequential
revision numbers.
The push feature is taken from Justin Lebar's script available here:
https://github.com/jlebar/llvm-repo-tools/

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

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

8 years ago[AArch64] Remove dead store. Found by gcc7.
Davide Italiano [Mon, 7 Nov 2016 19:11:25 +0000 (19:11 +0000)]
[AArch64] Remove dead store. Found by gcc7.

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

8 years ago[tsan] Cast floating-point types correctly when instrumenting atomic accesses, LLVM...
Kuba Brecka [Mon, 7 Nov 2016 19:09:56 +0000 (19:09 +0000)]
[tsan] Cast floating-point types correctly when instrumenting atomic accesses, LLVM part

Although rare, atomic accesses to floating-point types seem to be valid, i.e. `%a = load atomic float ...`. The TSan instrumentation pass however tries to emit inttoptr, which is incorrect, we should use a bitcast here. Anyway, IRBuilder already has a convenient helper function for this.

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

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

8 years agoAMDGPU: Remove unnecessary and on conditional branch
Matt Arsenault [Mon, 7 Nov 2016 19:09:33 +0000 (19:09 +0000)]
AMDGPU: Remove unnecessary and on conditional branch

The comment explaining why this was necessary is incorrect
in its description of v_cmp's behavior for inactive workitems.

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

8 years agoAMDGPU: Preserve vcc undef flags when inverting branch
Matt Arsenault [Mon, 7 Nov 2016 19:09:27 +0000 (19:09 +0000)]
AMDGPU: Preserve vcc undef flags when inverting branch

If the branch was on a read-undef of vcc, passes that used
analyzeBranch to invert the branch condition wouldn't preserve
the undef flag resulting in a verifier error.

Fixes verifier failures in a future commit.

Also fix verifier error when inserting copy for vccz
corruption bug.

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

8 years agoRemove Go Attribute type that was deleted from the C API in r286062.
David L. Jones [Mon, 7 Nov 2016 18:38:49 +0000 (18:38 +0000)]
Remove Go Attribute type that was deleted from the C API in r286062.

Summary:
The C++ side of the Go bindings were updated in r286085, r286086, and r286087,
but those did not remove this type.

Reviewers: djasper

Subscribers: axw

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

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

8 years agoTest commit, deleted empty line at the end of README.txt
Stanislav Mekhanoshin [Mon, 7 Nov 2016 18:31:21 +0000 (18:31 +0000)]
Test commit, deleted empty line at the end of README.txt

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

8 years ago[X86] Fix test checks script to satisfy pyflakes
Zvi Rackover [Mon, 7 Nov 2016 18:08:19 +0000 (18:08 +0000)]
[X86] Fix test checks script to satisfy pyflakes

- Remove unused imports.
- Initialize the variable 'name' before its (static) uses, and rename it to a
  more descriptive name.

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

8 years ago[MemCpyOpt] Don't emit IR in an unspecified order
Benjamin Kramer [Mon, 7 Nov 2016 17:47:28 +0000 (17:47 +0000)]
[MemCpyOpt] Don't emit IR in an unspecified order

Argument evaluation order is one of the edge cases where Clang differs
from GCC, yielding different IR depending on which compiler LLVM was
built with. Make the order deterministic and tune the test to actually
verify the order instead of trying to hide it.

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

8 years ago[X86] Fix test checks script to handle run lines with no pipe checks
Zvi Rackover [Mon, 7 Nov 2016 17:47:21 +0000 (17:47 +0000)]
[X86] Fix test checks script to handle run lines with no pipe checks

Fixes crashes in tests such as test/CodeGen/X86/masked_gather_scatter.ll which
contains a RUN: with no pipe chain.

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

8 years agoRevert "Add some facilities to work with a git monorepo (experimental setup)"
Mehdi Amini [Mon, 7 Nov 2016 17:43:08 +0000 (17:43 +0000)]
Revert "Add some facilities to work with a git monorepo (experimental setup)"

This reverts commit r286123, accidentally commited while testing itself...

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

8 years agoAdd some facilities to work with a git monorepo (experimental setup)
Mehdi Amini [Mon, 7 Nov 2016 17:40:28 +0000 (17:40 +0000)]
Add some facilities to work with a git monorepo (experimental setup)

Summary:
Some changes are made to cmake, especially the addition of a new
LLVM_ENABLE_PROJECTS option that makes the build system aware of
the monorepo directory structure.

Also a new script is added in llvm/utils/git-svn/. When present in
the $PATH, it enables a `git llvm` command. It is providing at this
point only the ability to push from the git monorepo: `git llvm push`.
It is intended to evolves with more features, for instance I plan on
features like `git llvm show r284955` to help working with sequential
revision numbers.
The push feature is taken from Justin Lebar's script available here:
https://github.com/jlebar/llvm-repo-tools/

Reviewers: jlebar

Subscribers: mgorny, modocache, llvm-commits

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

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

8 years agoAMDGPU: Try to fix (non-clang?) bot builds
Matt Arsenault [Mon, 7 Nov 2016 16:52:50 +0000 (16:52 +0000)]
AMDGPU: Try to fix (non-clang?) bot builds

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

8 years agoAdd -O0 support for @llvm.invariant.group.barrier by discarding it if it gets to...
Richard Smith [Mon, 7 Nov 2016 16:47:20 +0000 (16:47 +0000)]
Add -O0 support for @llvm.invariant.group.barrier by discarding it if it gets to ISel.

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

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

8 years agoAMDGPU: Refactor copyPhysReg
Matt Arsenault [Mon, 7 Nov 2016 16:39:22 +0000 (16:39 +0000)]
AMDGPU: Refactor copyPhysReg

Separate the subregister splitting logic to re-use later.

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

8 years agoFix 80-column violations. NFC.
Chad Rosier [Mon, 7 Nov 2016 16:28:04 +0000 (16:28 +0000)]
Fix 80-column violations. NFC.

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

8 years ago[InstCombine] allow splat vector folds in adjustMinMax() (retry r285732)
Sanjay Patel [Mon, 7 Nov 2016 15:52:45 +0000 (15:52 +0000)]
[InstCombine] allow splat vector folds in adjustMinMax() (retry r285732)

This was reverted at r285866 because there was a crash handling a scalar
select of vectors. I added a check for that pattern and a test case based
on the example provided in the post-commit thread for r285732.

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

8 years ago[SystemZ] Correct the SchedModel regarding vector unit / instructions.
Jonas Paulsson [Mon, 7 Nov 2016 15:45:06 +0000 (15:45 +0000)]
[SystemZ] Correct the SchedModel regarding vector unit / instructions.

* Use a generic vector unit to model the issue unit more accurately.
* Update some vector instructions that actually use the vector unit for more
  than one cycle.

Review: Ulrich Weigand

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

8 years agoThis patch adds support for 16 bit floating point registers to the inline asm registe...
Amara Emerson [Mon, 7 Nov 2016 15:42:12 +0000 (15:42 +0000)]
This patch adds support for 16 bit floating point registers to the inline asm register selection on AArch64.

Without this patch, register allocation for the example below fails.

define half @test(half %a1, half %a2) #0 {
entry:
  %0 = tail call half asm "sqrshl ${0:h}, ${1:h}, ${2:h}", "=w,w,w" (half %a1, half %a2) #1
  ret half %0
}

Patch by Florian Hahn.

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

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

8 years ago[AArch64] Removed the narrow load merging code in the ld/st optimizer.
Chad Rosier [Mon, 7 Nov 2016 15:27:22 +0000 (15:27 +0000)]
[AArch64] Removed the narrow load merging code in the ld/st optimizer.

This feature has been disabled for some time now, so remove cruft.

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

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

8 years ago[SystemZ] Fixes in SchedModels for older subtargets.
Jonas Paulsson [Mon, 7 Nov 2016 14:47:25 +0000 (14:47 +0000)]
[SystemZ] Fixes in SchedModels for older subtargets.

IssueWidth updated to reflect the capacity of the issue unit correctly.
Correct number of FX and LS units modelled (2, was 1).

Review: Ulrich Weigand

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

8 years ago[AliasSetTracker] Make AST smarter about assume intrinsics that don't actually affect...
Chad Rosier [Mon, 7 Nov 2016 14:11:45 +0000 (14:11 +0000)]
[AliasSetTracker] Make AST smarter about assume intrinsics that don't actually affect memory.

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

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

8 years ago[Thumb1] Move padding earlier when synthesizing TBBs off of the PC
James Molloy [Mon, 7 Nov 2016 13:38:21 +0000 (13:38 +0000)]
[Thumb1] Move padding earlier when synthesizing TBBs off of the PC

When the base register (register pointing to the jump table) is the PC, we expect the jump table to directly follow the jump sequence with no intervening padding.

If there is intervening padding, the calculated offsets will not be correct. One solution would be to account for any padding in the emitted LDRB instruction, but at the moment we don't support emitting MCExprs for the load offset.

In the meantime, it's correct and only a slight amount worse to just move the padding up, from just before the jump table to just before the jump instruction sequence. We can do that by emitting code alignment before the jump sequence, as we know the number of instructions in the sequence is always 4.

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

8 years ago[X86][AVX512] Add AVX512VL/AVX512BWVL vector truncation tests
Simon Pilgrim [Mon, 7 Nov 2016 13:34:29 +0000 (13:34 +0000)]
[X86][AVX512] Add AVX512VL/AVX512BWVL vector truncation tests

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

8 years ago[X86][SSE] Drop unnecessary -mcpu argument from trunc tests
Simon Pilgrim [Mon, 7 Nov 2016 13:28:20 +0000 (13:28 +0000)]
[X86][SSE] Drop unnecessary -mcpu argument from trunc tests

cpu/triple duplication

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

8 years ago[AVR] Enable the ISel, frame analyzer, and alloca passes
Dylan McKay [Mon, 7 Nov 2016 06:02:55 +0000 (06:02 +0000)]
[AVR] Enable the ISel, frame analyzer, and alloca passes

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

8 years agoUpdate CommandLine.rst getRegisteredOptions example
Brian Gesiak [Mon, 7 Nov 2016 02:43:01 +0000 (02:43 +0000)]
Update CommandLine.rst getRegisteredOptions example

Summary: Update the docs to match the changes in http://reviews.llvm.org/D7132

Reviewers: beanz, llvm-commits, modocache

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

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

8 years ago[AVX-512] Remove masked pmovzx/pmovsx builtins and autoupgrade them to selects and...
Craig Topper [Mon, 7 Nov 2016 02:12:57 +0000 (02:12 +0000)]
[AVX-512] Remove masked pmovzx/pmovsx builtins and autoupgrade them to selects and native zext/sext.

This mostly reuses earlier autoupgrade support for the sse and avx equivalents. Just needed to add the code to add the select.

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

8 years ago[X86] Remove GCCBuiltins from cvtsi2ss/cvtsi2sd/cvtss2sd intrinsics as they aren...
Craig Topper [Mon, 7 Nov 2016 00:13:46 +0000 (00:13 +0000)]
[X86] Remove GCCBuiltins from cvtsi2ss/cvtsi2sd/cvtss2sd intrinsics as they aren't used by clang. Add TODOs to remove these and some other unused intrinsics.

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

8 years ago[X86] Use StringRef::startswith to reduce a few compares in the intrinsic autoupgrade...
Craig Topper [Mon, 7 Nov 2016 00:13:42 +0000 (00:13 +0000)]
[X86] Use StringRef::startswith to reduce a few compares in the intrinsic autoupgrade code.

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

8 years ago[AVX-512] Remove 128/256 masked pshufb intrinsics. Autoupgrade them to legacy intrins...
Craig Topper [Mon, 7 Nov 2016 00:13:39 +0000 (00:13 +0000)]
[AVX-512] Remove 128/256 masked pshufb intrinsics. Autoupgrade them to legacy intrinsics and a select.

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

8 years agoAlso delete the go side of the bindings deleted in r286085/r286086.
Daniel Jasper [Sun, 6 Nov 2016 23:21:22 +0000 (23:21 +0000)]
Also delete the go side of the bindings deleted in r286085/r286086.

Also delete a comment I forgot to delete.

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

8 years agoDelete one more function that needs to go after r286062.
Daniel Jasper [Sun, 6 Nov 2016 21:20:45 +0000 (21:20 +0000)]
Delete one more function that needs to go after r286062.

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

8 years agoRemove functions from go bindings that have been deleted in r286062.
Daniel Jasper [Sun, 6 Nov 2016 21:02:14 +0000 (21:02 +0000)]
Remove functions from go bindings that have been deleted in r286062.

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

8 years agoReapply r286080 with a phony change in Hexagon's CMakeLists.txt
Krzysztof Parzyszek [Sun, 6 Nov 2016 20:55:57 +0000 (20:55 +0000)]
Reapply r286080 with a phony change in Hexagon's CMakeLists.txt

Cmake has not recognized that Hexagon.td has a new dependency in
HexagonPatterns.td. All changes to that file were not visible to
the build bots.

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

8 years ago[RandomNumberGenerator] Remove MSVC 2013 compatibility hack.
Davide Italiano [Sun, 6 Nov 2016 20:55:40 +0000 (20:55 +0000)]
[RandomNumberGenerator] Remove MSVC 2013 compatibility hack.

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

8 years agoARM: lower fpowi appropriately for Windows ARM
Saleem Abdulrasool [Sun, 6 Nov 2016 19:46:54 +0000 (19:46 +0000)]
ARM: lower fpowi appropriately for Windows ARM

This handles the last case of the builtin function calls that we would
generate code which differed from Microsoft's ABI.  Rather than
generating a call to `__pow{d,s}i2` we now promote the parameter to a
float or double and invoke `powf` or `pow` instead.

Addresses PR30825!

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

8 years agoRevert r286080: it breaks build bots
Krzysztof Parzyszek [Sun, 6 Nov 2016 19:36:09 +0000 (19:36 +0000)]
Revert r286080: it breaks build bots

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

8 years ago[Hexagon] Remove redundant custom selection code
Krzysztof Parzyszek [Sun, 6 Nov 2016 19:03:38 +0000 (19:03 +0000)]
[Hexagon] Remove redundant custom selection code

The clr/set/toggle-bit instructions (with the bit index given as an
immediate operand) had both, custom selection code that generated them,
and selection patterns at the same time. The selection patterns were
not used, because the custom selection code was executed first.
This patch removes the custom code in favor of the selection patterns.
The custom code handled 64-bit registers as well with an immediate bit
index, and so new patterns were added to implement that.

It was also the same case for the instruction "Rd += asr(Rs, Rt)",
except that the custom code did not offer any additional functionality,
and was simply removed.

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

8 years ago[Hexagon] Round 5 of selection pattern simplifications
Krzysztof Parzyszek [Sun, 6 Nov 2016 18:13:14 +0000 (18:13 +0000)]
[Hexagon] Round 5 of selection pattern simplifications

Remove unnecessary type casts in patterns.

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

8 years ago[Hexagon] Round 4 of selection pattern simplifications
Krzysztof Parzyszek [Sun, 6 Nov 2016 18:09:56 +0000 (18:09 +0000)]
[Hexagon] Round 4 of selection pattern simplifications

Give simpler or more meaningful names to pat frags and xforms.

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

8 years ago[Hexagon] Round 3 of selection pattern simplifications
Krzysztof Parzyszek [Sun, 6 Nov 2016 18:05:14 +0000 (18:05 +0000)]
[Hexagon] Round 3 of selection pattern simplifications

Remove unnecessary C++ functions for SDNode transforms. Move more
pat frags to files where they are used.

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

8 years ago[Hexagon] Round 2 of selection pattern simplifications
Krzysztof Parzyszek [Sun, 6 Nov 2016 17:56:48 +0000 (17:56 +0000)]
[Hexagon] Round 2 of selection pattern simplifications

Add pat frags for any-, sign-, and zero-extensions.

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

8 years ago[SelectionDAG] Add support for vector demandedelts in XOR opcodes
Simon Pilgrim [Sun, 6 Nov 2016 16:49:19 +0000 (16:49 +0000)]
[SelectionDAG] Add support for vector demandedelts in XOR opcodes

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

8 years ago[X86] Add knownbits vector xor test
Simon Pilgrim [Sun, 6 Nov 2016 16:36:29 +0000 (16:36 +0000)]
[X86] Add knownbits vector xor test

In preparation for demandedelts support

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

8 years ago[AVX-512] Remove intrinsics for 128/256-bit masked variable shift. Instead upgrade...
Craig Topper [Sun, 6 Nov 2016 16:29:19 +0000 (16:29 +0000)]
[AVX-512] Remove intrinsics for 128/256-bit masked variable shift. Instead upgrade them to a select and the older AVX2 intrinsic.

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

8 years ago[AVX-512] Remove intrinsics for 128/256-bit masked shift by immediate. Instead upgrad...
Craig Topper [Sun, 6 Nov 2016 16:29:14 +0000 (16:29 +0000)]
[AVX-512] Remove intrinsics for 128/256-bit masked shift by immediate. Instead upgrade them to a select and the older SSE/AVX2 intrinsic.

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

8 years ago[SelectionDAG] Add support for vector demandedelts in OR opcodes
Simon Pilgrim [Sun, 6 Nov 2016 16:29:09 +0000 (16:29 +0000)]
[SelectionDAG] Add support for vector demandedelts in OR opcodes

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

8 years ago[AVX-512] Remove intrinsics for 128/256-bit masked shift by single element in xmm...
Craig Topper [Sun, 6 Nov 2016 16:29:08 +0000 (16:29 +0000)]
[AVX-512] Remove intrinsics for 128/256-bit masked shift by single element in xmm. Instead upgrade them to a select and the older SSE/AVX2 intrinsic.

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

8 years ago[AVX-512] Remove a 512-bit test cases from the avx512vl test file. It already exists...
Craig Topper [Sun, 6 Nov 2016 16:29:03 +0000 (16:29 +0000)]
[AVX-512] Remove a 512-bit test cases from the avx512vl test file. It already exists in the avx512f test file.

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

8 years ago[X86] Add knownbits vector or test
Simon Pilgrim [Sun, 6 Nov 2016 16:05:59 +0000 (16:05 +0000)]
[X86] Add knownbits vector or test

In preparation for demandedelts support

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

8 years ago[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsElementInsertion. NFCI
Simon Pilgrim [Sun, 6 Nov 2016 14:20:29 +0000 (14:20 +0000)]
[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsElementInsertion. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[BitcodeWriter] Replace a manual byteswap with read32be.
Benjamin Kramer [Sun, 6 Nov 2016 13:26:39 +0000 (13:26 +0000)]
[BitcodeWriter] Replace a manual byteswap with read32be.

No functional change intended.

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

8 years ago[X86] Add a few more fptoui test cases to the vec_fp_to_int.ll. The codegen for these...
Craig Topper [Sun, 6 Nov 2016 07:50:25 +0000 (07:50 +0000)]
[X86] Add a few more fptoui test cases to the vec_fp_to_int.ll. The codegen for these test cases will be improved for AVX512 in a future commit.

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

8 years agoKill deprecated attribute API
Amaury Sechet [Sun, 6 Nov 2016 07:48:46 +0000 (07:48 +0000)]
Kill deprecated attribute API

Summary:
This kill various depreacated API related to attribute :
 - The deprecated C API attribute based on LLVMAttribute enum.
 - The Raw attribute set format (planned to be removed in 4.0).

Reviewers: bkramer, echristo, mehdi_amini, void

Subscribers: mehdi_amini, llvm-commits

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

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

8 years ago[APFloat] Make functions that produce APFloaat objects use correct semantics.
Tim Shen [Sun, 6 Nov 2016 07:38:37 +0000 (07:38 +0000)]
[APFloat] Make functions that produce APFloaat objects use correct semantics.

Summary:
Fixes PR30869.

In D25977 I meant to change all functions that care about lifetime. I
changed constructors, factory functions, but I missed member/free
functions that return new instances. This patch changes them.

Reviewers: hfinkel, kbarton, echristo, joerg

Subscribers: llvm-commits, mehdi_amini

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

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

8 years ago[AVX-512] Add missing EVEX version of pattern for (v2f64 (extloadv2f32 addr:)) -...
Craig Topper [Sun, 6 Nov 2016 04:12:52 +0000 (04:12 +0000)]
[AVX-512] Add missing EVEX version of pattern for (v2f64 (extloadv2f32 addr:)) -> VCVTPS2PDZ128rm

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

8 years ago[AVX-512] Add avx512vl command line to the fpext test and add -show-mc-encoding to...
Craig Topper [Sun, 6 Nov 2016 04:12:49 +0000 (04:12 +0000)]
[AVX-512] Add avx512vl command line to the fpext test and add -show-mc-encoding to show where we aren't using EVEX instructions.

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

8 years ago[AVX-512] Lower AVX cvtpd2ps intrinsic to ISD::FP_ROUND so it can use EVEX instructio...
Craig Topper [Sun, 6 Nov 2016 04:12:46 +0000 (04:12 +0000)]
[AVX-512] Lower AVX cvtpd2ps intrinsic to ISD::FP_ROUND so it can use EVEX instruction when available.

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

8 years ago[AVX-512] Lower SSE/AVX cvtdq2ps intrinsics directly to ISD::SINT_TO_FP so they can...
Craig Topper [Sun, 6 Nov 2016 04:12:42 +0000 (04:12 +0000)]
[AVX-512] Lower SSE/AVX cvtdq2ps intrinsics directly to ISD::SINT_TO_FP so they can use EVEX instructions when available.

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

8 years ago[AVX-512] Add -show-mc-encoding to legacy vector intrinsic tests so we can see when...
Craig Topper [Sun, 6 Nov 2016 02:03:58 +0000 (02:03 +0000)]
[AVX-512] Add -show-mc-encoding to legacy vector intrinsic tests so we can see when VEX or EVEX encoded instructions are being emitted. Make sure the tests all have an avx2 command line and an skx command line.

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

8 years ago[Hexagon] Relocate pattern-related bits to proper places
Krzysztof Parzyszek [Sat, 5 Nov 2016 21:44:50 +0000 (21:44 +0000)]
[Hexagon] Relocate pattern-related bits to proper places

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

8 years ago[Hexagon] Round 1 of selection pattern simplifications
Krzysztof Parzyszek [Sat, 5 Nov 2016 21:02:54 +0000 (21:02 +0000)]
[Hexagon] Round 1 of selection pattern simplifications

Consistently use register class pat frags instead of spelling out
the type and class each time.

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

8 years agotest commit
Boris Ulasevich [Sat, 5 Nov 2016 20:25:18 +0000 (20:25 +0000)]
test commit

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

8 years ago[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsBlend. NFCI
Simon Pilgrim [Sat, 5 Nov 2016 18:31:57 +0000 (18:31 +0000)]
[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsBlend. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsZeroOrAnyExtend. NFCI
Simon Pilgrim [Sat, 5 Nov 2016 18:22:13 +0000 (18:22 +0000)]
[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsZeroOrAnyExtend. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[X86][SSE] Reuse zeroable element mask in SSE4A EXTRQ/INSERTQ vector shuffle lowering...
Simon Pilgrim [Sat, 5 Nov 2016 18:05:13 +0000 (18:05 +0000)]
[X86][SSE] Reuse zeroable element mask in SSE4A EXTRQ/INSERTQ vector shuffle lowering. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[X86][SSE] Reuse zeroable element mask in PSHUFB vector shuffle lowering. NFCI
Simon Pilgrim [Sat, 5 Nov 2016 17:53:27 +0000 (17:53 +0000)]
[X86][SSE] Reuse zeroable element mask in PSHUFB vector shuffle lowering. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsInsertPS. NFCI
Simon Pilgrim [Sat, 5 Nov 2016 17:27:48 +0000 (17:27 +0000)]
[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsInsertPS. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsBitMask. NFCI
Simon Pilgrim [Sat, 5 Nov 2016 17:12:19 +0000 (17:12 +0000)]
[X86][SSE] Reuse zeroable element mask in lowerVectorShuffleAsBitMask. NFCI

Don't regenerate a zeroable element mask with computeZeroableShuffleElements when its already available.

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

8 years ago[LoopStrengthReduce] Don't use a DenseSet<int64_t> when we might add any valid int64_...
Justin Lebar [Sat, 5 Nov 2016 16:47:25 +0000 (16:47 +0000)]
[LoopStrengthReduce] Don't use a DenseSet<int64_t> when we might add any valid int64_t to the set.

Summary:
SmallSetVector uses DenseSet, but that means we need to reserve some
values for the empty and tombstone keys.

It seems to me we should have a general way to let us store full-range
ints inside of DenseSets, and furthermore that we probably shouldn't
silently let you add ints into DenseSets without explicitly promising
that they're in range.  But that's a battle for another day; for now,
just fix this code, since we currently do something Very Bad when
compiling ffmpeg.

Fixes PR30914.

Reviewers: jeremyhu

Subscribers: llvm-commits, mzolotukhin

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

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

8 years ago[X86][SSE] Reuse zeroable element mask instead of regenerating it. NFCI
Simon Pilgrim [Sat, 5 Nov 2016 16:40:20 +0000 (16:40 +0000)]
[X86][SSE] Reuse zeroable element mask instead of regenerating it. NFCI

We are repeatedly calling computeZeroableShuffleElements in many shuffle lowering calls for the same shuffle mask/inputs.

This is a first step towards reusing the zeroable result, initially just for lowerVectorShuffleAsShift calls.

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

8 years ago[Hexagon] Split all selection patterns into a separate file
Krzysztof Parzyszek [Sat, 5 Nov 2016 15:01:38 +0000 (15:01 +0000)]
[Hexagon] Split all selection patterns into a separate file

This is just the basic separation, without any cleanup. Further changes
will follow.

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

8 years agoStrip trailing whitespace. NFCI.
Simon Pilgrim [Sat, 5 Nov 2016 14:43:04 +0000 (14:43 +0000)]
Strip trailing whitespace. NFCI.

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

8 years ago[AVX-512] Use an equality compare instead of StringRef::startswith in a few places...
Craig Topper [Sat, 5 Nov 2016 05:35:23 +0000 (05:35 +0000)]
[AVX-512] Use an equality compare instead of StringRef::startswith in a few places in auto upgrade that were looking for the complete intrinsic name anyway.

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