summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix the 'fixit' for inline namespace replacement.Erich Keane2018-11-121-1/+4
| | | | | | | | I'd neglected to add to the fixit for r346677. Richard Smith mentioned this in a review-after-commit, so fixing it here. Change-Id: I77e612be978d4eedda8d5bbd60b812b88f875cda llvm-svn: 346705
* AMDGPU: Adding more median3 patternsAakanksha Patil2018-11-124-9/+433
| | | | | | | | min(max(a, b), max(min(a, b), c)) -> med3 a, b, c Differential Revision: https://reviews.llvm.org/D54331 llvm-svn: 346704
* [InstCombine] add more tests for rotate narrowing; NFCSanjay Patel2018-11-121-43/+144
| | | | llvm-svn: 346703
* [GC docs] Update the gcroot documentation to reflect recent simplifcations ↵Philip Reames2018-11-121-90/+20
| | | | | | to GCStrategy configurability llvm-svn: 346702
* [GC] Remove so called PreCall safepointsPhilip Reames2018-11-123-10/+2
| | | | | | | Remove another bit of unused configuration potential from GCStrategy. It's not entirely clear what the intention here was, but from the docs, it sounds like this may have been subsumed by patchable call support. Note: This change is deliberately small to make it clear that while implemented, there's nothing using the option. A following NFC will do most of the simplifications. llvm-svn: 346701
* [WebAssembly] Added WasmAsmParser.Wouter van Oortmerssen2018-11-126-79/+184
| | | | | | | | | | | | | | | | | | | | | | | Summary: This is to replace the ELFAsmParser that WebAssembly was using, which so far was a stub that didn't do anything, and couldn't work correctly with wasm. This new class is there to implement generic directives related to wasm as a binary format. Wasm target specific directives are still parsed in WebAssemblyAsmParser as before. The two classes now cooperate more correctly too. Also implemented .result which was missing. Any unknown directives will now result in errors. Reviewers: dschuff, sbc100 Subscribers: mgorny, jgravelle-google, eraman, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D54360 llvm-svn: 346700
* PR39628 Treat all non-zero values as 'true' in bool compound-assignmentRichard Smith2018-11-122-3/+28
| | | | | | in constant evaluation, not just odd values. llvm-svn: 346699
* [GC][InstCombine] Fix a potential iteration issuePhilip Reames2018-11-121-1/+4
| | | | | | Noticed via inspection. Appears to be largely innocious in practice, but slight code change could have resulted in either visit order dependent missed optimizations or infinite loops. May be a minor compile time problem today. llvm-svn: 346698
* [X86] In LowerMULH, use generic truncate and vector shuffle nodes instead of ↵Craig Topper2018-11-122-15/+20
| | | | | | | | | | directly emitting PACKUS. Truncate and shuffle lowering are already capable of matching to PACKUS using known bits analysis. This features one test change where we now prefer to extend v16i16->v16i32 then trunc v16i32->v16i8 over extract_subvector+packus when avx512f is available, but avx512bw is not. llvm-svn: 346697
* [NFC] Fix formatting in inline nested namespace definition.Erich Keane2018-11-121-11/+11
| | | | | | | | Apparently my invocation of clang-format in VIM didn't get this right, but the patch-version DID. This patch just runs CF on this file. Change-Id: Ied462a2d921cbb813fa427740d3ef6e97959b56d llvm-svn: 346696
* [lldb] Extract more fields from NSException valuesKuba Mracek2018-11-124-8/+172
| | | | | | | | This patch teaches LLDB about more fields on NSException Obj-C objects, specifically we can now retrieve the "name" and "reason" of an NSException. The goal is to eventually be able to have SB API that can provide details about the currently thrown/caught/processed exception. Differential Revision: https://reviews.llvm.org/D43884 llvm-svn: 346695
* Revert "Extract construction of DataBufferLLVM into FileSystem"Davide Italiano2018-11-1218-94/+73
| | | | | | It broke the lldb sanitizer bots. llvm-svn: 346694
* [lldb] Add "ninja" to svn:ignoreKuba Mracek2018-11-120-0/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D54431 llvm-svn: 346693
* [lldb] Fix the typo (replace underscore with dash) in svn:ignore on test/ ↵Kuba Mracek2018-11-120-0/+0
| | | | | | | | and add "lldb-test-build.noindex" to ignored files Differential Revision: https://reviews.llvm.org/D54432 llvm-svn: 346692
* NFC: DebugInfo: Reduce scope of DebugOffset to simplify codeDavid Blaikie2018-11-121-31/+33
| | | | | | | | | | | This was being used as a sort of indirect out parameter from shouldDump - seems simpler to use it as the actual result of the call. (this does mean using a pointer to an Optional & actually using all 3 states (null, None, and present) which is, admittedly, a tad subtle - but given the limited scope, seems OK to me - open to discussion though, if others feel strongly about it) llvm-svn: 346691
* [AMDGPU] Optimize S_CBRANCH_VCC[N]Z -> S_CBRANCH_EXEC[N]ZStanislav Mekhanoshin2018-11-124-2/+419
| | | | | | | | | | | | | | | | | | | Sometimes after basic block placement we end up with a code like: sreg = s_mov_b64 -1 vcc = s_and_b64 exec, sreg s_cbranch_vccz This happens as a join of a block assigning -1 to a saved mask and another block which consumes that saved mask with s_and_b64 and a branch. This is essentially a single s_cbranch_execz instruction when moved into a single new basic block. Differential Revision: https://reviews.llvm.org/D54164 llvm-svn: 346690
* [InstCombine] regenerate checks; NFCSanjay Patel2018-11-121-15/+16
| | | | llvm-svn: 346689
* [CostModel][X86] Add funnel shift rotation special case costsSimon Pilgrim2018-11-123-85/+222
| | | | | | When we repeat the 2 shifting operands then this is a bit rotation - annoyingly this has to be done in the other getIntrinsicInstrCost than most intrinsics as we need to check the operands are the same. llvm-svn: 346688
* [clang-format] Support breaking consecutive string literals for TableGenJordan Rupprecht2018-11-123-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: clang-format can get confused by string literals in TableGen: it knows that strings can be broken up, but doesn't seem to understand how that can be indented across line breaks, and arranges them in a weird triangular pattern. Take this output example from `clang-format tools/llvm-objcopy/ObjcopyOpts.td` (which has now been formatted in rL345896 with this patch applied): ``` defm keep_global_symbols : Eq< "keep-global-symbols", "Reads a list of symbols from <filename> and " "runs as if " "--keep-global-symbol=<symbol> " "is set for each one. " "<filename> " "contains one " "symbol per line " "and may contain " "comments " "beginning " "with" " '#'" ". " "Lead" "ing " ``` Reviewers: alexshap, MaskRay, djasper Reviewed By: MaskRay Subscribers: krasimir, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D53952 llvm-svn: 346687
* Fix MachineInstr::findRegisterUseOperandIdx subreg checksStanislav Mekhanoshin2018-11-122-3/+50
| | | | | | | | | | | | The function only checks that instruction reads a super-register containing requested physical register. In case if a sub-register if being read that is also a use of a super-reg, so added the check. In particular MI->readsRegister() is broken because of the missing check. The resulting check is essentially regsOverlap(). Differential Revision: https://reviews.llvm.org/D54128 llvm-svn: 346686
* [llvm-readelf] Make llvm-readelf more compatible with GNU readelf.Jordan Rupprecht2018-11-1212-94/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change adds a bunch of options that GNU readelf supports. There is one breaking change when invoked as `llvm-readobj`, and three breaking changes when invoked as `llvm-readelf`: - Add --all (implies --file-header, --program-headers, etc.) - [Breaking] -a is --all instead of --arm-attributes - Add --file-header as an alias for --file-headers - Replace --sections with --sections-headers, keeping --sections as an alias for it - Add --relocs as an alias for --relocations - Add --dynamic as an alias for --dynamic-table - Add --segments as an alias for --program-headers - Add --section-groups as an alias for --elf-section-groups - Add --dyn-syms as an alias for --dyn-symbols - Add --syms as an alias for --symbols - Add --histogram as an alias for --elf-hash-histogram - [Breaking] When invoked as `llvm-readelf`, -s is --symbols instead of --sections - [Breaking] When invoked as `llvm-readelf`, -t is no longer an alias for --symbols Reviewers: MaskRay, phosek, mcgrathr, jhenderson Reviewed By: MaskRay, jhenderson Subscribers: sbc100, aheejin, edd, jhenderson, silvas, echristo, compnerd, kristina, javed.absar, kristof.beyls, llvm-commits, Bigcheese Differential Revision: https://reviews.llvm.org/D54124 llvm-svn: 346685
* Remove the last CURRENT_ARCH reference in Xcode's build scripts.Frederic Riss2018-11-121-1/+1
| | | | | | In the same spirit as r346443. llvm-svn: 346684
* [CostModel][X86] Add SHLD/SHRD scalar funnel shift costsSimon Pilgrim2018-11-123-322/+331
| | | | | | The costs match the typical reg-reg cases - the RMW case can be a lot slower but we don't model that at this level llvm-svn: 346683
* [MachineOutliner][NFC] Early exit pruning when candidates don't share an MBBJessica Paquette2018-11-121-0/+8
| | | | | | | | | | There's no way they can overlap in this case. This can save a few iterations when the candidate is close to the beginning of a MachineBasicBlock. It's particularly useful when the average length of a MachineBasicBlock in the program is small. llvm-svn: 346682
* [MachineOutliner][NFC] Put suffix tree in buildCandidateListJessica Paquette2018-11-121-6/+5
| | | | | | It's only used there, so it doesn't make much sense to have it in runOnModule. llvm-svn: 346681
* [analyzer] Drastically simplify the tblgen files used for checkersKristof Umann2018-11-128-596/+300
| | | | | | | | | | | | Interestingly, only about the quarter of the emitter file is used, the DescFile entry hasn't ever been touched [1], and the entire concept of groups is a mystery, so I removed them. [1] http://lists.llvm.org/pipermail/cfe-dev/2018-October/059664.html Differential Revision: https://reviews.llvm.org/D53995 llvm-svn: 346680
* [lldb] Refactor ObjC/NSException.cpp (cleanup, avoid code duplication). NFC.Kuba Mracek2018-11-121-75/+47
| | | | | | | | | | - Refactor reading of NSException fields into ExtractFields method to avoid code duplication. - Remove "m_child_ptr" field, as it's not used anywhere. - Clang-format. Differential Revision: https://reviews.llvm.org/D44073 llvm-svn: 346679
* Revert "Add a test checking clang-tidy can find libc++ on Mac"Jonas Toth2018-11-122-19/+0
| | | | | | This reverts commit r346653. llvm-svn: 346678
* Implement P1094R2 (nested inline namespaces)Erich Keane2018-11-125-45/+130
| | | | | | | | As approved for the Working Paper in San Diego, support annotating inline namespaces with 'inline'. Change-Id: I51a654e11ffb475bf27cccb2458768151619e384 llvm-svn: 346677
* [clang-tidy] fix ARM tests, because int and long have same widthJonas Toth2018-11-121-1/+1
| | | | llvm-svn: 346676
* Revert "Make clang-based tools find libc++ on MacOS"Jonas Devlieghere2018-11-127-54/+10
| | | | | | This breaks the LLDB bots. llvm-svn: 346675
* [DWARFv5] Emit split type units in .debug_info.dwo.Paul Robinson2018-11-124-14/+13
| | | | | | Differential Revision: https://reviews.llvm.org/D54350 llvm-svn: 346674
* [lldb] Fix "code requires global destructor" warning in g_architecture_mutexKuba Mracek2018-11-121-4/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D44060 llvm-svn: 346673
* [PDB] Fix `vbases.test` requirementAleksandr Urakov2018-11-121-1/+1
| | | | | | Differential revision: https://reviews.llvm.org/D53506 llvm-svn: 346672
* [clangd] Don't show all refs results if -name is ambiguous in dexp.Haojian Wu2018-11-121-0/+6
| | | | | | | | | | Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54430 llvm-svn: 346671
* [CostModel][X86] Add some initial cost tests for funnel shiftsSimon Pilgrim2018-11-122-0/+780
| | | | | | Still need to add full uniform/constant coverage but this is enough to check basic fshl/fshr cost handling llvm-svn: 346670
* [ClangASTContext] Extract VTable pointers from C++ objectsAleksandr Urakov2018-11-126-102/+160
| | | | | | | | | | | | | | | | | | This patch processes the case of retrieving a virtual base when the object is already read from the debuggee memory. To achieve that ValueObject::GetCPPVTableAddress was removed and was reimplemented in ClangASTContext (because access to the process is needed to retrieve the VTable pointer in general, and because this is the only place that used old version of ValueObject::GetCPPVTableAddress). This patch allows to use real object's VTable instead of searching virtual bases by offsets restored by MicrosoftRecordLayoutBuilder. PDB has no enough info to restore VBase offsets properly, so we have to read real VTable instead. Differential revision: https://reviews.llvm.org/D53506 llvm-svn: 346669
* [CMake] Allow version overrides with -DLLDB_VERSION_MAJOR/MINOR/PATCH/SUFFIXStefan Granitz2018-11-122-4/+15
| | | | | | | | | | | | | | Summary: This follows the approach in Clang. If no overrides are given, LLDB_VERSION_* is inferred from LLVM_VERSION_*. This mimics the current behaviour (PACKAGE_VERSION itself is generated from LLVM_VERSION_*). For in-tree builds LLVM_VERSION_* will be defined at this point already. For standalone builds, LLDBConfig.cmake is included after LLDBStandalone.cmake which includes LLVMConfig.cmake. Reviewers: labath, xiaobai Subscribers: mgorny, friss, aprantl, lldb-commits Differential Revision: https://reviews.llvm.org/D54333 llvm-svn: 346668
* [CMake] Fix: add_host_subdirectory source/Host/macosxStefan Granitz2018-11-121-1/+1
| | | | | | | | | | | | Summary: Typo introduced with https://reviews.llvm.org/D47929 Reviewers: teemperor Subscribers: mgorny, friss, lldb-commits Differential Revision: https://reviews.llvm.org/D54335 llvm-svn: 346667
* [clangd] Allow symbols from AnyScope in dexp.Haojian Wu2018-11-121-0/+1
| | | | | | | | | | | | | | Summary: We should allow symbols from any scope in dexp results, othewise `find StringRef` doesn't return any results (llvm::StringRef). Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D54427 llvm-svn: 346666
* [clang-tidy] new check: bugprone-too-small-loop-variableJonas Toth2018-11-128-0/+503
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The new checker searches for those for loops which has a loop variable with a "too small" type which means this type can't represent all values which are part of the iteration range. For example: ``` int main() { long size = 300000; for( short int i = 0; i < size; ++i) {} } ``` The short type leads to infinite loop here because it can't store all values in the `[0..size]` interval. In a real use case, size means a container's size which depends on the user input. Which means for small amount of objects the algorithm works, but with a larger user input the software will freeze. The idea of the checker comes from the LibreOffice project, where the same check was implemented as a clang compiler plugin, called `LoopVarTooSmall` (LLVM licensed). The idea is the same behind this check, but the code is different because of the different framework. Patch by ztamas. Reviewers: alexfh, hokein, aaron.ballman, JonasToth, xazax.hun, whisperity Reviewed By: JonasToth, whisperity Differential Revision: https://reviews.llvm.org/D53974 llvm-svn: 346665
* [CostModel][X86] SK_ExtractSubvector is cheap if the (legal) subvector is ↵Simon Pilgrim2018-11-122-27/+35
| | | | | | aligned within the source vector llvm-svn: 346664
* [SystemZ::TTI] Improve accuracy of costs for vector fp <-> int conversionsJonas Paulsson2018-11-122-137/+138
| | | | | | | | | | | | | | Improve getCastInstrCost() by respecting the different types of Src and Dst for vector integer <-> fp conversions. This means that extracting from integer becomes more expensive (by the extraction penalty), and the extraction from fp becomes cheaper (no longer has a false extraction penalty). Review: Ulrich Weigand https://reviews.llvm.org/D54423 llvm-svn: 346663
* [CostModel] Add more realistic SK_InsertSubvector generic costs.Simon Pilgrim2018-11-123-65/+91
| | | | | | Instead of defaulting to a cost = 1, expand to element extract/insert like we do for other shuffles. llvm-svn: 346662
* [VectorUtils] add funnel-shifts to the list of vectorizable intrinsicsSanjay Patel2018-11-122-2/+4
| | | | | | | | | | | | | | | | This just identifies the intrinsics as candidates for vectorization. It does not mean we will attempt to vectorize under normal conditions (the test file is forcing vectorization). The cost model must be fixed to show that the transform is profitable in general. Allowing vectorization with these intrinsics is required to avoid potential regressions from canonicalizing to the intrinsics from generic IR: https://bugs.llvm.org/show_bug.cgi?id=37417 llvm-svn: 346661
* [VectorUtils] reorder list of vectorizable intrinsics; NFCSanjay Patel2018-11-121-10/+9
| | | | | | | We need to add funnel-shifts to this list, so clean up the random order before it gets worse. llvm-svn: 346660
* Revert rL346644, rL346642: the added test ↵Calixte Denizet2018-11-1210-182/+0
| | | | | | test/CodeGen/code-coverage-filter.c is failing under windows llvm-svn: 346659
* [LoopVectorize] add tests for funnel shifts; NFCSanjay Patel2018-11-121-0/+52
| | | | llvm-svn: 346658
* Fix unused variable warning. NFCI.Simon Pilgrim2018-11-121-2/+1
| | | | llvm-svn: 346657
* [CostModel] Add more realistic SK_ExtractSubvector generic costs.Simon Pilgrim2018-11-123-29/+55
| | | | | | | | Instead of defaulting to a cost = 1, expand to element extract/insert like we do for other shuffles. This exposes an issue in LoopVectorize which could call SK_ExtractSubvector with a scalar subvector type. llvm-svn: 346656
OpenPOWER on IntegriCloud