summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Add 64 bit pattern matching for PSADBWOren Ben Simhon2017-04-042-13/+388
| | | | | | | | | PSADBW pattern currently supports the 32 bit IR pattern and only GLT (greather than) comparison. The patch extends the pattern to catch also 64 bit IR pattern and includes all other comparison types (not only GLT). Differential Revision: https://reviews.llvm.org/D31577 llvm-svn: 299425
* Fix formatting in LoopGeneratorsPhilip Pfaffe2017-04-041-2/+2
| | | | llvm-svn: 299424
* [Polly][NewPM] Pull references to the legacy PM interface from utilities and ↵Philip Pfaffe2017-04-048-28/+26
| | | | | | | | | | | | | | | | | | | | | helpers Summary: A couple of the utilities used to analyze or build IR make explicit use of the legacy PM on their interface, to access analysis results. This patch removes the legacy PM from the interface, and just passes the required results directly. This shouldn't introduce any function changes, although the API technically allowed to obtain two different analysis results before, one passed by reference and one through the PM. I don't believe that was ever intended, however. Reviewers: grosser, Meinersbur Reviewed By: grosser Subscribers: nemanjai, pollydev, llvm-commits Tags: #polly Differential Revision: https://reviews.llvm.org/D31653 llvm-svn: 299423
* Fix windows buildbot error.Haojian Wu2017-04-041-1/+1
| | | | llvm-svn: 299422
* [clangd] Add code completion supportKrasimir Georgiev2017-04-049-46/+426
| | | | | | | | | | | | | | Summary: Adds code completion support to clangd. Reviewers: bkramer, malaperle-ericsson Reviewed By: bkramer, malaperle-ericsson Subscribers: stanionascu, malaperle-ericsson, cfe-commits Differential Revision: https://reviews.llvm.org/D31328 llvm-svn: 299421
* [ELF] Fail the link early if the map file path is invalidJames Henderson2017-04-045-15/+24
| | | | | | | | | | | | | As with the changes made in r297645, we do not want a potentially long link to be run, if it will ultimately fail because the map file is not writable. This change reuses the same functionality as the output file path check. See https://reviews.llvm.org/D30449 for further justification and explanations. Reviewers: ruiu Differential Revision: https://reviews.llvm.org/D31603 llvm-svn: 299420
* [clang-rename] Support renaming qualified symbolHaojian Wu2017-04-0410-50/+1104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The patch adds a new feature for renaming qualified symbol references. Unlike orginal clang-rename behavior, when renaming a qualified symbol to a new qualified symbol (e.g "A::Foo" => "B::Bar"), this new rename behavior will consider the prefix qualifiers of the symbol, and calculate the new prefix qualifiers. It aims to add as few additional qualifiers as possible. As this is an early version (only supports renaming classes), I don't change current clang-rename interfaces at the moment, and would like to keep its (command-line tool) behavior. So I added new interfaces for the prototype. In the long run, these interfaces should be unified. No functionality changes in original clang-rename command-line tool. This patch also contains a few bug fixes of clang-rename which are discovered by the new unittest: * fix a potential nullptr accessment when class declaration doesn't have definition. * add USRs of nested declartaions in "getNamedDeclFor". Reviewers: ioeric Reviewed By: ioeric Subscribers: alexfh, cfe-commits, mgorny Differential Revision: https://reviews.llvm.org/D31176 llvm-svn: 299419
* [ELF] Rename ARM Thunks in anticipation of Range ThunksPeter Smith2017-04-043-67/+62
| | | | | | | | | | | The existing names for the ARM and Thumb Thunks highlight their current use as interworking Thunks. These Thunks can also be used for range extension Thunks where there is no state change. This change makes the name more generic so it is suitable for range extension. Differential Revision: https://reviews.llvm.org/D31605 llvm-svn: 299418
* Enable lldm-mi commands -stack-list-locals -stack-list-variables and ↵Ilia K2017-04-045-3/+111
| | | | | | | | | | | | | | | | -var-create to work only with variables in scope Patch by ayuckhulk Reviewers: abidh, lldb-commits, ki.stfu Reviewed By: ki.stfu Tags: #lldb Differential Revision: https://reviews.llvm.org/D31073 llvm-svn: 299417
* [X86] Remove some code that tries to disable HLE feature. This feature flag ↵Craig Topper2017-04-041-1/+0
| | | | | | was removed from the backend. llvm-svn: 299416
* Align all scalar numbers to LLVM_YAML_IS_FLOW_SEQUENCE_VECTORJonas Hahnfeld2017-04-0411-56/+21
| | | | | | | | | Otherwise, yamlize in YAMLTraits.h might be wrongly defined. This makes some AMDGPU tests fail when LLVM_LINK_LLVM_DYLIB is set. Differential Revision: https://reviews.llvm.org/D30508 llvm-svn: 299415
* Uses quote to include cxxabi.h to make sure the local one is includedMehdi Amini2017-04-042-2/+2
| | | | llvm-svn: 299414
* [InstCombine] Use setAllBits in place of getAllOnesValue since we know the ↵Craig Topper2017-04-041-1/+1
| | | | | | bitwidths are the same. NFCI llvm-svn: 299413
* InstCombine: Use the InstSimplify hook for shufflevectorZvi Rackover2017-04-041-5/+4
| | | | | | | | | | | | | | Summary: Start using the recently added InstSimplify hook for shuffles in the respective InstCombine visitor. Reviewers: spatel, RKSimon, craig.topper, majnemer Reviewed By: majnemer Subscribers: majnemer, llvm-commits Differential Revision: https://reviews.llvm.org/D31526 llvm-svn: 299412
* Fix more -Wshadow warnings introduced by recent Clang changeEric Fiselier2017-04-046-7/+0
| | | | llvm-svn: 299411
* Modules/builtins.m requires shell.Galina Kistanova2017-04-041-0/+1
| | | | llvm-svn: 299410
* Skip three test cases that are asserting on macosx as of r299199. A quickJason Molenda2017-04-043-0/+10
| | | | | | | | | | | | | | | | | | look showed that the target's arch has no core / byte order and so when AuxVector::AuxVector calls into a dataextractor and sets the byte size to 0, it asserts. e.g. m_arch = { m_triple = (Data = "x86_64--linux", Arch = x86_64, SubArch = NoSubArch, Vendor = UnknownVendor, OS = Linux, Environment = UnknownEnvironment, ObjectFormat = ELF) m_core = kCore_invalid m_byte_order = eByteOrderInvalid m_flags = 0x00000000 m_distribution_id = <no value available> } <rdar://problem/31380097> llvm-svn: 299408
* Work around recent -Wshadow changes in ClangEric Fiselier2017-04-042-1/+11
| | | | llvm-svn: 299407
* [PDB] Save one type record copyReid Kleckner2017-04-044-42/+35
| | | | | | | | | | | | | | | | | | Summary: The TypeTableBuilder provides stable storage for type records. We don't need to copy all of the bytes into a flat vector before adding it to the TpiStreamBuilder. This makes addTypeRecord take an ArrayRef<uint8_t> and a hash code to go with it, which seems like a simplification. Reviewers: ruiu, zturner, inglorion Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31634 llvm-svn: 299406
* [codeview] Cope with unsorted streams in type mergingReid Kleckner2017-04-037-44/+175
| | | | | | | | | | | | | | | Summary: MASM can produce type streams that are not topologically sorted. It can even produce type streams with circular references, but those are not common in practice. Reviewers: inglorion, ruiu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31629 llvm-svn: 299403
* Add CPlusPlusNameParser to the xcodeprojSean Callanan2017-04-031-0/+6
| | | | llvm-svn: 299402
* Fix C++17 dylib buildEric Fiselier2017-04-031-1/+2
| | | | llvm-svn: 299401
* [Fuzzer] Flush std::cout before aborting in CxxStringEqTestReid Kleckner2017-04-031-0/+1
| | | | | | | On Windows, abort() does not appear to flush std::cout. Should fix red sanitizer-windows bot. llvm-svn: 299398
* Recommit r299321 '[X86] Add __extension__ to f16c macro intrinsics to ↵Craig Topper2017-04-031-5/+5
| | | | | | | | suppress warnings about compound literals when compiled for with earlier language standards enabled.' The bot didn't recover after the revert. So it looks like this wasn't the issue. llvm-svn: 299397
* add/move codegen tests for and/or of setcc; NFCSanjay Patel2017-04-035-73/+173
| | | | llvm-svn: 299396
* Update stale doxygen links in ProgrammersManual.rstTim Northover2017-04-031-17/+17
| | | | | | Patch by Wei-Ren Chen. llvm-svn: 299395
* The LIBLLDB_LOG_TEMPORARY channel got lost at some point whereJason Molenda2017-04-032-0/+2
| | | | | | Logging.cpp was being changed in the past. Re-add it. llvm-svn: 299394
* InstSimplify: Add a hook for shufflevectorZvi Rackover2017-04-034-6/+85
| | | | | | | | | | | | | | | | | | Summary: Add a hook for simplification of shufflevector's with the following rules: - Constant folding - NFC, as it was already being done by the default handler. - If only one of the operands is constant, constant fold the shuffle if the mask does not select elements from the variable operand - to show the hook is firing and affecting the test-cases. Reviewers: RKSimon, craig.topper, spatel, sanjoy, nlopes, majnemer Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31525 llvm-svn: 299393
* Reland r298901 with modifications (reverted in r298932)Weiming Zhao2017-04-0318-37/+180
| | | | | | | | | | | | | | | | | | | Dont emit Mapping symbols for sections that contain only data. Summary: Dont emit mapping symbols for sections that contain only data. Reviewers: rengolin, weimingz, kparzysz, t.p.northover, peter.smith Reviewed By: t.p.northover Patched by Shankar Easwaran <shankare@codeaurora.org> Subscribers: alekseyshl, t.p.northover, llvm-commits Differential Revision: https://reviews.llvm.org/D30724 llvm-svn: 299392
* AMDGPU: Remove llvm.SI.vs.load.inputMatt Arsenault2017-04-039-32/+20
| | | | llvm-svn: 299391
* Change the error message format for an incompatible relocation.Rui Ueyama2017-04-0322-48/+107
| | | | | | | | | | | | | | | Previous error message style: error: /home/alice/src/bar.c:12: relocation R_X86_64_PLT32 cannot refer to absolute symbol 'answer' defined in /home/alice/src/foo.o New error message style: error: relocation R_X86_64_PLT32 cannot refer to absolute symbol: foo >>> defined in /home/alice/src/foo.o >>> referenced by bar.c:12 (/home/alice/src/bar.c:12) >>> /home/alice/src/bar.o:(.text+0x1) llvm-svn: 299390
* DAG: Fix missing legalization for any_extend_vector_inreg operandsMatt Arsenault2017-04-033-0/+75
| | | | llvm-svn: 299389
* [codeview] Add support for label type recordsReid Kleckner2017-04-0310-1/+66
| | | | | | MASM can produce these type records. llvm-svn: 299388
* [X86][SSE]] Lower BUILD_VECTOR with repeated elts as BUILD_VECTOR + ↵Simon Pilgrim2017-04-0312-103/+142
| | | | | | | | | | | | | | | | VECTOR_SHUFFLE It can be costly to transfer from the gprs to the xmm registers and can prevent loads merging. This patch splits vXi16/vXi32/vXi64 BUILD_VECTORS that use the same operand in multiple elements into a BUILD_VECTOR with only a single insertion of each of those elements and then performs an unary shuffle to duplicate the values. There are a couple of minor regressions this patch unearths due to some missing MOVDDUP/BROADCAST folds that I will address in a future patch. Note: Now that vector shuffle lowering and combining is pretty good we should be reusing that instead of duplicating so much in LowerBUILD_VECTOR - this is the first of several patches to address this. Differential Revision: https://reviews.llvm.org/D31373 llvm-svn: 299387
* Revert r299355 "[ASTImporter] Fix for importing unnamed structs"Gabor Horvath2017-04-034-139/+4
| | | | | | It breaks windows bots. llvm-svn: 299386
* suppress GCC warning about noexcept functions changing manglingEric Fiselier2017-04-032-1/+3
| | | | llvm-svn: 299385
* [InstCombine] Remove canonicalization for (X & C1) | C2 --> (X | C2) & ↵Craig Topper2017-04-031-11/+0
| | | | | | | | | | (C1|C2) when C1 & C2 have common bits. It turns out that SimplifyDemandedInstructionBits will get called earlier and remove bits from C1 first. Effectively doing (X & (C1&C2)) | C2. So by the time it got to this check there could be no common bits. I think the DAGCombiner has the same check but its check can be executed because it handles demanded bits later. I'll look at it next. llvm-svn: 299384
* x86 interrupt calling convention: re-align stack pointer on 64-bit if an ↵Amjad Aboud2017-04-034-10/+30
| | | | | | | | | | | | | | | | error code was pushed The x86_64 ABI requires that the stack is 16 byte aligned on function calls. Thus, the 8-byte error code, which is pushed by the CPU for certain exceptions, leads to a misaligned stack. This results in bugs such as Bug 26413, where misaligned movaps instructions are generated. This commit fixes the misalignment by adjusting the stack pointer in these cases. The adjustment is done at the beginning of the prologue generation by subtracting another 8 bytes from the stack pointer. These additional bytes are popped again in the function epilogue. Fixes Bug 26413 Patch by Philipp Oppermann. Differential Revision: https://reviews.llvm.org/D30049 llvm-svn: 299383
* Revert r299321 '[X86] Add __extension__ to f16c macro intrinsics to suppress ↵Craig Topper2017-04-031-5/+5
| | | | | | warnings about compound literals when compiled for with earlier language standards enabled.' to see if recovers a fuzzer bot. llvm-svn: 299382
* Try to trigger the new docs builder. NFCJonathan Roelofs2017-04-031-0/+1
| | | | llvm-svn: 299381
* [coroutines] Fix rebuilding of implicit and dependent coroutine statements.Eric Fiselier2017-04-036-115/+232
| | | | | | | | | | | | | | | | | | | Summary: Certain implicitly generated coroutine statements, such as the calls to 'return_value()' or `return_void()` or `get_return_object_on_allocation_failure()`, cannot be built until the promise type is no longer dependent. This means they are not built until after the coroutine body statement has been transformed. This patch fixes an issue where these statements would never be built for coroutine templates. It also fixes a small issue where diagnostics about `get_return_object_on_allocation_failure()` were incorrectly suppressed. Reviewers: rsmith, majnemer, GorNishanov, aaron.ballman Reviewed By: GorNishanov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31487 llvm-svn: 299380
* [CodeGenPrep] move aarch64-type-promotion to CGPJun Bum Lim2017-04-039-58/+374
| | | | | | | | | | | | | | | | | Summary: Move the aarch64-type-promotion pass within the existing type promotion framework in CGP. This change also support forking sexts when a new sext is required for promotion. Note that change is based on D27853 and I am submitting this out early to provide a better idea on D27853. Reviewers: jmolloy, mcrosier, javed.absar, qcolombet Reviewed By: qcolombet Subscribers: llvm-commits, aemerson, rengolin, mcrosier Differential Revision: https://reviews.llvm.org/D28680 llvm-svn: 299379
* [DAGCombine][InstCombine] Fix inverted if condition in equivalent comments ↵Craig Topper2017-04-032-2/+2
| | | | | | in DAGCombine and InstCombine. NFC llvm-svn: 299378
* Make a helper function file-local.Rui Ueyama2017-04-031-1/+1
| | | | llvm-svn: 299377
* benchcomp: Add a mode for analyzing file sizes.Peter Collingbourne2017-04-031-0/+20
| | | | llvm-svn: 299376
* Remove InputFiles::LogName.Rui Ueyama2017-04-032-41/+46
| | | | | | | | | | LogName member was added to construct input file names for logging only once. This patch does this in a different way. Now toString caches its results. Differential Revision: https://reviews.llvm.org/D31546 llvm-svn: 299375
* New C++ function name parsing logicEugene Zemtsov2017-04-036-129/+976
| | | | | | | | | | | | | | | | | | Current implementation of CPlusPlusLanguage::MethodName::Parse() doesn't get anywhere close to covering full extent of possible function declarations. It causes incorrect behavior in avoid-stepping and sometimes messes printing of thread backtrace. This change implements more methodical parsing logic based on clang lexer and simple recursive parser. Examples: void std::vector<Class, std::allocator<Class>>::_M_emplace_back_aux<Class const&>(Class const&) void (*&std::_Any_data::_M_access<void (*)()>())() Differential Revision: https://reviews.llvm.org/D31451 llvm-svn: 299374
* Fix LLVMBuild.txt typo. NFCJoel Jones2017-04-031-1/+1
| | | | llvm-svn: 299373
* AMDGPU: Remove legacy bfe intrinsicsMatt Arsenault2017-04-0310-1252/+159
| | | | llvm-svn: 299372
* [Support] Make printAllJSONValues public, for custom output.Graydon Hoare2017-04-031-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This changes the static method TimerGroup::printAllJSONValues from private to public, to match the static method TimerGroup::printAll. When trying to drive the reporting machinery by hand, the existing API is _almost_ flexible enough, but this entrypoint is required to intermix printing timers with other non-timer output. The underlying motive here is a Swift change to consolidate the collection of timers, LLVM statistics and other (non-assert-dependent) counters into JSON files, which requires a bit of manual intervention in LLVM's stat and timer output routines. See https://github.com/apple/swift/pull/8477 for details. Reviewers: MatzeB Reviewed By: MatzeB Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31566 llvm-svn: 299371
OpenPOWER on IntegriCloud