summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] Enable IndirectBrExpandPassDerek Schuff2019-07-034-9/+73
| | | | | | | | | | | | | Wasm doesn't have a direct way to lower indirectbr, so hook up the IndirectBrExpandPass to lower indirectbr into a switch. Fixes PR42498 Reviewers: aheejin Differential Revision: https://reviews.llvm.org/D64161 llvm-svn: 365096
* AMDGPU: Add pass to lower SGPR spillsMatt Arsenault2019-07-039-33/+346
| | | | | | | | | | | | | | | This is split out from my patches to split register allocation into a separate SGPR and VGPR phase, and has some parts that aren't yet used (like maintaining LiveIntervals). This simplifies making the frame pointer register callee saved. As it is now, the code to determine callee saves needs to predict all the possible SGPR spills and how many callee saved VGPRs are needed. By handling this before PrologEpilogInserter, it's possible to just check the spill objects that already exist. Change-Id: I29e6df4034afcf949e06f8ef44206acb94696f04 llvm-svn: 365095
* [JumpThreading] Fix threading with unusual PHI nodes.Eli Friedman2019-07-035-25/+81
| | | | | | | | | | | | | | | | | | | | If the block being cloned contains a PHI node, in general, we need to clone that PHI node, even though it's trivial. If the operand of the PHI is an instruction in the block being cloned, the correct value for the operand doesn't exist until SSAUpdater constructs it. We usually don't hit this issue because we try to avoid threading across loop headers, but it's possible to hit this in some cases involving irreducible CFGs. I added a flag to allow threading across loop headers to make the testcase easier to understand. Thanks to Brian Rzycki for reducing the testcase. Fixes https://bugs.llvm.org/show_bug.cgi?id=42085. Differential Revision: https://reviews.llvm.org/D63913 llvm-svn: 365094
* GlobalISel: Fix widenScalar for pointer typed G_MERGE_VALUESMatt Arsenault2019-07-032-1/+84
| | | | llvm-svn: 365093
* cmake: Add CLANG_LINK_CLANG_DYLIB optionTom Stellard2019-07-0339-45/+86
| | | | | | | | | | | | | | | | Summary: Setting CLANG_LINK_CLANG_DYLIB=ON causes clang tools to link against libclang_shared.so instead of the individual component libraries. Reviewers: mgorny, beanz, smeenai, phosek, sylvestre.ledru Subscribers: arphaman, cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63503 llvm-svn: 365092
* [Bitcode] Move Bitstream to a separate libraryFrancis Visoiu Mistrih2019-07-0357-62/+129
| | | | | | | | | | | | | | | | | | | | | | | | | This moves Bitcode/Bitstream*, Bitcode/BitCodes.h to Bitstream/. This is needed to avoid a circular dependency when using the bitstream code for parsing optimization remarks. Since Bitcode uses Core for the IR part: libLLVMRemarks -> Bitcode -> Core and Core uses libLLVMRemarks to generate remarks (see IR/RemarkStreamer.cpp): Core -> libLLVMRemarks we need to separate the Bitstream and Bitcode part. For clang-doc, it seems that it doesn't need the whole bitcode layer, so I updated the CMake to only use the bitstream part. Differential Revision: https://reviews.llvm.org/D63899 llvm-svn: 365091
* Refactor ObjectFile::GetSDKVersionRaphael Isemann2019-07-034-53/+23
| | | | | | | | | | | | | | | | Summary: This patch modernizes the GetSDKVersion API and hopefully prevents problems such as the ones discovered in D61218. Reviewers: aprantl, jasonmolenda, clayborg Reviewed By: aprantl, clayborg Subscribers: clayborg, labath, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D61233 llvm-svn: 365090
* [WebAssembly][NFC] simplify SjLj inline assembly testGuanzhong Chen2019-07-031-10/+4
| | | | | | | | | | | | | | | | | Summary: Per feedback in D64115, simplify the test. `hidden` is left in though, because every test in the file has it. Reviewers: aheejin, tlively Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64117 llvm-svn: 365089
* [WebAssembly] Add option to emit passive segmentsThomas Lively2019-07-0313-70/+329
| | | | | | | | | | | | | | | | | | | | | | | Summary: Adds `--passive-segments` and `--active-segments` flags to control what kind of segments are emitted. For now the default is always to emit active segments so this is not a breaking change, but in the future the default will be changed to passive segments when shared memory is requested and active segments otherwise. When passive segments are emitted, corresponding memory.init and data.drop instructions are emitted in a `__wasm_init_memory` function that is automatically called at the beginning of `__wasm_call_ctors`. Reviewers: sbc100, aheejin, dschuff Subscribers: azakai, dschuff, jgravelle-google, sunfish, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59343 llvm-svn: 365088
* Revert "[AMDGPU] Kernel arg metadata: added support for "__hip_texture" type."Matt Arsenault2019-07-033-34/+0
| | | | | | | | This reverts commit r365073. This is crashing, and is improperly relying on IR type names. llvm-svn: 365087
* [Docs] Remove stale builderJonas Devlieghere2019-07-031-1/+0
| | | | llvm-svn: 365086
* [analyzer] exploded-graph-rewriter: Implement a black-and-white color scheme.Artem Dergachev2019-07-032-16/+30
| | | | | | | | For accessibility! Differential Revision: https://reviews.llvm.org/D64153 llvm-svn: 365085
* Revert "[llvm-ar][test] Add to MRI test coverage"JF Bastien2019-07-035-160/+0
| | | | | | | This reverts commit 250015bacf7f255abcfb646fb8b6b56ce8be7e01. r365039 was re-commit of D63197 and failed on Mac. Reid XFAIL'd it, but I'd rather jsut revert and have it fixed properly. llvm-svn: 365084
* [Docs] Update documentation build instructions.Jonas Devlieghere2019-07-031-3/+3
| | | | | | | Given that we use Ninja as the build system in the instructions below, we might as well use it to build the documentation as well. llvm-svn: 365083
* Remove code-signing.txt now that it's part of the docsJonas Devlieghere2019-07-031-69/+0
| | | | | | | The file's content is part of the website: https://lldb.llvm.org/resources/build.html llvm-svn: 365082
* [Docs] Unify build instructionsJonas Devlieghere2019-07-031-244/+243
| | | | | | | | | | The current build instructions are structured according the host platform. Instead of having instructions on how to build with CMake repeated for every platform, I unified them, using subsections if things are different for between platforms. I also added the code signing instructions, which were hidden in a text file in the repository. llvm-svn: 365081
* Add tests for regex_match ambiguity (aka LWG2273). NFC. Reviewed as ↵Marshall Clow2019-07-033-2/+50
| | | | | | https://reviews.llvm.org/D63051 llvm-svn: 365080
* Teach ValueTracking that aarch64.irg result aliases its input.Evgeniy Stepanov2019-07-032-1/+20
| | | | | | | | | | | | Reviewers: javed.absar, olista01 Subscribers: kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64103 llvm-svn: 365079
* Fixed a link in ReleaseNotes.rst (follow-up to r365007)Dmitri Gribenko2019-07-031-1/+1
| | | | llvm-svn: 365078
* [LoopBase] Strengthen isLoopExiting by requiring that BB must be inside the ↵Florian Hahn2019-07-031-1/+2
| | | | | | | | | | | | | | | | loop. Currently isLoopExiting returns true for BBs that are not part of the loop. To avoid hiding subtle bugs, this patch adds an assertion to make sure the passed BB is inside the loop Reviewers: reames, efriedma, hfinkel, arsenm, nhaehnle Reviewed By: reames Differential Revision: https://reviews.llvm.org/D63952 llvm-svn: 365077
* Try to XFAIL mri-utf8.test on MacReid Kleckner2019-07-031-18/+21
| | | | llvm-svn: 365076
* [LFTR] Use SCEVExpander for the pointer limit case instead of manual IR genPhilip Reames2019-07-036-27/+19
| | | | | | As noted in the test change, this is not trivially NFC, but all of the changes in output are cases where the SCEVExpander form is more canonical/optimal than the hand generation. llvm-svn: 365075
* Fix tuple's conditionally explicit constructors for very weird userEric Fiselier2019-07-032-1/+24
| | | | | | | | | | | | types. It seems some people like to write types that can explicitly convert to anything, but cannot be used to explicitly construct anything. This patch makes tuple tolerate such types, as is required by the standard. llvm-svn: 365074
* [AMDGPU] Kernel arg metadata: added support for "__hip_texture" type.Konstantin Pyzhov2019-07-033-0/+34
| | | | | | | | | Summary: Hip texture type is equivalent to OpenCL image. So, we need to set the Image type for kernel arguments with __hip_texture type. Differential revision: https://reviews.llvm.org/D63850 llvm-svn: 365073
* [LFTR] Remove a stray variable shadow *of the same value* [NFC]Philip Reames2019-07-031-1/+0
| | | | llvm-svn: 365072
* [LFTR] Style and comment changes to clarify the narrow vs wide bitwidth ↵Philip Reames2019-07-031-17/+18
| | | | | | evaluation behavior [NFC] llvm-svn: 365071
* [LFTR] Sink the decision not use truncate scheme for constants into ↵Philip Reames2019-07-031-46/+43
| | | | | | | | genLoopLimit [NFC] We might as well just evaluate the constants using SCEV, and having the cases grouped makes the logic slightly easier to read anyway. llvm-svn: 365070
* Fix precedence in assert from r364961Jessica Paquette2019-07-031-1/+2
| | | | | | | | Precedence was wrong in an assert added in r364961. Add braces around the assertion condition to make it right. See: https://reviews.llvm.org/D64084 llvm-svn: 365069
* [libc++] Update availability markup for Filesystem on Apple platformsLouis Dionne2019-07-032-11/+11
| | | | llvm-svn: 365068
* [LFTR] Remove falsely generalized (dead) code [NFC]Philip Reames2019-07-031-5/+2
| | | | llvm-svn: 365067
* [LFTR] Hoist extend expressions outside of loops w/o waiting for LICMPhilip Reames2019-07-037-59/+124
| | | | | | | | The motivation for this is two fold: 1) Make the output (and thus tests) a bit more readable to a human trying to understand the result of the transform 2) Reduce spurious diffs in a potential future change to restructure all of this logic to use SCEVExpander (which hoists by default) llvm-svn: 365066
* [clang-scan-deps] use `-Wno-error` when scanning for dependenciesAlex Lorenz2019-07-034-0/+25
| | | | | | | | | Warnings can be promoted to errors. But that shouldn't prevent us from getting the dependencies! Differential Revision: https://reviews.llvm.org/D64149 llvm-svn: 365065
* [macCatalyst] Print out macCatalyst in llvm-objdump for the platformAlex Lorenz2019-07-033-3/+3
| | | | | | 'macCatalyst' is more readable than 'maccatalyst'. llvm-svn: 365064
* [GlobalISel][AArch64] Use getConstantVRegValWithLookThrough for selectArithImmedJessica Paquette2019-07-033-16/+55
| | | | | | | | | | | Instead of just stopping to see if we have a G_CONSTANT, instead, look through G_TRUNCs, G_SEXTs, and G_ZEXTs. This gives an average ~1.3% code size improvement on CINT2000 at -O3. Differential Revision: https://reviews.llvm.org/D64108 llvm-svn: 365063
* [X86] Update test; NFCRobert Lougher2019-07-031-8/+8
| | | | | | This updates pr38743.ll after D62605. llvm-svn: 365062
* [X86] Avoid SFB - Skip meta instructionsRobert Lougher2019-07-033-4/+181
| | | | | | | | | | | This patch generalizes the fix in D61680 to ignore all meta instructions, not just debug info. Patch by Chris Dawson. Differential Revision: https://reviews.llvm.org/D62605 llvm-svn: 365061
* [Bitcode] Update CHECK-DAG usage in testsJoel E. Denny2019-07-033-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adjusts tests not to depend on deprecated FileCheck behavior that permits overlapping matches within a block of `CHECK-DAG` directives: 1. `thinlto-function-summary-originalnames.ll`: The directive with the pattern `<COMBINED` is surely intended to match `<COMBINED ` (note the trailing space), but it instead matches `<COMBINED_GLOBALVAR_INIT_REFS`, for which there is a separate directive. With the deprecated behavior, both directives match the latter text and neither match the former text. I've adjusted the former directive so it matches only the former text. 2. `thinlto-summary-local-5.0.ll`: Two directives have identical patterns when they were clearly meant to have different patterns. 3. `upgrade-pointer-address-space.ll`: There are three identical directives but only two occurrences of the matching text. With the deprecated behavior, they always match exactly the same text, so the behavior can't have been useful. I removed one of the directives and converted the other two from `CHECK-DAG` to `CHECK`. Reviewed By: probinson, aprantl Differential Revision: https://reviews.llvm.org/D64036 llvm-svn: 365060
* Add plugin.process.gdb-remote.use-libraries-svr4 optionAntonio Afonso2019-07-031-7/+36
| | | | | | | | | | | | | | | | | | | | | Summary: This option allow the toggling of the libraries-svr4 usage in ProcessGDBRemote. It's a follow up of https://reviews.llvm.org/D62503#1564296 and it's meant to test / tweak this new packet with, hopefully, minimum impact and in a faster way. Enable it with `settings set plugin.process.gdb-remote.use-libraries-svr4 true`. For now, by default it's false. I didn't put tests up for this but I did test it manually. Reviewers: labath, jankratochvil Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D64112 llvm-svn: 365059
* [CodeGen] Make branch funnels pass the machine verifierFrancis Visoiu Mistrih2019-07-036-13/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We previously marked all the tests with branch funnels as `-verify-machineinstrs=0`. This is an attempt to fix it. 1) `ICALL_BRANCH_FUNNEL` has no defs. Mark it as `let OutOperandList = (outs)` 2) After that we hit an assert: ``` Assertion failed: (Op.getValueType() != MVT::Other && Op.getValueType() != MVT::Glue && "Chain and glue operands should occur at end of operand list!"), function AddOperand, file /Users/francisvm/llvm/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp, line 461. ``` The chain operand was added at the beginning of the operand list. Move that to the end. 3) After that we hit another verifier issue in the pseudo expansion where the registers used in the cmps and jmps are not added to the livein lists. Add the `EFLAGS` to all the new MBBs that we create. PR39436 Differential Review: https://reviews.llvm.org/D54155 llvm-svn: 365058
* [X86] ComputeNumSignBitsForTargetNode - add target shuffle support.Simon Pilgrim2019-07-033-33/+50
| | | | llvm-svn: 365057
* [NFC][InstCombine] onehot_merge.ll: add last few tests in the state they ↵Roman Lebedev2019-07-031-0/+39
| | | | | | regress to in D62818 llvm-svn: 365056
* [SLP] add tests for bitcasted vector pointer load; NFCSanjay Patel2019-07-031-0/+102
| | | | | | | | I'm not sure if this falls within the scope of SLP, but we could create vector loads for some of these patterns. llvm-svn: 365055
* Use getAllOnesConstants instead of -1 in DAGCombiner. NFCAmaury Sechet2019-07-031-1/+1
| | | | llvm-svn: 365054
* [SCEV] Preserve flags on add/muls in getSCEVATScopePhilip Reames2019-07-031-2/+2
| | | | | | | | We haven't changed the set of users, just specialized an operand for those users. Given that, the previous wrap flags must still be correct. Sorry for the lack of test case. Noticed this while working on something else, and haven't figured out to exercise this standalone. llvm-svn: 365053
* [scudo][standalone] Link tests against libatomicKostya Kortchinsky2019-07-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | Summary: Some clang versions (< 6.0) do not inline the atomic builtin functions leaving unresolved references to `__atomic_load_8` and so on (seems to be mostly 64-bit atomics on 32-bit platforms). I tried without success to use some cmake magic to detect when that would be the case, and decided to fall back to unconditionally linking libatomic. Reviewers: morehouse, eugenis, vitalybuka, hctim, tejohnson Reviewed By: tejohnson Subscribers: mgorny, delcypher, jfb, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D64134 llvm-svn: 365052
* [DAGCombine] More diamong carry pattern optimization.Amaury Sechet2019-07-033-44/+117
| | | | | | | | | | | | | | | Summary: This diff improve the capability of DAGCOmbine to generate linear carries propagation in presence of a diamond pattern. It is now able to match a large variety of different patterns rather than some hardcoded one. Arguably, the codegen in test cases is not better, but this is to be expected. The goal of this transformation is more about canonicalisation than actual optimisation. Reviewers: hfinkel, RKSimon, craig.topper Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D57302 llvm-svn: 365051
* [X86][AVX] combineX86ShufflesRecursively - peek through extract_subvectorSimon Pilgrim2019-07-035-88/+81
| | | | | | If we have more then 2 shuffle ops to combine, try to use combineX86ShuffleChainWithExtract to see if some are from the same super vector. llvm-svn: 365050
* [ELF][RISCV] Error on R_RISCV_PCREL_LO12_[IS] that point to absolute symbolsFangrui Song2019-07-032-0/+12
| | | | | | | | | | | | | | The referenced symbol is expected to point to an R_RISCV_*_HI20 relocation. An absolute symbol has no associated section, therefore there cannot be a matching R_RISCV_*_HI20. This fixes the crash reported by PR42038. For reference, ld.bfd errors: (.init+0x4): dangerous relocation: %pcrel_lo missing matching %pcrel_hi Differential Revision: https://reviews.llvm.org/D63273 llvm-svn: 365049
* Revert D63432 "[ELF] Allow placing SHF_MERGE sections with different ↵Fangrui Song2019-07-034-86/+49
| | | | | | | | | | | | | | | | alignments into the same MergeSyntheticSection" This reverts r365015. David Zarzycki reported this change broke stage2 and stage3 tests. The root cause is still not very clear, but I guess some SHF_MERGE sections with the same name have different alignments. They were not merged before but were merged after r365015. Something that assumes address uniqueness of such mergeable data caused the bug. llvm-svn: 365048
* [ThinLTO] Fix gcc warnings from commitTeresa Johnson2019-07-031-1/+1
| | | | | | | | Remove an unnecessary const from an Optional return type introduced in r364960 that gcc 7.4.0 warns about. It is unnecessary and possibly incorrect. llvm-svn: 365047
OpenPOWER on IntegriCloud