summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clang-tidy] Clean up installation rulesShoaib Meenai2017-11-021-5/+6
| | | | | | | | | An installation rule for the executable with the correct component is already created by `add_clang_tool`, so the rule in this file is redundant. Correct the installation component for the Python scripts so that they also get installed by `install-clang-tidy`. llvm-svn: 317155
* Revert "Remove some of the go specific C bindings for debug info now that ↵Eric Christopher2017-11-022-0/+29
| | | | | | | | they've been migrated into the main C API." This reverts commits r317151 and 317152 llvm-svn: 317154
* [X86] Fix fast-isel-int-float-conversion testSteven Wu2017-11-021-12/+0
| | | | | | | Test is failing due to the revert in r317136. Fix the test to make all the bots happy. llvm-svn: 317153
* Fix for go bindings header to match previous commit.Eric Christopher2017-11-021-10/+0
| | | | llvm-svn: 317152
* Remove some of the go specific C bindings for debug info now that they've ↵Eric Christopher2017-11-021-19/+0
| | | | | | | | been migrated into the main C API. Fixes a go bindings breakage after r317135. llvm-svn: 317151
* [clang-rename] Use add_clang_toolShoaib Meenai2017-11-021-3/+1
| | | | | | | | | | `add_clang_tool` includes a call to `add_clang_executable`, but it also sets up the install rule, and adds an `install-*` target. The latter is required for using `LLVM_DISTRIBUTION_COMPONENTS`. Differential Revision: https://reviews.llvm.org/D39522 llvm-svn: 317150
* [clang-reorder-fields] Switch to add_clang_toolShoaib Meenai2017-11-021-3/+1
| | | | | | | | | | `add_clang_tool` invokes `add_clang_executable` internally, but it also takes care of setting up the install rule. It also adds an `install-*` build target, which is required for `LLVM_DISTRIBUTION_COMPONENTS`. Differential Revision: https://reviews.llvm.org/D39523 llvm-svn: 317149
* [cmake] Switch FATAL_ERROR to SEND_ERRORShoaib Meenai2017-11-021-2/+2
| | | | | | | | It's possible for multiple distribution components to have missing targets, and it's a lot more convenient to get all those errors in one shot rather than having to fix them individually. llvm-svn: 317148
* PR33746: Store the 'inline'ness of a static data member with the update recordRichard Smith2017-11-023-0/+34
| | | | | | | | | for instantiating its definition. We model the 'inline'ness as being instantiated with the static data member in order to track whether the declaration has become a definition yet. llvm-svn: 317147
* CodeGen: simplify EH personality selection (NFC)Saleem Abdulrasool2017-11-021-8/+9
| | | | | | | Fix a typo in the comment, reorder to ensure that the ordering matches across the ObjC/ObjC++ cases. NFCI. llvm-svn: 317146
* [Core] Comparison for unsigned >= 0 is redundant. NFCI.Davide Italiano2017-11-011-1/+1
| | | | llvm-svn: 317145
* [XML] Simplify lambda removing unused capture. NFCI.Davide Italiano2017-11-011-1/+1
| | | | llvm-svn: 317144
* [Interpreter] Remove unused variable usage. NFCI.Davide Italiano2017-11-011-2/+1
| | | | llvm-svn: 317143
* Revert "[libc++] Don't alias quick_exit if __ANDROID_API__ < 21"Dan Albert2017-11-011-5/+1
| | | | | | | | Broke the Darwin build bots. This reverts commit f56f1bba1ade4a408d403ff050d50e837bae47df. llvm-svn: 317142
* Update cl::opt<uint64_t> instances to cl::opt<unsigned long long>Mitch Phillips2017-11-012-6/+6
| | | | | | | | | | | | | | cl::opt<uint64_t> fails when parsing command line arguments. See https://bugs.llvm.org/show_bug.cgi?id=19665. Reviewers: pcc Subscribers: mgorny, llvm-commits, kcc Differential Revision: https://reviews.llvm.org/D38657 llvm-svn: 317141
* Fix missing -Wregister warning when 'register' is applied to a function ↵Richard Smith2017-11-014-2/+16
| | | | | | parameter. llvm-svn: 317140
* [yaml2obj][ELF] Add support for setting alignment in program headersJake Ehrlich2017-11-014-8/+77
| | | | | | | | | | | | | | Sometimes program headers have larger alignments than any of the sections they contain. Currently yaml2obj can't produce such files. A bug recently appeared in llvm-objcopy that failed in such a case. I'd like to be able to add tests to llvm-objcopy for such cases. This change adds an optional alignment parameter to program headers that will be used instead of calculating the alignment. Differential Revision: https://reviews.llvm.org/D39130 llvm-svn: 317139
* loop-unroll: teach remapInstruction to update dbg.value intrinsics.Adrian Prantl2017-11-012-1/+90
| | | | | | | | Fixes PR35112. https://bugs.llvm.org/show_bug.cgi?id=35112 llvm-svn: 317138
* [ASTMatchers] Fix some Clang-tidy modernize and Include What You Use ↵Eugene Zelenko2017-11-018-180/+327
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 317137
* Revert "Correct dwarf unwind information in function epilogue for X86"Petar Jovanovic2017-11-0199-1689/+32
| | | | | | | This reverts r317100 as it introduced sanitizer-x86_64-linux-autoconf buildbot failure (build #15606). llvm-svn: 317136
* [LLVM-C] Expose functions to create debug locations via DIBuilder.whitequark2017-11-017-1/+338
| | | | | | | | | | | | | | These include: * Several functions for creating an LLVMDIBuilder, * LLVMDIBuilderCreateCompileUnit, * LLVMDIBuilderCreateFile, * LLVMDIBuilderCreateDebugLocation. Patch by Harlan Haskins. Differential Revision: https://reviews.llvm.org/D32368 llvm-svn: 317135
* [X86] Use foreach in X86.td to combine some of the CPU names that are ↵Craig Topper2017-11-011-52/+40
| | | | | | obviously aliases. NFC llvm-svn: 317134
* [X86] Add CMOV feature to 'i686' processor, making it a proper alias of ↵Craig Topper2017-11-011-1/+1
| | | | | | | | pentiumpro which I believe it should be. This is consistent with current gcc behavior. llvm-svn: 317133
* [globalisel][regbank] Warn about MIR ambiguities when register bank/class ↵Daniel Sanders2017-11-013-0/+19
| | | | | | names clash. llvm-svn: 317132
* dotest: consistently call finalize_build_dictionary in debug info variantsPavel Labath2017-11-011-0/+2
| | | | | | | | | dwarf&dwo versions were doing it, but gmodules and dsym weren't. All this function does right now is pass OS=Android to make when targeting android. This enables us to run dotest without manually passing --env OS=Android. llvm-svn: 317130
* add LibCxxTuple.cpp, LibCxxQueue.cpp to xcode project file.Jason Molenda2017-11-011-0/+8
| | | | llvm-svn: 317129
* [X86][SSE] Add PACKUS support to LowerTruncateSimon Pilgrim2017-11-016-111/+101
| | | | | | | | Similar to the existing code to lower to PACKSS, we can use PACKUS if the input vector's leading zero bits extend all the way to the packed/truncated value. We have to account for pre-SSE41 targets not supporting PACKUSDW llvm-svn: 317128
* Rewrite FileOutputBuffer as two separate classes.Rui Ueyama2017-11-012-107/+129
| | | | | | | | | | | | | | | | | | | | This patch is to rewrite FileOutputBuffer as two separate classes; one for file-backed output buffer and the other for memory-backed output buffer. I think the new code is easier to follow because two different implementations are now actually separated as different classes. Unlike the previous implementation, the class that does not replace the final output file using rename(2) does not create a temporary file at all. Instead, it allocates memory using mmap(2) and use it. I think this is an improvement because it is now guaranteed that the temporary memory region doesn't trigger any I/O and there's now zero chance to leave a temporary file behind. Also, it shouldn't impose new restrictions because were using mmap IO too. Differential Revision: https://reviews.llvm.org/D39449 llvm-svn: 317127
* [libunwind] Don't use dl_iterate_phdr if __ANDROID_API__ < 21Dan Albert2017-11-011-0/+8
| | | | | | | | | | | | | | | | Summary: On ARM, dl_iterate_phdr is only implemented in the Android NDK version 21 or later: https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/link.h#55 Reviewers: thakis, danalbert Reviewed By: danalbert Subscribers: dtzWill, aemerson, srhines, kristof.beyls Differential Revision: https://reviews.llvm.org/D39468 llvm-svn: 317125
* [libc++] Don't alias quick_exit if __ANDROID_API__ < 21Dan Albert2017-11-011-1/+5
| | | | | | | | | | | | | | | | | | | | Summary: quick_exit() and at_quick_exit() were introduced in android NDK 21: https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/stdlib.h#55 This CL conditions `_LIBCPP_HAS_QUICK_EXIT` on `__ANDROID_API__ >= 21`. The only place this macro is used is in some using declarations: `using ::quick_exit`, `using ::at_quick_exit`. Also, add a missing include to sys/cdefs.h which is what defines `__BIONIC__`. Reviewers: thakis, danalbert, EricWF Reviewed By: danalbert Subscribers: srhines, krytarowski Differential Revision: https://reviews.llvm.org/D39479 llvm-svn: 317124
* [dsymutil, llvm-objcopy] Fix some Clang-tidy modernize and Include What You ↵Eugene Zelenko2017-11-0110-253/+491
| | | | | | Use warnings; other minor fixes (NFC). llvm-svn: 317123
* [X86] Add custom code to EVEX to VEX pass to turn unmasked 128-bit ↵Craig Topper2017-11-013-5/+32
| | | | | | | | | | VPALIGND/Q into VPALIGNR if the extended registers aren't being used. This will enable us to prefer VALIGND/Q during shuffle lowering in order to get the extended register encoding space when BWI isn't available. But if we end up not using the extended registers we can switch VPALIGNR for the shorter VEX encoding. Differential Revision: https://reviews.llvm.org/D39401 llvm-svn: 317122
* loop-rotate: avoid duplicating dbg.value intrinsics in the entry block.Adrian Prantl2017-11-012-0/+26
| | | | | | | | This fixes the second half of PR35113. This reapplies r317106 without modifications. llvm-svn: 317121
* loop-rotate: eliminate duplicate debug intrinsics after splicing.Adrian Prantl2017-11-012-1/+112
| | | | | | | | | Fixes part of PR35113. This reapplies r317105 with an additional check for isa<Instruction> as found by the bots. llvm-svn: 317120
* [fuzzer] Script to detect unbalanced allocation in -trace_malloc outputVitaly Buka2017-11-012-0/+120
| | | | | | | | | | Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39466 llvm-svn: 317119
* Include GUIDs from the same module when computing GUIDs that needs to be ↵Dehao Chen2017-11-014-27/+48
| | | | | | | | | | | | | | | | imported. Summary: In the compile phase of SamplePGO+ThinLTO, ICP is not invoked. Instead, indirect call targets will be included as function metadata for ThinIndex to buidl the call graph. This should not only include functions defined in other modules, but also functions defined in the same module, otherwise ThinIndex may find the callee dead and eliminate it, while ICP in backend will revive the symbol, which leads to undefined symbol. Reviewers: tejohnson Reviewed By: tejohnson Subscribers: sanjoy, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D39480 llvm-svn: 317118
* [globalisel][tablegen] Add support for multi-insn emissionDaniel Sanders2017-11-016-30/+238
| | | | | | | | | | | | | | The importer will now accept nested instructions in the result pattern such as (ADDWrr $a, (SUBWrr $b, $c)). This is only valid when the nested instruction def's a single vreg and the parent instruction consumes a single vreg where a nested instruction is specified. The importer will automatically create a vreg to connect the two using the type information from the pattern. This vreg will be constrained to the register classes given in the instruction definitions*. * REG_SEQUENCE is explicitly rejected because of this. The definition doesn't constrain to a register class and it therefore needs special handling. llvm-svn: 317117
* Revert 317016 and 317048Philip Reames2017-11-011-44/+50
| | | | | | The former appears to have introduced a miscompile in a stage2 clang build. Revert so I can investigate offline. llvm-svn: 317116
* [OpenMP] Fix race condition in omp_init_lockJonathan Peyton2017-11-012-3/+46
| | | | | | | | | | | | | | | | | | | | | This is a partial fix for bug 34050. This prevents callers of omp_set_lock (which does not hold __kmp_global_lock) from ever seeing an uninitialized version of __kmp_i_lock_table.table. It does not solve a use-after-free race condition if omp_set_lock obtains a pointer to __kmp_i_lock_table.table before it is updated and then attempts to dereference afterwards. That race is far less likely and can be handled in a separate patch. The unit test usually segfaults on the current trunk revision. It passes with the patch. Patch by Adam Azarchs Differential Revision: https://reviews.llvm.org/D39439 llvm-svn: 317115
* AMDGPU: Fix set but not used warnings related to AMDGPUASKonstantin Zhuravlyov2017-11-017-36/+32
| | | | | | Differential Revision: https://reviews.llvm.org/D39499 llvm-svn: 317114
* [clang-format] Make parseUnaryOperator non-recursive, NFCIKrasimir Georgiev2017-11-011-10/+8
| | | | | | | | | | | | | | | | | Summary: This patch makes the implementation of parseUnaryOperator non-recursive. We had a problem with a file starting with tens of thousands of +'es and -'es which caused clang-format to stack overflow. Reviewers: bkramer Reviewed By: bkramer Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D39498 llvm-svn: 317113
* [X86] Prevent fast isel from folding loads into the instructions listed in ↵Craig Topper2017-11-014-6/+177
| | | | | | | | | | | | | | hasPartialRegUpdate. This patch moves the check for opt size and hasPartialRegUpdate into the lower level implementation of foldMemoryOperandImpl to catch the entry point that fast isel uses. We're still folding undef register instructions in AVX that we should also probably disable, but that's a problem for another patch. Unfortunately, this requires reordering a bunch of functions which is why the diff is so large. I can do the function reordering separately if we want. Differential Revision: https://reviews.llvm.org/D39402 llvm-svn: 317112
* Adds code to PPC ISEL lowering to recognize half-word inserts from ↵Graham Yiu2017-11-014-5/+439
| | | | | | | | vector_shuffles, and use P9 shift and vector insert instructions instead of vperm. Differential Revision: https://reviews.llvm.org/D34160 llvm-svn: 317111
* Revert r317105 to investigate bot breakage.Adrian Prantl2017-11-012-109/+1
| | | | llvm-svn: 317110
* Revert r317106 to facilitate reverting r317105.Adrian Prantl2017-11-012-26/+0
| | | | llvm-svn: 317109
* LTO: Apply global DCE to ThinLTO modules at LTO opt level 0.Peter Collingbourne2017-11-014-32/+59
| | | | | | | | | | | | | | | | | | | | | | | | | This is necessary because DCE is applied to full LTO modules. Without this change, a reference from a dead ThinLTO global to a dead full LTO global will result in an undefined reference at link time. This problem is only observable when --gc-sections is disabled, or when targeting COFF, as the COFF port of lld requires all symbols to have a definition even if all references are dead (this is consistent with link.exe). This change also adds an EliminateAvailableExternally pass at -O0. This is necessary to handle the situation on Windows where a non-prevailing copy of a linkonce_odr function has an SEH filter function; any such filters must be DCE'd because they will contain a call to the llvm.localrecover intrinsic, passing as an argument the address of the function that the filter belongs to, and llvm.localrecover requires this function to be defined locally. Fixes PR35142. Differential Revision: https://reviews.llvm.org/D39484 llvm-svn: 317108
* [X86] Regnerate test to attempt to fix build bot failure.Craig Topper2017-11-011-0/+8
| | | | llvm-svn: 317107
* loop-rotate: avoid duplicating dbg.value intrinsics in the entry block.Adrian Prantl2017-11-012-0/+26
| | | | | | This fixes the second half of PR35113. llvm-svn: 317106
* loop-rotate: eliminate duplicate debug intrinsics after splicing.Adrian Prantl2017-11-012-1/+109
| | | | | | Fixes part of PR35113. llvm-svn: 317105
* [dsymutil][NFC} Rename thread related command line optionsJonas Devlieghere2017-11-012-7/+7
| | | | | | | | | | | This makes the command line options consistent with llvm-cov and llvm-profdata, which both use `-num-threads` and `-j`. This also addresses the conflict reported after landing D39355. Differential revision: https://reviews.llvm.org/D39496 llvm-svn: 317104
OpenPOWER on IntegriCloud