]>
granicus.if.org Git - llvm/log
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Alina Sbirlea [Sat, 5 Nov 2016 04:22:15 +0000 (04:22 +0000)]
Correct mprotect page boundries to round up end page. Fixes PR30905.
Summary:
Update the boundries for mprotect.
Patch by Andrew Adams. Fixes PR30905.
Reviewers: loladiro, andrew.w.kaylor, chandlerc
Subscribers: abadams, llvm-commits
Differential Revision: https://reviews.llvm.org/D26312
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286032
91177308 -0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 5 Nov 2016 04:00:31 +0000 (04:00 +0000)]
[X86] Remove broken support for autoupgrading llvm.x86.fma4.* intrinsics to llvm.x86.fma.*.
It currently fires an assert if you even try. Looking back, I don't think it ever worked because it only changed the name of the function object, but not the intrinsic ID stored in it. Given that, I think it can be removed since no one has noticed or complained in the past 4 years.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286031
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 4 Nov 2016 23:22:19 +0000 (23:22 +0000)]
Append a (uint32_t)pad into arm_thread_state64_t. Implicit pad isn't appended on i686.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286027
91177308 -0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 4 Nov 2016 22:29:34 +0000 (22:29 +0000)]
[ExecutionEngine] Document the insane ownership contract for
ExecutionEngine::removeModule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286026
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 4 Nov 2016 21:55:23 +0000 (21:55 +0000)]
cmake: When using LLVM_DISTRIBUTION_COMPONENTS, adjust LLVMExports accordingly
This Makes sure we only export targets that we're distributing, since
cmake will fail to import the file otherwise due to missing targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286024
91177308 -0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 4 Nov 2016 20:41:03 +0000 (20:41 +0000)]
[Hexagon] Account for <def,read-undef> when validating moves for predication
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286009
91177308 -0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Fri, 4 Nov 2016 19:17:32 +0000 (19:17 +0000)]
Fix 24560: assembler does not share constant pool for same constants
Summary: This patch returns the same label if the CP entry with the same value has been created.
Reviewers: eli.friedman, rengolin, jmolloy
Subscribers: majnemer, jmolloy, llvm-commits
Differential Revision: https://reviews.llvm.org/D25804
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286006
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 4 Nov 2016 18:50:45 +0000 (18:50 +0000)]
llvm/test/Transforms/DCE/calls-errno.ll: Suppress checking @pow(+0,-1).
It depends on host's pow(3), and mingw's pow doesn't raise any errors, just returns +INF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286005
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 4 Nov 2016 17:57:34 +0000 (17:57 +0000)]
[docs] Add initial Global ISel documentation.
This reflects the current state of Global ISel. As progress is
made, we'll document our design decisions in it.
Comments very welcome!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286002
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zvi Rackover [Fri, 4 Nov 2016 15:15:19 +0000 (15:15 +0000)]
[X86] Broadcast from memory intructions aren't unfoldable
Broadcast from memory instructions should be treated as moves. They can't be unfolded.
Fixes pr30693.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285998
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zvi Rackover [Fri, 4 Nov 2016 14:53:22 +0000 (14:53 +0000)]
Add bugpoint-reduced reproducer for pr30693
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285997
91177308 -0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 4 Nov 2016 13:06:34 +0000 (13:06 +0000)]
Revert "AMDGPU: Add VI i16 support"
This reverts commit r285939 and r285948. These broke some conformance tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285995
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 4 Nov 2016 08:31:14 +0000 (08:31 +0000)]
Comment rewording in MachineScheduler.cpp.
Author: A Trick
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285991
91177308 -0d34-0410-b5e6-
96231b3b80d8