summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* getObjCEncodingForMethodDecl cannot fail. Simplify. NFC.John McCall2016-11-297-79/+53
| | | | llvm-svn: 288203
* Bitcode: Add a more comprehensive multi-module test now that we have both ↵Peter Collingbourne2016-11-291-2/+14
| | | | | | | | llvm-cat and llvm-modextract. Differential Revision: https://reviews.llvm.org/D27189 llvm-svn: 288202
* Add llvm-modextract tool.Peter Collingbourne2016-11-298-1/+122
| | | | | | | | | | This program is for testing features that rely on multi-module bitcode files. It takes a multi-module bitcode file, extracts one of the modules and writes it to the output file. Differential Revision: https://reviews.llvm.org/D26778 llvm-svn: 288201
* [StructurizeCFG] Fix infinite loop in rebuildSSA.Justin Lebar2016-11-292-1/+55
| | | | | | | | | Michel Dänzer reported that r288051, "[StructurizeCFG] Use range-based for loops", introduced a bug into rebuildSSA, wherein we were iterating over an instruction's use list while modifying it, without taking care to do this correctly. llvm-svn: 288200
* Add to llvm-objdump the -no-leading-headers option with the use of the ↵Kevin Enderby2016-11-292-6/+15
| | | | | | | | | | | | | -macho option. In some cases the leading headers of the file name, archive member and architecture slice name in the output of lvm-objdump is not wanted so the tool’s output can be directly used by scripts. This matches the -X option of the Apple otool(1) program. rdar://28491674 llvm-svn: 288199
* Add missing dependency.Peter Collingbourne2016-11-292-1/+2
| | | | llvm-svn: 288198
* Don't declare IsEnumDeclComplete as externReid Kleckner2016-11-291-2/+2
| | | | | | | | | Otherwise MSVC and clang-cl will see "extern inline" after merging redeclarations and emit it in all TUs that include Type.h and Decl.h. Noticed by inspection, since it's always the first thing to get emitted. llvm-svn: 288197
* Change Error unittest to use the LLVM_ENABLE_ABI_BREAKING_CHECKS instead of ↵Mehdi Amini2016-11-291-10/+10
| | | | | | | | | | NDEBUG This is consistent with the header (after r288087) and fixes the test for the configuration: -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF llvm-svn: 288196
* Bitcode: Introduce BitcodeWriter interface.Peter Collingbourne2016-11-2911-94/+254
| | | | | | | | | | This interface allows clients to write multiple modules to a single bitcode file. Also introduce the llvm-cat utility which can be used to create a bitcode file containing multiple modules. Differential Revision: https://reviews.llvm.org/D26179 llvm-svn: 288195
* [AArch64] Add a basic SchedMachineModel for Falkor.Chad Rosier2016-11-292-2/+29
| | | | | | Differential Revision: https://reviews.llvm.org/D26972 llvm-svn: 288194
* Support constant expression evaluation for wchar_t versions of simple stringRichard Smith2016-11-294-34/+191
| | | | | | functions, in order to support constexpr std::char_traits<wchar_t>. llvm-svn: 288193
* Use CallSite to simplify codeDavid Blaikie2016-11-291-5/+3
| | | | llvm-svn: 288192
* AMDGPU: Disallow exec as SMEM instruction operandMatt Arsenault2016-11-297-39/+177
| | | | | | | | | | | | | | | | | | | This is not in the list of valid inputs for the encoding. When spilling, copies from exec can be folded directly into the spill instruction which results in broken stores. This only fixes the operand constraints, more codegen work is required to avoid emitting the invalid spills. This sort of breaks the dbg.value test. Because the register class of the s_load_dwordx2 changes, there is a copy to SReg_64, and the copy is the operand of dbg_value. The copy is later dead, and removed from the dbg_value. llvm-svn: 288191
* AMDGPU: Use SGPR_64 for argument loweringsMatt Arsenault2016-11-291-7/+7
| | | | llvm-svn: 288190
* [LiveRangeEdit] Handle instructions with no defs correctly.Geoff Berry2016-11-291-1/+2
| | | | | | | | | | | | | | | | Summary: The code in LiveRangeEdit::eliminateDeadDef() that computes isOrigDef doesn't handle instructions in which operand 0 is not a def (e.g. KILL) correctly. Add a check that operand 0 is a def before doing the rest of the isOrigDef computation. Reviewers: qcolombet, MatzeB, wmi Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D27174 llvm-svn: 288189
* AMDGPU: Rename flat operands to match mubufMatt Arsenault2016-11-294-21/+21
| | | | | | | | | | Use vaddr/vdst for the same purposes. This also fixes a beg in SIInsertWaits for the operand check. The stored value operand is currently called data0 in the single offset case, not data. llvm-svn: 288188
* AMDGPU: Use else ifMatt Arsenault2016-11-291-10/+6
| | | | llvm-svn: 288187
* [sanitizer] Add macOS minimum deployment target to all compiler invocations ↵Kuba Mracek2016-11-2910-81/+27
| | | | | | | | | | in lit tests The Clang driver on macOS decides the deployment target based on various things, like your host OS version, the SDK version and some environment variables, which makes lit tests pass or fail based on your environment. Let's make sure we run all lit tests with `-mmacosx-version-min=${SANITIZER_MIN_OSX_VERSION}` (10.9 unless overriden). Differential Revision: https://reviews.llvm.org/D26929 llvm-svn: 288186
* AMDGPU: Materialize frame index before addMatt Arsenault2016-11-292-4/+10
| | | | | | | | | | | It isn't generally safe to fold the frame index directly into the operand since it will possibly not be an inline immediate after it is expanded. This surprisingly seems to produce better code, since the FI doesn't prevent folding other immediate operands. llvm-svn: 288185
* AMDGPU: Refactor immediate folding logicMatt Arsenault2016-11-291-14/+50
| | | | | | | | | | | | | Change the logic for when to fold immediates to consider the destination operand rather than the source of the materializing mov instruction. No change yet, but this will allow for correctly handling i16/f16 operands. Since 32-bit moves are used to materialize constants for these, the same bitvalue will not be in the register. llvm-svn: 288184
* [AArch64] add tests for bics; NFCSanjay Patel2016-11-291-0/+44
| | | | llvm-svn: 288183
* Use StringRefZ explicitly instead of const char *.Rui Ueyama2016-11-291-1/+1
| | | | | | | This patch is to avoid an implicit conversion from const char * to StringRefZ, to make it apparent where we are using StringRefZ. llvm-svn: 288182
* Add back some of the previous lldb-server dependenciesPavel Labath2016-11-291-0/+5
| | | | | | | | It seems a debug build of lldb-server will not complete without these, as the linker is not able to strip out code that aggressively. Add those back until I can figure out how to break the dependency chains. llvm-svn: 288181
* [AArch64] add tests to show select transforms; NFCSanjay Patel2016-11-291-0/+133
| | | | llvm-svn: 288180
* Revert "[GVN] Basic optimization remark support"Adam Nemet2016-11-295-89/+4
| | | | | | | | | This reverts commit r288046. Trying to see if the revert fixes a compiler crash during a stage2 LTO build with a GVN backtrace. llvm-svn: 288179
* Revert "[GVN, OptDiag] Include the value that is forwarded in load elimination"Adam Nemet2016-11-295-49/+7
| | | | | | | | | This reverts commit r288047. Trying to see if the revert fixes a compiler crash during a stage2 LTO build with a GVN backtrace. llvm-svn: 288178
* Revert "[GVN, OptDiag] Print the interesting instructions involved in missed ↵Adam Nemet2016-11-293-94/+2
| | | | | | | | | | | load-elimination" This reverts commit r288090. Trying to see if the revert fixes a compiler crash during a stage2 LTO build with a GVN backtrace. llvm-svn: 288177
* [AArch64] Fold spills of COPY of WZR/XZRGeoff Berry2016-11-292-0/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In AArch64InstrInfo::foldMemoryOperandImpl, catch more cases where the COPY being spilled is copying from WZR/XZR, but the source register is not in the COPY destination register's regclass. For example, when spilling: %vreg0 = COPY %XZR ; %vreg0:GPR64common without this change, the code in TargetInstrInfo::foldMemoryOperand() and canFoldCopy() that normally handles cases like this would fail to optimize since %XZR is not in GPR64common. So the spill code generated would be: %vreg0 = COPY %XZR STR %vreg instead of the new code generated: STR %XZR Reviewers: qcolombet, MatzeB Subscribers: mcrosier, aemerson, t.p.northover, llvm-commits, rengolin Differential Revision: https://reviews.llvm.org/D26976 llvm-svn: 288176
* Fix some Clang-tidy modernize-use-default and Include What You Use warnings; ↵Eugene Zelenko2016-11-296-19/+77
| | | | | | | | other minor fixes (NFC). This preparation to remove SetVector.h dependency on SmallSet.h. llvm-svn: 288175
* Fix some Clang-tidy modernize-use-default and Include What You Use warnings; ↵Eugene Zelenko2016-11-291-2/+8
| | | | | | | | other minor fixes (NFC). This preparation to remove SetVector.h dependency on SmallSet.h. llvm-svn: 288174
* Revert "Compiler-rt part of D26230: Add (constant) masked load/store support"Filipe Cabecinhas2016-11-291-102/+0
| | | | | | This reverts commit r288162. Buildbot clang-bpf-build fails running tests. llvm-svn: 288173
* Introduce StringRefZ class to represent null-terminated strings.Rui Ueyama2016-11-298-84/+95
| | | | | | | | | | | | | | StringRefZ is a class to represent a null-terminated string. String length is computed lazily, so it's more efficient than StringRef to represent strings in string table. The motivation of defining this new class is to merge functions that only differ in string types; we have many constructors that takes `const char *` or `StringRef`. With StringRefZ, we can merge them. Differential Revision: https://reviews.llvm.org/D27037 llvm-svn: 288172
* [docs] Typos and whitespace fixed in LTO docs.Mehdi Amini2016-11-291-21/+21
| | | | | | | | | | While reading the LTO docs I fixed few small typos and whitespace issues. Patch by: Jonas Devlieghere <jonas@devlieghere.com> Differential Revision: https://reviews.llvm.org/D27196 llvm-svn: 288171
* Avoid repeated calls to MVT getSizeInBits and getScalarSizeInBits(). NFCI.Simon Pilgrim2016-11-291-7/+12
| | | | llvm-svn: 288170
* Remove some OS-specific plugins from lldb-server dependenciesPavel Labath2016-11-291-29/+0
| | | | | | | | I don't believe the code in those plugins could be in any way useful for lldb-server, but I can't be sure if this will break some transitive dependencies. Builtbots should be able to tell us that. llvm-svn: 288169
* Suppress abi-breaking.h on cygming, for now.NAKAMURA Takumi2016-11-291-0/+2
| | | | | FIXME: Implement checks without weak for them. llvm-svn: 288168
* Fix a linefeed at eof.NAKAMURA Takumi2016-11-291-1/+1
| | | | llvm-svn: 288167
* Remove assorted other plugins which are not needed by lldb-serverPavel Labath2016-11-291-14/+0
| | | | | | language runtime, structured data, sanitizers, process plugins. llvm-svn: 288166
* Protect std::array tests under noexceptionsRoger Ferrer Ibanez2016-11-291-3/+14
| | | | | | | | Skip tests that expect exceptions be thrown. Also add missing asserts. Differential Revision: https://reviews.llvm.org/D27095 llvm-svn: 288165
* Remove dynamic loader, platform and ABI plugins from lldb-server dependenciesPavel Labath2016-11-291-27/+0
| | | | | | These packages are not used on the server. llvm-svn: 288164
* [OpenCL] Prevent generation of globals in non-constant AS for OpenCL.Anastasia Stulova2016-11-292-3/+26
| | | | | | | | | | Avoid using shortcut for const qualified non-constant address space aggregate variables while generating them on the stack such that the alloca object is used instead of a global variable containing initializer. Review: https://reviews.llvm.org/D27109 llvm-svn: 288163
* Compiler-rt part of D26230: Add (constant) masked load/store supportFilipe Cabecinhas2016-11-291-0/+102
| | | | | | | | | | | | | | | | Summary: Unfortunately, there is no way to emit an llvm masked load/store in clang without optimizations, and AVX enabled. Unsure how we should go about making sure this test only runs if it's possible to execute AVX code. Reviewers: kcc, RKSimon, pgousseau Subscribers: kubabrecka, dberris, llvm-commits Differential Revision: https://reviews.llvm.org/D26506 llvm-svn: 288162
* [CVP] Remove use of removed flag (-cvp-dont-process-adds) from the testArtur Pilipenko2016-11-291-1/+1
| | | | | | The flag was removed by 288154 llvm-svn: 288161
* [DeLICM] Add pass boilerplate code.Michael Kruse2016-11-296-0/+155
| | | | | | | | | | Add an empty DeLICM pass, without any functional parts. Extracting the boilerplate from the the functional part reduces the size of the code to review (https://reviews.llvm.org/D24716) Suggested-by: Tobias Grosser <tobias@grosser.es> llvm-svn: 288160
* Specify the dependencies of lldb-server manuallyPavel Labath2016-11-291-1/+209
| | | | | | | | | | | | | | | | | | | | | Summary: This basically just inlines the LLDBDependencies.cmake file into lldb-server CMakeLists.txt. The reason is that most of these dependencies are not actually necessary for lldb-server (some of them can't be removed because of cross-dependencies, but most of the plugins can). I intend to start cleaning these up in follow-up commits, but I want to do this first, so the subsequent ones can be easily reverted if they don't build in some configurations. When I cleaned these up locally, I was able to get a 30%--50% improvement in lldb-server size. Reviewers: zturner, beanz, tfiala Subscribers: danalbert, srhines, lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D26975 llvm-svn: 288159
* Protect std::string tests under libcpp-no-exceptionsRoger Ferrer Ibanez2016-11-292-5/+19
| | | | | | | | | Skip tests that expect an exception be thrown and/or disable unreachable catch handlers. Differential Revision: https://reviews.llvm.org/D26612 llvm-svn: 288158
* Protect std::{,unordered_}map tests under noexceptionsRoger Ferrer Ibanez2016-11-292-2/+18
| | | | | | | | Skip tests that use exceptions Differential Revision: https://reviews.llvm.org/D27093 llvm-svn: 288157
* Protect locale tests under noexceptionsRoger Ferrer Ibanez2016-11-294-4/+16
| | | | | | | | Skip tests that expect exceptions be thrown. Differential Revision: https://reviews.llvm.org/D27096 llvm-svn: 288156
* Protect test for dynarray under libcpp-no-exceptionsRoger Ferrer Ibanez2016-11-291-1/+6
| | | | | | | | This test expects an exception be thrown. Differential Revision: https://reviews.llvm.org/D26611 llvm-svn: 288155
* [CVP] Remove cvp-dont-process-adds flagArtur Pilipenko2016-11-291-5/+0
| | | | | | The flag was introduced because the optimization controlled by the flag initially caused regressions. All the regressions were fixed some time ago and the flag has been false for quite a while. llvm-svn: 288154
OpenPOWER on IntegriCloud