summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Add experimental support for unofficial monorepo-like directory layoutMehdi Amini2016-11-072-0/+33
| | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 286162
* [WebAssembly] Emit a BasePointer when we have overly-aligned stack objectsDerek Schuff2016-11-074-10/+201
| | | | | | | | | | | | 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 llvm-svn: 286160
* Reset debug loc to OldInduction in ↵Dehao Chen2016-11-071-1/+3
| | | | | | | | InnerLoopVectorizer::createInductionVariable. (NFC) This is to prevent SetInsertionPoint from setting debug loc to Latch->getTerminator(). llvm-svn: 286159
* [lib/Object] Rename elf_hash to hashSysV.Davide Italiano2016-11-071-1/+1
| | | | | | This is more clear, as we have also GNU hash these days.. llvm-svn: 286157
* [lit] Print negative exit codes on Windows in hexReid Kleckner2016-11-071-2/+8
| | | | | | | Negative exit codes are usually exceptions. They're easier to recognize in hex. Compare -1073741502 to 0xc0000142. llvm-svn: 286150
* Avoid tail recursion elimination across calls with operand bundlesSanjoy Das2016-11-072-1/+59
| | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 286147
* [lib/Object] Modernize. NFCI.Davide Italiano2016-11-071-4/+3
| | | | llvm-svn: 286146
* Use -fsanitize-recover instead of -mllvm -msan-keep-going.Evgeniy Stepanov2016-11-072-10/+13
| | | | | | | | | | | | Summary: Use -fsanitize-recover instead of -mllvm -msan-keep-going. Reviewers: eugenis Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26352 llvm-svn: 286145
* Add tests for r286139.Jordan Rose2016-11-071-0/+36
| | | | llvm-svn: 286141
* Fix `git-llvm` script to handle `git worktree` setups correctlyMehdi Amini2016-11-071-1/+2
| | | | llvm-svn: 286140
* Disallow StringRef assignment from temporary std::strings.Jordan Rose2016-11-071-0/+9
| | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 286139
* Add some facilities to work with a git monorepo (experimental setup)Mehdi Amini2016-11-071-0/+278
| | | | | | | | | | | | | | | 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 llvm-svn: 286138
* [AArch64] Remove dead store. Found by gcc7.Davide Italiano2016-11-071-6/+3
| | | | llvm-svn: 286137
* [tsan] Cast floating-point types correctly when instrumenting atomic ↵Kuba Brecka2016-11-072-17/+57
| | | | | | | | | | 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 llvm-svn: 286135
* AMDGPU: Remove unnecessary and on conditional branchMatt Arsenault2016-11-0710-50/+18
| | | | | | | The comment explaining why this was necessary is incorrect in its description of v_cmp's behavior for inactive workitems. llvm-svn: 286134
* AMDGPU: Preserve vcc undef flags when inverting branchMatt Arsenault2016-11-074-7/+288
| | | | | | | | | | | | | 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. llvm-svn: 286133
* Remove Go Attribute type that was deleted from the C API in r286062.David L. Jones2016-11-071-1/+0
| | | | | | | | | | | | | | 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 llvm-svn: 286131
* Test commit, deleted empty line at the end of README.txtStanislav Mekhanoshin2016-11-071-1/+0
| | | | llvm-svn: 286130
* [X86] Fix test checks script to satisfy pyflakesZvi Rackover2016-11-071-5/+4
| | | | | | | | - Remove unused imports. - Initialize the variable 'name' before its (static) uses, and rename it to a more descriptive name. llvm-svn: 286128
* [MemCpyOpt] Don't emit IR in an unspecified orderBenjamin Kramer2016-11-072-32/+32
| | | | | | | | | 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. llvm-svn: 286126
* [X86] Fix test checks script to handle run lines with no pipe checksZvi Rackover2016-11-071-1/+5
| | | | | | | Fixes crashes in tests such as test/CodeGen/X86/masked_gather_scatter.ll which contains a RUN: with no pipe chain. llvm-svn: 286125
* Revert "Add some facilities to work with a git monorepo (experimental setup)"Mehdi Amini2016-11-073-369/+0
| | | | | | This reverts commit r286123, accidentally commited while testing itself... llvm-svn: 286124
* Add some facilities to work with a git monorepo (experimental setup)Mehdi Amini2016-11-073-0/+369
| | | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 286123
* AMDGPU: Try to fix (non-clang?) bot buildsMatt Arsenault2016-11-071-10/+10
| | | | llvm-svn: 286120
* Add -O0 support for @llvm.invariant.group.barrier by discarding it if it ↵Richard Smith2016-11-073-0/+9
| | | | | | | | gets to ISel. Differential Revision: https://reviews.llvm.org/D26292 llvm-svn: 286119
* AMDGPU: Refactor copyPhysRegMatt Arsenault2016-11-073-99/+133
| | | | | | Separate the subregister splitting logic to re-use later. llvm-svn: 286118
* Fix 80-column violations. NFC.Chad Rosier2016-11-071-3/+7
| | | | llvm-svn: 286117
* [InstCombine] allow splat vector folds in adjustMinMax() (retry r285732)Sanjay Patel2016-11-072-62/+57
| | | | | | | | 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. llvm-svn: 286113
* [SystemZ] Correct the SchedModel regarding vector unit / instructions.Jonas Paulsson2016-11-074-82/+93
| | | | | | | | | * 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 llvm-svn: 286112
* This patch adds support for 16 bit floating point registers to the inline ↵Amara Emerson2016-11-072-0/+22
| | | | | | | | | | | | | | | | | | 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 llvm-svn: 286111
* [AArch64] Removed the narrow load merging code in the ld/st optimizer.Chad Rosier2016-11-074-556/+55
| | | | | | | | This feature has been disabled for some time now, so remove cruft. Differential Revision: https://reviews.llvm.org/D26248 llvm-svn: 286110
* [SystemZ] Fixes in SchedModels for older subtargets.Jonas Paulsson2016-11-073-8/+8
| | | | | | | | 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 llvm-svn: 286109
* [AliasSetTracker] Make AST smarter about assume intrinsics that don't ↵Chad Rosier2016-11-072-0/+31
| | | | | | | | actually affect memory. Differential Revision: https://reviews.llvm.org/D26252 llvm-svn: 286108
* [Thumb1] Move padding earlier when synthesizing TBBs off of the PCJames Molloy2016-11-072-1/+9
| | | | | | | | | | 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. llvm-svn: 286107
* [X86][AVX512] Add AVX512VL/AVX512BWVL vector truncation testsSimon Pilgrim2016-11-071-65/+313
| | | | llvm-svn: 286105
* [X86][SSE] Drop unnecessary -mcpu argument from trunc testsSimon Pilgrim2016-11-071-7/+7
| | | | | | cpu/triple duplication llvm-svn: 286104
* [AVR] Enable the ISel, frame analyzer, and alloca passesDylan McKay2016-11-071-2/+8
| | | | llvm-svn: 286095
* Update CommandLine.rst getRegisteredOptions exampleBrian Gesiak2016-11-071-2/+1
| | | | | | | | | | 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 llvm-svn: 286094
* [AVX-512] Remove masked pmovzx/pmovsx builtins and autoupgrade them to ↵Craig Topper2016-11-0711-966/+787
| | | | | | | | 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. llvm-svn: 286092
* [X86] Remove GCCBuiltins from cvtsi2ss/cvtsi2sd/cvtss2sd intrinsics as they ↵Craig Topper2016-11-071-13/+13
| | | | | | aren't used by clang. Add TODOs to remove these and some other unused intrinsics. llvm-svn: 286091
* [X86] Use StringRef::startswith to reduce a few compares in the intrinsic ↵Craig Topper2016-11-071-12/+3
| | | | | | autoupgrade code. llvm-svn: 286090
* [AVX-512] Remove 128/256 masked pshufb intrinsics. Autoupgrade them to ↵Craig Topper2016-11-075-48/+49
| | | | | | legacy intrinsics and a select. llvm-svn: 286089
* Also delete the go side of the bindings deleted in r286085/r286086.Daniel Jasper2016-11-063-180/+0
| | | | | | Also delete a comment I forgot to delete. llvm-svn: 286087
* Delete one more function that needs to go after r286062.Daniel Jasper2016-11-062-8/+0
| | | | llvm-svn: 286086
* Remove functions from go bindings that have been deleted in r286062.Daniel Jasper2016-11-062-24/+0
| | | | llvm-svn: 286085
* Reapply r286080 with a phony change in Hexagon's CMakeLists.txtKrzysztof Parzyszek2016-11-063-208/+107
| | | | | | | | 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. llvm-svn: 286084
* [RandomNumberGenerator] Remove MSVC 2013 compatibility hack.Davide Italiano2016-11-061-12/+2
| | | | llvm-svn: 286083
* ARM: lower fpowi appropriately for Windows ARMSaleem Abdulrasool2016-11-062-0/+114
| | | | | | | | | | | 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! llvm-svn: 286082
* Revert r286080: it breaks build botsKrzysztof Parzyszek2016-11-062-97/+208
| | | | llvm-svn: 286081
* [Hexagon] Remove redundant custom selection codeKrzysztof Parzyszek2016-11-062-208/+97
| | | | | | | | | | | | | | | | 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. llvm-svn: 286080
OpenPOWER on IntegriCloud