summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [mips] Fix calculation of a branch instruction offset to escape left shift ↵Simon Atanasyan2017-09-202-5/+10
| | | | | | of negative value llvm-svn: 313815
* AMDGPU: Start selecting v_mad_mixhi_f16Matt Arsenault2017-09-206-43/+309
| | | | llvm-svn: 313814
* X86: treat SwiftCC as Win64_CC on Win64Saleem Abdulrasool2017-09-202-0/+12
| | | | | | | | | | | The Swift CC is identical to Win64 CC with the exception of swift error being passed in r12 which is a CSR. However, since this calling convention is only used in swift -> swift code, it does not impact interoperability and can be treated entirely as Win64 CC. We would previously incorrectly lower the frame setup as we did not treat the frame as conforming to Win64 specifications. llvm-svn: 313813
* AMDGPU: Add tied operands to v_mad_mix{lo|hi}_f16Matt Arsenault2017-09-202-12/+23
| | | | | | | | | These write to the low and high half of the destination register and leave the other 16-bits unchanged. This is true for most 16-bit instructions on gfx9, but we don't use that now. llvm-svn: 313812
* Implement cl_khr_int64_extended_atomics builtinsJan Vesely2017-09-2014-0/+172
| | | | | | | Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Aaron Watry <awatry@gmail.com> Tested-by: Aaron Watry <awatry@gmail.com> llvm-svn: 313811
* Implement cl_khr_int64_base_atomics builtinsJan Vesely2017-09-2014-0/+136
| | | | | | | Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Aaron Watry <awatry@gmail.com> Tested-by: Aaron Watry <awatry@gmail.com> llvm-svn: 313810
* Introduce the llvm-cfi-verify tool (resubmission of D37937).Vlad Tsyrklevich2017-09-206-1/+375
| | | | | | | | | | | | | | | | Summary: Resubmission of D37937. Fixed i386 target building (conversion from std::size_t& to uint64_t& failed). Fixed documentation warning failure about docs/CFIVerify.rst not being in the tree. Reviewers: vlad.tsyrklevich Reviewed By: vlad.tsyrklevich Patch by Mitch Phillips Subscribers: sbc100, mgorny, pcc, llvm-commits, kcc Differential Revision: https://reviews.llvm.org/D38089 llvm-svn: 313809
* Remove the default subtarget from the new Nios2 port. It's unused and ↵Eric Christopher2017-09-202-9/+1
| | | | | | deprecated. llvm-svn: 313808
* [lit] Undo the patch to stop writing pyc files.Zachary Turner2017-09-202-4/+0
| | | | | | | The problems on the bots appear to be resolved and this was determined to not be the culprit. Removing this. llvm-svn: 313807
* AMDGPU: Start selecting v_mad_mixlo_f16Matt Arsenault2017-09-204-0/+306
| | | | | | | | Also add some tests that should be able to use v_mad_mixhi_f16, but do not yet. This is trickier because we don't really model the partial update of the register done by 16-bit instructions. llvm-svn: 313806
* [OPENMP] Support for re-declarations when checking captured variables.Alexey Bataev2017-09-202-6/+5
| | | | | | | Need to check for variables re-declarations when checking that the variable was already captured in the captured region. llvm-svn: 313805
* Revert "Introduce the llvm-cfi-verify tool (resubmission of D37937)."Vlad Tsyrklevich2017-09-206-374/+1
| | | | | | This reverts commit r313798, it's causing buildbot failures. llvm-svn: 313804
* Revert 313789 because gcc doesn't like itMarshall Clow2017-09-202-8/+8
| | | | llvm-svn: 313803
* Fixed unused variable warning introduced in r313796 causing build failureCameron Desrochers2017-09-201-3/+0
| | | | llvm-svn: 313802
* [clangd] Fixed crash on MacOS.Ilya Biryukov2017-09-202-6/+5
| | | | | | | Caused by invalid order of members in ClangdServer. DiagnosticsMutex was used after destruction. llvm-svn: 313801
* Consider ForceAbsolute again in moveAbsRight.Rafael Espindola2017-09-202-1/+18
| | | | | | | | | This patch goes back to considering ForceAbsolute in moveAbsRight, but only if the second argument is not already absolute. With this we can handle "foo + ABSOLUTE(foo)" and "ABSOLUTE(foo) + foo". llvm-svn: 313800
* Fix warning caused by new clang::BuiltinType::Float16 added in r312794Ted Woodward2017-09-201-0/+1
| | | | llvm-svn: 313799
* Introduce the llvm-cfi-verify tool (resubmission of D37937).Vlad Tsyrklevich2017-09-206-1/+374
| | | | | | | | | | | | | | | | Summary: Resubmission of D37937. Fixed i386 target building (conversion from std::size_t& to uint64_t& failed). Fixed documentation warning failure about docs/CFIVerify.rst not being in the tree. Reviewers: vlad.tsyrklevich Reviewed By: vlad.tsyrklevich Patch by Mitch Phillips Subscribers: mgorny, pcc, llvm-commits, kcc Differential Revision: https://reviews.llvm.org/D38089 llvm-svn: 313798
* AMDGPU: Fix encoding of op_sel for mad_mix* opcodesMatt Arsenault2017-09-203-37/+37
| | | | llvm-svn: 313797
* [PCH] Fixed preamble breaking with BOM presence (and particularly, ↵Cameron Desrochers2017-09-208-35/+80
| | | | | | | | | | | | | | fluctuating BOM presence) This patch fixes broken preamble-skipping when the preamble region includes a byte order mark (BOM). Previously, parsing would fail if preamble PCH generation was enabled and a BOM was present. This also fixes preamble invalidation when a BOM appears or disappears. This may seem to be an obscure edge case, but it happens regularly with IDEs that pass buffer overrides that never (or always) have a BOM, yet the underlying file from the initial parse that generated a PCH might (or might not) have a BOM. I've included a test case for these scenarios. Differential Revision: https://reviews.llvm.org/D37491 llvm-svn: 313796
* Reland "[WebAssembly] Add support for naming wasm data segments"Sam Clegg2017-09-2014-9/+130
| | | | | | | | | Add adds support for naming data segments. This is useful useful linkers so that they can merge similar sections. Differential Revision: https://reviews.llvm.org/D37886 llvm-svn: 313795
* Consider only A.Sec in moveAbsRight.Rafael Espindola2017-09-202-4/+5
| | | | | | | | | | | | | | The idea of this function is to simplify the implementation of binary operators like add. A value might be absolute because of an ABSOLUTE expression, but it still depends on the value of a section and we might not be able to evaluate it early. We should keep such values on the LHS, so that we can delay the evaluation. We can now handle both "1 + ABSOLUTE(foo)" and "ABSOLUTE(foo) + 1". llvm-svn: 313794
* [APInt] Use getActiveBits() to implement logBase2 and ceilLogBase2. NFCCraig Topper2017-09-201-2/+2
| | | | llvm-svn: 313793
* [InstCombine] Use APInt::getActiveBits() to avoid creating an APInt from a ↵Craig Topper2017-09-201-1/+1
| | | | | | trailing zero count to do a comparison. NFCI llvm-svn: 313792
* CodeGen: support SwiftError SwiftCC on Windows x64Saleem Abdulrasool2017-09-203-0/+23
| | | | | | | | | | Add support for passing SwiftError through a register on the Windows x64 calling convention. This allows the use of swifterror attributes on parameters which is used by the swift front end for the `Error` parameter. This partially enables building the swift standard library for Windows x86_64. llvm-svn: 313791
* [llvm-readobj] Teach readobj to dump .res files (WindowsResource).Marek Sokolowski2017-09-2011-2/+442
| | | | | | | | | | This enables readobj to output Windows resource files (.res). This way, we'll be able to test .res outputs without comparing them byte-by-byte with "magic binary files" generated by MS toolchain. Differential Revision: https://reviews.llvm.org/D38058 llvm-svn: 313790
* Mark the __eval methods on independent_bits_engine (and ↵Marshall Clow2017-09-202-8/+8
| | | | | | __independent_bits_engine) as const, since they make no changes to the object. NFC. llvm-svn: 313789
* Fix assigning to _gp in linker scripts.Rafael Espindola2017-09-203-1/+9
| | | | | | | | | | | The previous logic was to try to detect if a linker script defined _gp by checking !ElfSym::MipsGp->Value. That doesn't work in all cases as the assigned value can be 0. We now just always defined it Writer.cpp and always overwrite it afterwards if needed. llvm-svn: 313788
* Rename K_MIPS64 to K_GNU64Jake Ehrlich2017-09-203-10/+10
| | | | | | | This patch renames K_MIPS64 to K_GNU64 as part of a change to add support for writing archives with 64-bit indexes in the symbol table. llvm-svn: 313787
* Re-land "[DebugInfo] Insert DW_OP_deref when spilling indirect DBG_VALUEs"Reid Kleckner2017-09-205-43/+380
| | | | | | | | | | | | | After r313775, it's easier to maintain a parallel BitVector of spilled locations indexed by location number. I wasn't able to build a good reduced test case for this iteration of the bug, but I added a more direct assertion that spilled values must use frame index locations. If this bug reappears, it won't only fire on the NEON vector code that we detected it on, but on medium-sized integer-only programs as well. llvm-svn: 313786
* Fix the SIGINT handlersAdrian McCarthy2017-09-202-9/+9
| | | | | | | | | | | | | | | | | 1. Fix a data race (g_interrupt_sent flag usage was not thread safe, signals can be handled on arbitrary threads) 2. exit() is not signal-safe, replaced it with the signal-safe equivalent _exit() (This differs from the patch on Phabrictor because I had to add `#include <atomic>` to get the definition of `std::atomic_flag`.) patch by lemo Differential Revision: https://reviews.llvm.org/D37926 llvm-svn: 313785
* Remove offset size check in nullptr arithmetic handlingAndrew Kaylor2017-09-204-7/+17
| | | | | | Differential Revision: https://reviews.llvm.org/D37042 llvm-svn: 313784
* [TableGen] Some optimizations to TableGen.Zachary Turner2017-09-202-44/+52
| | | | | | | | | This changes some STL data types to corresponding LLVM data types that have better performance characteristics. Differential Revision: https://reviews.llvm.org/D37957 llvm-svn: 313783
* [TableGen] Add a DenseMapInfo for MachineValueType.Zachary Turner2017-09-201-0/+21
| | | | | | | No functional change, just adding a DenseMapInfo and tombstone value so that MVT's can be put into a DenseMap / DenseSet. llvm-svn: 313782
* Revert r313771 "[SLP] Vectorize jumbled memory loads."Hans Wennborg2017-09-207-370/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This broke the buildbots, e.g. http://bb.pgr.jp/builders/test-llvm-i686-linux-RA/builds/391 > Summary: > This patch tries to vectorize loads of consecutive memory accesses, accessed > in non-consecutive or jumbled way. An earlier attempt was made with patch D26905 > which was reverted back due to some basic issue with representing the 'use mask' > jumbled accesses. > > This patch fixes the mask representation by recording the 'use mask' in the usertree entry. > > Change-Id: I9fe7f5045f065d84c126fa307ef6ebe0787296df > > Subscribers: mzolotukhin > > Reviewed By: ayal > > Differential Revision: https://reviews.llvm.org/D36130 > > Review comments updated accordingly > > Change-Id: I22ab0a8a9bac9d49d74baa81a08e1e486f5e75f0 > > Added a TODO for sortLoadAccesses API > > Change-Id: I3c679bf1865422d1b45e17ea28f1992bca660b58 > > Modified the TODO for sortLoadAccesses API > > Change-Id: Ie64a66cb5f9e2a7610438abb0e750c6e090f9565 > > Review comment update for using OpdNum to insert the mask in respective location > > Change-Id: I016d0c1b29874e979efc0205bbf078991f92edce > > Fixes '-Wsign-compare warning' in LoopAccessAnalysis.cpp and code rebase > > Change-Id: I64b2ea5e68c1d7b6a028f5ef8251c5a97333f89b llvm-svn: 313781
* Pacify a gcc -Wparentheses warningHans Wennborg2017-09-201-3/+3
| | | | llvm-svn: 313780
* Pacify gcc's -Wnum-compare after r313775Hans Wennborg2017-09-201-2/+4
| | | | llvm-svn: 313779
* llvm-dwarfdump: implement --recurse-depth=<N>Adrian Prantl2017-09-2013-29/+92
| | | | | | | | | | This patch implements the Darwin dwarfdump option --recurse-depth=<N>, which limits the recursion depth when selectively printing DIEs at an offset. Differential Revision: https://reviews.llvm.org/D38064 llvm-svn: 313778
* Add a special case for trivial alignment.Rafael Espindola2017-09-202-4/+15
| | | | | | | | | | | Normally to find the offset of a value in a section, we have to compute the value since the alignment is defined on the final address. If the alignment is trivial, we can skip the value computation. This allows us to know the offset even in cases where we cannot yet know the value. llvm-svn: 313777
* Fix a bit of UB in __independent_bits_engine. Fixes PR#34663Marshall Clow2017-09-201-2/+3
| | | | llvm-svn: 313776
* [DebugInfo] Use a MapVector to coalesce MachineOperand locationsReid Kleckner2017-09-202-56/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The new code should be linear in the number of DBG_VALUEs, while the old code was quadratic. NFC intended. This is also hopefully a more direct expression of the problem, which is to: 1. Rewrite all virtual register operands to stack slots or physical registers 2. Uniquely number those machine operands, assigning them location numbers 3. Rewrite all uses of the old location numbers in the interval map to use the new location numbers In r313400, I attempted to track which locations were spilled in a parallel bitvector indexed by location number. My code was broken because these location numbers are not stable during rewriting. Reviewers: aprantl, hans Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D38068 llvm-svn: 313775
* [InstCombine] Add select simplificationsQuentin Colombet2017-09-205-52/+84
| | | | | | | | | | | | | | | | | In these cases, two selects have constant selectable operands for both the true and false components and have the same conditional expression. We then create two arithmetic operations of the same type and feed a final select operation using the result of the true arithmetic for the true operand and the result of the false arithmetic for the false operand and reuse the original conditionl expression. The arithmetic operations are naturally folded as a consequence, leaving only the newly formed select to replace the old arithmetic operation. Patch by: Michael Berg <michael_c_berg@apple.com> Differential Revision: https://reviews.llvm.org/D37019 llvm-svn: 313774
* Add travis CI configuration fileJan Vesely2017-09-201-0/+42
| | | | | Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 313773
* Reland "[llvm-objcopy] Add support for .dynamic, .dynsym, and .dynstr"Jake Ehrlich2017-09-202-0/+0
| | | | | | | | | | | | | I did not upload two binaries that I reference in tests. This change adds support for sections involved in dynamic loading such as SHT_DYNAMIC, SHT_DYNSYM, and allocated string tables. The two added binaries used for tests can be downloaded here and here Differential Revision: https://reviews.llvm.org/D36560 llvm-svn: 313772
* [SLP] Vectorize jumbled memory loads.Mohammad Shahid2017-09-207-135/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch tries to vectorize loads of consecutive memory accesses, accessed in non-consecutive or jumbled way. An earlier attempt was made with patch D26905 which was reverted back due to some basic issue with representing the 'use mask' jumbled accesses. This patch fixes the mask representation by recording the 'use mask' in the usertree entry. Change-Id: I9fe7f5045f065d84c126fa307ef6ebe0787296df Subscribers: mzolotukhin Reviewed By: ayal Differential Revision: https://reviews.llvm.org/D36130 Review comments updated accordingly Change-Id: I22ab0a8a9bac9d49d74baa81a08e1e486f5e75f0 Added a TODO for sortLoadAccesses API Change-Id: I3c679bf1865422d1b45e17ea28f1992bca660b58 Modified the TODO for sortLoadAccesses API Change-Id: Ie64a66cb5f9e2a7610438abb0e750c6e090f9565 Review comment update for using OpdNum to insert the mask in respective location Change-Id: I016d0c1b29874e979efc0205bbf078991f92edce Fixes '-Wsign-compare warning' in LoopAccessAnalysis.cpp and code rebase Change-Id: I64b2ea5e68c1d7b6a028f5ef8251c5a97333f89b llvm-svn: 313771
* [cmake] Add an option to build llvm with IR PGOVedant Kumar2017-09-202-9/+23
| | | | | | | | | | | | This adds an LLVM_ENABLE_IR_PGO option to enable building llvm and its tools with IR PGO instrumentation. Usage: -DLLVM_BUILD_INSTRUMENTED=On -DLLVM_ENABLE_IR_PGO=On (both options must be enabled) Differential Revision: https://reviews.llvm.org/D38066 llvm-svn: 313770
* [cmake] Unmark LLVM_BUILD_INSTRUMENTED_COVERAGE as experimentalVedant Kumar2017-09-201-2/+2
| | | | | | | | The coverage bot has been stable for a while: http://lab.llvm.org:8080/coverage/coverage-reports/index.html llvm-svn: 313769
* [docs] Make a note of LLVM_BUILD_INSTRUMENTED_COVERAGEVedant Kumar2017-09-201-0/+5
| | | | llvm-svn: 313768
* Reland "[llvm-objcopy] Add support for .dynamic, .dynsym, and .dynstr"Jake Ehrlich2017-09-205-31/+237
| | | | | | | | | | | | | | I overzealously landed this before I was sure that another change wouldn't break the build that this change depends on. This change adds support for sections involved in dynamic loading such as SHT_DYNAMIC, SHT_DYNSYM, and allocated string tables. The two added binaries used for tests can be downloaded here and here Differential Revision: https://reviews.llvm.org/D36560 llvm-svn: 313767
* [ThinLTO] Fix dead stripping analysis for SamplePGOTeresa Johnson2017-09-203-3/+98
| | | | | | | | | | | | | | | | | | Summary: The fix for dead stripping analysis in the case of SamplePGO indirect calls to local functions (r313151) introduced the possibility of an infinite loop. Make sure we check for the value being already live after we update it for SamplePGO indirect call handling. Reviewers: danielcdh Subscribers: mehdi_amini, inglorion, llvm-commits, eraman Differential Revision: https://reviews.llvm.org/D38086 llvm-svn: 313766
OpenPOWER on IntegriCloud