summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Re-apply patch r279045.Kelvin Li2016-10-2540-13/+4910
| | | | llvm-svn: 285066
* Fix diagnostic format string for err_os_log_argument_to_bigBenjamin Kramer2016-10-252-1/+4
| | | | | | | | Patch by Sam McCall, test case by me. Differential Revision: https://reviews.llvm.org/D25936 llvm-svn: 285065
* fix warningRafael Espindola2016-10-251-0/+1
| | | | llvm-svn: 285064
* [DAGCombine] Preserve shuffles when one of the vector operands is constantZvi Rackover2016-10-252-88/+101
| | | | | | | | | | | | | | | | | | | | Summary: Do *not* perform combines such as: vector_shuffle<4,1,2,3>(build_vector(Ud, C0, C1 C2), scalar_to_vector(X)) -> build_vector(X, C0, C1, C2) Keeping the shuffle allows lowering the constant build_vector to a materialized constant vector (such as a vector-load from the constant-pool or some other idiom). Reviewers: delena, igorb, spatel, mkuper, andreadb, RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25524 llvm-svn: 285063
* Update for llvm change.Rafael Espindola2016-10-251-21/+14
| | | | llvm-svn: 285062
* Make the LTO comdat api more symbol table friendly.Rafael Espindola2016-10-253-24/+54
| | | | | | | | | | | | | | | | | | | | | | In an IR symbol table I would expect the comdats to be represented as: - A table of strings, one for each comdat name. - Each symbol has an optional index into that table. The natural api for accessing that would be InputFile: ArrayRef<StringRef> getComdatTable() const; Symbol: int getComdatIndex() const; This patch implements an API as close to that as possible. The implementation on top of the current IRObjectFile is a bit hackish, but should map just fine over a symbol table and is very convenient to use. llvm-svn: 285061
* include-fixer: Don't overwrite buffer changesManuel Klimek2016-10-251-1/+7
| | | | | | | | | Raise a signal if the buffer has been modified before replacing it, to avoid overwriting users' changes. Patch by Philipp Stephani. llvm-svn: 285060
* Load clang-include-fixer.el from the unit test suite so that the unit tests ↵Manuel Klimek2016-10-251-0/+2
| | | | | | | | can run in batch mode. Patch by Philipp Stephani. llvm-svn: 285059
* Include full filename range for missing includesErik Verbruggen2016-10-252-1/+10
| | | | | | For the purpose of highlighting in an IDE. llvm-svn: 285057
* Fix 'unknown documentation command' warning rangesErik Verbruggen2016-10-252-4/+10
| | | | | | | | | Warnings generated by -Wdocumentation-unknown-command did only have a start location, not a full source range. This resulted in only the "carret" being show in messages, and IDEs highlighting only the single initial character. llvm-svn: 285056
* Fix an unused warning in WebAssemblyInstPrinter with NDEBUG.Benjamin Kramer2016-10-251-0/+1
| | | | | | | | Patch by Sam McCall! Differential Revision: https://reviews.llvm.org/D25934 llvm-svn: 285055
* [X86][AVX512][Clang][Intrinsics][reduce] Adding missing reduce (Operators: ↵Michael Zuckerman2016-10-252-0/+679
| | | | | | | | | | | | | | | | | | | | | | +,*,&&,||) intrinsics to Clang Committed after LGTM and check-all Vector-reduction arithmetic accepts vectors as inputs and produces scalars as outputs. This class of vector operation forms the basis of many scientific computations. In vector-reduction arithmetic, the evaluation off is independent of the order of the input elements of V. Used bisection method. At each step, we partition the vector with previous step in half, and the operation is performed on its two halves. This takes log2(n) steps where n is the number of elements in the vector. Reviwer: 1. igorb 2. craig.topper Differential Revision: https://reviews.llvm.org/D25527 llvm-svn: 285054
* [AVX-512] Add support for creating SIGN_EXTEND_VECTOR_INREG and ↵Craig Topper2016-10-254-38/+47
| | | | | | | | | | | | | | ZERO_EXTEND_VECTOR_INREG for 512-bit vectors to support vpmovzxbq and vpmovsxbq. Summary: The one tricky thing about this is that the sign/zero_extend_inreg uses v64i8 as an input type which isn't legal without BWI support. Though the vpmovsxbq and vpmovzxbq instructions themselves don't require BWI. To support this we need to add custom lowering for ZERO_EXTEND_VECTOR_INREG with v64i8 input. This can mostly reuse the existing sign extend code with a couple checks for sign extend vs zero extend added. Reviewers: delena, RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25594 llvm-svn: 285053
* GlobalDCE: Restore a statement accidentally removed in r285048.Peter Collingbourne2016-10-251-0/+1
| | | | llvm-svn: 285052
* MachineInstrBundle: Pass iterators to getBundle(Start|End); NFCMatthias Braun2016-10-256-26/+29
| | | | | | | | This is a function to go backwards in a block to find the first instruction in a bundle, so iterator is a more natural choice for parameter/return rather than a reference to a MachineInstruction. llvm-svn: 285051
* IR: Deduplicate getParent() functions on derived classes of GlobalValue into ↵Peter Collingbourne2016-10-257-24/+6
| | | | | | the base class. NFCI. llvm-svn: 285050
* [libFuzzer] simplify the code for use_cmp, also use the position hint when ↵Kostya Serebryany2016-10-259-102/+130
| | | | | | available, add a test llvm-svn: 285049
* GlobalDCE: Deduplicate code. NFCI.Peter Collingbourne2016-10-251-35/+18
| | | | llvm-svn: 285048
* Fix handling of %% format specifier in os_log builtins.Mehdi Amini2016-10-252-9/+20
| | | | | | | Returning `false` was stopping the parsing of further arguments, which wasn't intended. llvm-svn: 285047
* [InstCombine] auto-generate checksSanjay Patel2016-10-251-39/+66
| | | | llvm-svn: 285046
* [InstCombine] auto-generate checksSanjay Patel2016-10-251-74/+102
| | | | llvm-svn: 285045
* [WebAssembly] Reorder load/store operands to match binary encoding.Dan Gohman2016-10-254-294/+296
| | | | | | | The p2align operand of a load/store is encoded before the offset operand; reorder the MachineInstr operands accordingly. llvm-svn: 285044
* [llvm-cov] Do not print out the filename of the object fileVedant Kumar2016-10-2515-56/+25
| | | | | | | | | When we load coverage data from multiple objects, we don't have a way to attribute a source object to a function record. Printing out the object filename next to the source filename is already not very useful: soon, it'll actually become misleading. Stop printing out the filename now. llvm-svn: 285043
* Add dependency from clangCodeGen to clangAnalysisMehdi Amini2016-10-241-0/+1
| | | | | | This is unbreaking the build with shared library after r285019. llvm-svn: 285042
* test/CodeGen/builtins.c: reinstate #ifdef __x86_64__ around __builtin_longjmpMehdi Amini2016-10-241-0/+5
| | | | | | Unadvertently removed in r285019 llvm-svn: 285041
* [WebAssembly] Implement more WebAssembly binary encoding.Dan Gohman2016-10-2416-131/+126
| | | | | | | | | | | | This changes locals from being declared by the emitLocal hook in WebAssemblyTargetStreamer, rather than with an instruction. After exploring the infastructure in LLVM more, this seems to make more sense since declaring locals doesn't use an encoded opcode. This also adds more 0xd opcodes, type encodings, and miscellaneous binary encoding bits. llvm-svn: 285040
* CodeGen/Passes: Pass MachineFunction as functor arg; NFCMatthias Braun2016-10-244-16/+18
| | | | | | | | Passing a MachineFunction as argument is more natural and avoids an unnecessary round-trip through the logic determining the correct Subtarget because MachineFunction already has a reference anyway. llvm-svn: 285039
* [Basic] Support 32-bit x86 and ARM targets for FuchsiaPetr Hosek2016-10-241-4/+12
| | | | | | | | | Fuchsia has experimental support for 32-bit x86 and ARM targets, add them to the list of supported targets. Differential Revision: https://reviews.llvm.org/D25838 llvm-svn: 285038
* Link clangCodeGen with clangAnalysis required after r284990.Artem Belevich2016-10-241-0/+1
| | | | | | Fixes build break for configurations that use shared libraries. llvm-svn: 285037
* [InstCombine] regenerate some checksSanjay Patel2016-10-241-75/+86
| | | | llvm-svn: 285036
* cmake: Rename installhdrs to install-llvm-headers and fix the dependenciesJustin Bogner2016-10-241-2/+6
| | | | | | | | | | The installhdrs target was inconsistently named and would behave differently depending on whether or not you ran a build first. This renames it to install-llvm-headers to match other target names and adds a dependency on intrinsics_gen so that it will always install the same set of things. llvm-svn: 285035
* Fix regression from my recent GlobalsAA fix.Eli Friedman2016-10-242-1/+57
| | | | | | | | | | | | | There are two fixes here: one, AnalyzeUsesOfPointer can't return false until it has checked all the uses of the pointer. Two, if a global uses another global, we have to assume the address of the first global escapes. Fixes https://llvm.org/bugs/show_bug.cgi?id=30707 . Differential Revision: https://reviews.llvm.org/D25798 llvm-svn: 285034
* [SelectionDAG] Update ComputeNumSignBits SRA/SHL handlers to accept scalar ↵Simon Pilgrim2016-10-242-14/+9
| | | | | | | | | | or vector splats Use isConstOrConstSplat helper. Also use APInt instead of getZExtValue directly to avoid out of range issues. llvm-svn: 285033
* remove xfail from TestObjCNewSyntax.py test_expr_gmodules()Todd Fiala2016-10-241-4/+0
| | | | | | | Fixes: rdar://27792848 llvm-svn: 285032
* [Sema][ObjC] Warn about implicitly autoreleasing out-parameters capturedAkira Hatanaka2016-10-244-1/+36
| | | | | | | | | | | | | | by blocks. Add a new warning "-Wblock-capture-autoreleasing". The warning warns about implicitly autoreleasing out-parameters captured by blocks which can introduce use-after-free bugs that are hard to debug. rdar://problem/15377548 Differential Revision: https://reviews.llvm.org/D25844 llvm-svn: 285031
* cmake: Make /usr/share/cmake installable with LLVM_DISTRIBUTION_COMPONENTSJustin Bogner2016-10-241-2/+14
| | | | | | | Add a cmake-exports install component and appropriate targets for LLVM_DISTRIBUTION_COMPONENTS to work with. llvm-svn: 285030
* Use MachineInstr::mop_iterator instead of MIOperands; NFCMatthias Braun2016-10-246-36/+36
| | | | | | | | (Const)?MIOperands is equivalent to the C++ style MachineInstr::mop_iterator. Use the latter for consistency except for a few callers of MIOperands::analyzePhysReg(). llvm-svn: 285029
* CodeGen: remove incorrect temporary TwineSaleem Abdulrasool2016-10-241-2/+2
| | | | | | Twines should not be stack allocated. This somehow managed to get past me. llvm-svn: 285028
* Fix test on non-X86 platformsMehdi Amini2016-10-241-0/+5
| | | | | | | This is a fixup for r285019, adding an `#ifdef __x86_64__` since the os_log builtin is platform specific. llvm-svn: 285027
* nother additional error check for an invalid Mach-O fileKevin Enderby2016-10-246-14/+44
| | | | | | | when contained in a Mach-O universal file and the cputypes in both headers don’t match. llvm-svn: 285026
* Use SDValue::getConstantOperandVal() helper. NFCI.Simon Pilgrim2016-10-241-4/+2
| | | | llvm-svn: 285025
* [pbqp] unique_ptr-ify (Vector|Matrix)::Data, NFC.Vedant Kumar2016-10-241-50/+46
| | | | | | Suggested by David Blaikie. llvm-svn: 285024
* CodeGen: centralise label construction for method listsSaleem Abdulrasool2016-10-241-59/+107
| | | | | | | | | | | Move all the label construction for the various method list emission into EmitMethodList. Rather than have all the names be constructed in pieces in all of the callers of EmitMethodList, have this occur in one site. This also makes the calls much easier to understand as we simplify identify the type of the method list being emitted and the interface name for which it is being emitted. NFC. llvm-svn: 285023
* Fix bug where one of the cases where we mangle a <bare-unresolved-name> failedRichard Smith2016-10-242-25/+38
| | | | | | | | to emit the <template-args> portion. Refactor so that mangleUnresolvedName actually emits the entire <unresolved-name>, so this mistake is harder to make again. llvm-svn: 285022
* ELF: Simplify handling of *_start/*_end symbols.Peter Collingbourne2016-10-242-21/+3
| | | | | | | | | | | | | | We were previously using the (static) addSynthetic function to create *_start/*_end symbols. This function was doing almost the same thing as addOptionalSynthetic, except that it would also create the symbol in the case where it is unreferenced. Because the symbol has hidden visibility, creating it in that case would have no effect other than adding another entry to the static symbol table. Remove addSynthetic and change callers to use addOptionalSynthetic instead. Differential Revision: https://reviews.llvm.org/D25545 llvm-svn: 285021
* Fix non-portable tests for temp_directory_path(...)Eric Fiselier2016-10-241-8/+11
| | | | llvm-svn: 285020
* Add support for __builtin_os_log_format[_buffer_size]Mehdi Amini2016-10-2415-95/+995
| | | | | | | | | | | | | | | | | This reverts commit r285007 and reapply r284990, with a fix for the opencl test that I broke. Original commit message follows: These new builtins support a mechanism for logging OS events, using a printf-like format string to specify the layout of data in a buffer. The _buffer_size version of the builtin can be used to determine the size of the buffer to allocate to hold the data, and then __builtin_os_log_format can write data into that buffer. This implements format checking to report mismatches between the format string and the data arguments. Most of this code was written by Chris Willmore. Differential Revision: https://reviews.llvm.org/D25888 llvm-svn: 285019
* [pbqp] Delete some dead code, NFC.Vedant Kumar2016-10-244-262/+5
| | | | | | | | | | | | I took the opportunity to replace some copy|move constructors|assignment operators with default implementations. As a follow-up, I plan on threading unique_ptr<T []> through a few areas per David Blaikie's advice. Differential Revision: https://reviews.llvm.org/D24424 llvm-svn: 285018
* [WebAssembly] Fix a broken URL.Dan Gohman2016-10-241-1/+1
| | | | llvm-svn: 285017
* [WebAssembly] Define the `end` opcode value.Dan Gohman2016-10-241-2/+4
| | | | | | | CFGStackify differentiates between END_LOOP and END_BLOCK, but wasm itself doesn't. For now, just use the same opcode for both. llvm-svn: 285016
OpenPOWER on IntegriCloud