summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [analyzer] Do not stop tracking CXX methods touching OSObject.George Karpenkov2018-10-233-14/+69
| | | | | | | | Trust generalized annotations for OSObject. Differential Revision: https://reviews.llvm.org/D53550 llvm-svn: 345100
* [analyzer] Trust summaries for OSObject::retain and OSObject::releaseGeorge Karpenkov2018-10-233-27/+28
| | | | | | | | Refactor the way in which summaries are consumed for safeMetaCast Differential Revision: https://reviews.llvm.org/D53549 llvm-svn: 345099
* [ORC] Re-apply r345077 with fixes to remove ambiguity in lookup calls.Lang Hames2018-10-2315-171/+289
| | | | llvm-svn: 345098
* Revert "[ThinLTO] Fix a crash in lazy loading of Metadata"Teresa Johnson2018-10-233-139/+2
| | | | | | This reverts commit r345095. It was accidentally committed. llvm-svn: 345097
* [hot-cold-split] Only perform splitting in ThinLTO backend post-linkTeresa Johnson2018-10-232-1/+7
| | | | | | | | | | | | | | | | | Summary: Fix the new PM to only perform hot cold splitting once during ThinLTO, by skipping it in the pre-link phase. This was already fixed in the old PM by the move of the hot cold split pass later (after the early return when PrepareForThinLTO) by r344869. Reviewers: vsk, sebpop, hiraditya Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D53611 llvm-svn: 345096
* [ThinLTO] Fix a crash in lazy loading of MetadataTeresa Johnson2018-10-233-2/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a revised version of D41474. When the debug location is parsed in BitcodeReader::parseFunction, the scope and inlinedAt MDNodes are obtained via MDLoader->getMDNodeFwdRefOrNull(), which will create a forward ref if they were not yet loaded. Specifically, if one of these MDNodes is in the module level metadata block, and this is during ThinLTO importing, that metadata block is lazily loaded. Most places in that invoke getMDNodeFwdRefOrNull have a corresponding call to resolveForwardRefsAndPlaceholders which will take care of resolving them. E.g. places that call getMetadataFwdRefOrLoad, or at the end of parsing a function-level metadata block, or at the end of the initial lazy load of module level metadata in order to handle invocations of getMDNodeFwdRefOrNull for named metadata and global object attachments. However, the calls for the scope/inlinedAt of debug locations are not backed by any such call to resolveForwardRefsAndPlaceholders. To fix this, change the scope and inlinedAt parsing to instead use getMetadataFwdRefOrLoad, which will ensure the forward refs to lazily loaded metadata are resolved. Fixes PR35472. Reviewers: dexonsmith, Sunil_Srivastava, vsk Subscribers: inglorion, eraman, steven_wu, sebpop, mehdi_amini, dmikulin, vsk, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D53596 llvm-svn: 345095
* Move forward declarations to the top of the file and sort.Rui Ueyama2018-10-231-4/+4
| | | | llvm-svn: 345094
* Move a function out of a class because it doesn't depend on any class ↵Rui Ueyama2018-10-232-18/+14
| | | | | | member. NFC. llvm-svn: 345093
* Remove unused private methods.Zachary Turner2018-10-231-8/+0
| | | | llvm-svn: 345092
* Fix some comments pointed out by Leonard Mosescu.Zachary Turner2018-10-231-4/+4
| | | | | | | These were originally pointed out in D53511 but I forgot to incorporate them in my patch. llvm-svn: 345091
* Actually fix test from r345085 REQUIRE: assertsFangrui Song2018-10-231-1/+1
| | | | llvm-svn: 345090
* Fix test after r345085Fangrui Song2018-10-231-0/+2
| | | | llvm-svn: 345089
* Factor out code to a new function. NFC.Rui Ueyama2018-10-231-27/+52
| | | | llvm-svn: 345088
* [X86] Autogenerate comple checks. NFCCraig Topper2018-10-231-5/+45
| | | | llvm-svn: 345087
* Remove unused variable.Eric Christopher2018-10-231-1/+0
| | | | llvm-svn: 345086
* Print out DebugCounter info with -print-debug-counterZhizhou Yang2018-10-233-4/+53
| | | | | | | | | | | | | | | | | | | Summary: This patch will print out {Counter, Skip, StopAfter} info of all passes which have DebugCounter set at destruction. It can be used to monitor how many times does certain transformation happen in a pass, and also help check if -debug-counter option is set correctly. Please refer to this [[ http://lists.llvm.org/pipermail/llvm-dev/2018-July/124722.html | thread ]] for motivation. Reviewers: george.burgess.iv, davide, greened Reviewed By: greened Subscribers: kristina, llozano, mgorny, llvm-commits, mgrang Differential Revision: https://reviews.llvm.org/D50031 llvm-svn: 345085
* [dwarfdump] Make incompatibility between -diff and -verbose explicit.Jonas Devlieghere2018-10-232-1/+12
| | | | | | | | Using -diff and -verbose together doesn't work today. We should audit where these two options interact and fix them. In the meantime we error out when the user try to specify both. llvm-svn: 345084
* Fix typo in verifier error messageMatt Arsenault2018-10-231-1/+1
| | | | llvm-svn: 345083
* CGP: Clear data structures at the end of a loop iteration instead of the ↵Peter Collingbourne2018-10-232-5/+27
| | | | | | | | | | | | beginning. Clearing LargeOffsetGEPMap at the end fixes a bug where if a large offset GEP is in a dead basic block, we fail an assertion when trying to delete the block due to the asserting VH in LargeOffsetGEPMap. Differential Revision: https://reviews.llvm.org/D53464 llvm-svn: 345082
* Simplify. NFC.Rui Ueyama2018-10-231-34/+29
| | | | | | A higher order function `applySyntehtic` can be replaced with a simpler function. llvm-svn: 345081
* Remove a global variable that is set but not used.Rui Ueyama2018-10-233-11/+3
| | | | llvm-svn: 345080
* [llvm-objcopy] Fix use-after-move clang-tidy warningJordan Rupprecht2018-10-231-2/+2
| | | | llvm-svn: 345079
* Revert r345077 "[ORC] Change how non-exported symbols are matched during ↵Reid Kleckner2018-10-2315-277/+170
| | | | | | | | | | | | | | | lookup." Doesn't build on Windows. The call to 'lookup' is ambiguous. Clang and MSVC agree, anyway. http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/787 C:\b\slave\clang-x64-windows-msvc\build\llvm.src\unittests\ExecutionEngine\Orc\CoreAPIsTest.cpp(315): error C2668: 'llvm::orc::ExecutionSession::lookup': ambiguous call to overloaded function C:\b\slave\clang-x64-windows-msvc\build\llvm.src\include\llvm/ExecutionEngine/Orc/Core.h(823): note: could be 'llvm::Expected<llvm::JITEvaluatedSymbol> llvm::orc::ExecutionSession::lookup(llvm::ArrayRef<llvm::orc::JITDylib *>,llvm::orc::SymbolStringPtr)' C:\b\slave\clang-x64-windows-msvc\build\llvm.src\include\llvm/ExecutionEngine/Orc/Core.h(817): note: or 'llvm::Expected<llvm::JITEvaluatedSymbol> llvm::orc::ExecutionSession::lookup(const llvm::orc::JITDylibSearchList &,llvm::orc::SymbolStringPtr)' C:\b\slave\clang-x64-windows-msvc\build\llvm.src\unittests\ExecutionEngine\Orc\CoreAPIsTest.cpp(315): note: while trying to match the argument list '(initializer list, llvm::orc::SymbolStringPtr)' llvm-svn: 345078
* [ORC] Change how non-exported symbols are matched during lookup.Lang Hames2018-10-2315-170/+277
| | | | | | | | | | | | | | | | | In the new scheme the client passes a list of (JITDylib&, bool) pairs, rather than a list of JITDylibs. For each JITDylib the boolean indicates whether or not to match against non-exported symbols (true means that they should be found, false means that they should not). The MatchNonExportedInJD and MatchNonExported parameters on lookup are removed. The new scheme is more flexible, and easier to understand. This patch also updates JITDylib search orders to be lists of (JITDylib&, bool) pairs to match the new lookup scheme. Error handling is also plumbed through the LLJIT class to allow regression tests to fail predictably when a lookup from a lazy call-through fails. llvm-svn: 345077
* Off-by-one errors strike again. Thank goodness for ASAN and the bots.Marshall Clow2018-10-231-4/+14
| | | | llvm-svn: 345076
* NFC: Remove MANGLE_CHECKER from ItaniumMangle.cppErik Pilkington2018-10-232-23/+0
| | | | | | | This hasn't even compiled since 2011. It would be useful to have some test to verify that ItaniumMangle and ItaniumDemangle agree, but this isn't it. llvm-svn: 345075
* [test-suite/doc] Add list of programs we might add.Michael Kruse2018-10-232-0/+314
| | | | | | | | | | | | | | | | | | | | | | Add a list of benchmarks, applications and algorithms which are under discussion to be added to the test-suite. The initial list includes the the benchmarks mentioned at https://llvm.org/PR34216, missing SPEC benchmarks, some image processing algorithms and a few others. The bug tracker only allows adding to the discussion, not removing, commenting, adding details to individual benchmarks. The first proposal was to add these benchmark into the test-suite repository, but after a discussion, adding it to llvm/docs/Proposals seem more appropriate. One advantage is that llvm.org will have a browsable web page with these suggestions. Suggested-by: Hal Finkel Differential Revision: https://reviews.llvm.org/D46714 llvm-svn: 345074
* Change getRedeclContext() to support enumerations as another kind of ↵Aaron Ballman2018-10-232-2/+35
| | | | | | | | transparent context in C. This change fixes PR15071 and ensures that enumerators redefined in a struct cannot conflict with enumerators defined outside of the struct. llvm-svn: 345073
* [HotColdSplitting] Attach MinSize to outlined codeVedant Kumar2018-10-232-0/+39
| | | | | | | | | | | | | | | | | | Outlined code is cold by assumption, so it makes sense to optimize it for minimal code size rather than performance. After r344869 moved the splitting pass to the end of the IR pipeline, this does not result in much of a code size reduction. This is probably because a comparatively small number backend transforms make use of the MinSize hint. Running LNT on x86_64, I see that 33/1020 binaries shrink for a total of 919 bytes of TEXT reduction. I didn't measure a significant performance impact. Differential Revision: https://reviews.llvm.org/D53518 llvm-svn: 345072
* Fix doxygen comment.Adrian Prantl2018-10-231-1/+1
| | | | llvm-svn: 345071
* [X86][SSE] Revert rL343922 combinePMULDQ AddToWorklist (PR39398)Simon Pilgrim2018-10-233-44/+107
| | | | | | We can't add the MULDQ node back to the worklist after the demanded bits change has been committed in case the node has been removed entirely. This will have to wait until we have SimplifyDemandedBitsForTargetNode. llvm-svn: 345070
* Add UdtRecordCompleter.cpp.Jason Molenda2018-10-231-0/+6
| | | | llvm-svn: 345069
* [llvm-strip] Support -s alias for --strip-all. Make both strip and objcopy ↵Jordan Rupprecht2018-10-233-6/+13
| | | | | | | | | | | | | | | | | | | | | case sensitive to support both -s (--strip-all) and -S (--strip-debug). Summary: GNU strip supports both `-s` and `-S` as aliases for `--strip-all` and `--strip-debug`, respectfully. As part of this, it turns out that strip/objcopy were accepting case insensitive command line args. I'm not sure if there was an explicit reason for this. The only others uses of this are llvm-cvtres/llvm-mt/llvm-lib, which are all tools specific for windows support. Forcing case sensitivity allows both aliases to exist, but seems like a good idea anyway. And as a surprise test case adjustment, the llvm-strip unit test was running with `-keep=unavailable_symbol`, despite `keep` not be a valid flag for strip. This is because there is a flag `-K` which, when case insensitivity is permitted, allows it to be interpreted as `-K` = `eep=unavailable_symbol` (e.g. to allow `-Kfoo` == `--keep-symbol=foo`). Reviewers: jakehehrlich, jhenderson, alexshap Reviewed By: jakehehrlich Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53163 llvm-svn: 345068
* When filling a vector<bool> with stuff, initialize the last word of the ↵Marshall Clow2018-10-231-0/+4
| | | | | | storage that you're touching. Otherwise, when we lay down the bits with operator&=, we get UB from reading uninitialized memory. Fixes Bug 39354. Thanks to David Wagner for the bug report. llvm-svn: 345067
* [LegalizeDAG] Share Vector/Scalar CTPOP ExpansionSimon Pilgrim2018-10-233-58/+58
| | | | | | | | As suggested on D53258, this patch move the CTPOP expansion code from SelectionDAGLegalize to TargetLowering to allow it to be reused by the VectorLegalizer. Proper vector support will be added by D53258. llvm-svn: 345066
* X86DAGToDAGISel::matchBitExtract(): lambdas can't have default arguments.Roman Lebedev2018-10-231-3/+6
| | | | | | | As reported by ctopper. That is a gcc-only warning at the moment. llvm-svn: 345065
* [analyzer] Rename trackNullOrUndefValue to trackExpressionValueGeorge Karpenkov2018-10-2317-77/+63
| | | | | | | | | | | | trackNullOrUndefValue is a long and confusing name, and it does not actually reflect what the function is doing. Give a function a new name, with a relatively clear semantics. Also remove some dead code. Differential Revision: https://reviews.llvm.org/D52758 llvm-svn: 345064
* [Fixed Point Arithmetic] Fixed Point to Boolean CastLeonard Chan2018-10-2314-19/+105
| | | | | | | | | | This patch is a part of https://reviews.llvm.org/D48456 in an attempt to split the casting logic up into smaller patches. This contains the code for casting from fixed point types to boolean types. Differential Revision: https://reviews.llvm.org/D53308 llvm-svn: 345063
* Add a comment.Rui Ueyama2018-10-231-0/+4
| | | | llvm-svn: 345062
* Skip test with older versions of clangJonas Devlieghere2018-10-231-0/+1
| | | | | | | | | This was failing for the bots that build with older clangs: http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-clang-5.0.2/ http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-clang-6.0.1/ llvm-svn: 345061
* [LegalizeDAG] Share Vector/Scalar CTLZ ExpansionSimon Pilgrim2018-10-235-78/+98
| | | | | | | | As suggested on D53258, this patch shares common CTLZ expansion code between VectorLegalizer and SelectionDAGLegalize by putting it in TargetLowering. Extension to D53474 llvm-svn: 345060
* Fix MSVC build by correcting placement of declspec after r345056Daniel Sanders2018-10-231-1/+1
| | | | | | Going by the MSVC toolchains at godbolt.org, declspec comes after the template<...>. llvm-svn: 345059
* Remove a global variable that we can live without.Rui Ueyama2018-10-235-4/+9
| | | | | | | | | | Out::DebugInfo was used only by GdbIndex class to determine if we need to create a .gdb_index section, but we can do the same check without it. Added a test that this patch doesn't change the existing behavior. llvm-svn: 345058
* [IR] Fix -Wunused-function after r345052Fangrui Song2018-10-231-7/+0
| | | | llvm-svn: 345057
* [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnTypeDaniel Sanders2018-10-231-11/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Some targets have very long encodings and uint64_t isn't sufficient. uint128_t isn't portable so such targets need to use an object instead. There is one catch with this at the moment, no string of bits extracted from the encoding may exceeed 64-bits. Fields are still permitted to exceed 64-bits so long as they aren't one contiguous string of bits. If this proves to be a problem then we can modify the generation of fieldFromInstruction() calls to account for it but for now I've added an assertion for this. InsnType must either be integral or an APInt-like object that must: * Have a static const max_size_in_bits equal to the number of bits in the encoding. * be default-constructible and copy-constructible * be constructible from a uint64_t (this is the key area the interface deviates from APInt since this constructor does not take the bit width) * be constructible from an APInt (this can be private) * be convertible to uint64_t * Support the ~, &,, ==, !=, and |= operators with other objects of the same type * Support shift (<<, >>) with signed and unsigned integers on the RHS * Support put (<<) to raw_ostream& Reviewers: bogner, charukcs Subscribers: nhaehnle, llvm-commits Differential Revision: https://reviews.llvm.org/D52100 llvm-svn: 345056
* Change two methods from const char* to StringRef [NFC].Zachary Turner2018-10-234-41/+48
| | | | llvm-svn: 345055
* [PDB] Fix -Wunused-private-field in DIAReid Kleckner2018-10-235-17/+9
| | | | llvm-svn: 345054
* [Power9] Add __float128 support in the backend for bitcast to a i128Stefan Pintilie2018-10-234-0/+121
| | | | | | | | | Add support to allow bit-casting from f128 to i128 and then extracting 64 bits from the result. Differential Revision: https://reviews.llvm.org/D49507 llvm-svn: 345053
* [IR] remove fake binop queries for not/negSanjay Patel2018-10-232-50/+2
| | | | | | | | | | | | | | | | | | | | | | | The initial motivation is that we want to remove the fneg API because that would silently fail if we add an actual fneg instruction to IR. The same would be true for the integer ops, so we might as well get rid of these too. We have a newer 'match' API that makes checking for these patterns simpler. It also works with vectors that may include undef elements in constants. If any out-of-tree users need updating, they can model their code changes on these commits: rL345050 rL345043 rL345042 rL345041 rL345036 rL345030 llvm-svn: 345052
* [OpenCL] Remove PIPE_RESERVE_ID_VALID_BIT from opencl-c.hAndrew Savonichev2018-10-231-1/+0
| | | | | | | | | | | | | | | | | Summary: PIPE_RESERVE_ID_VALID_BIT is implementation defined, so lets not keep it in the header. Previously the topic was discussed here: https://reviews.llvm.org/D32896 Reviewers: Anastasia, yaxunl Reviewed By: Anastasia Subscribers: cfe-commits, asavonic, bader Differential Revision: https://reviews.llvm.org/D52658 llvm-svn: 345051
OpenPOWER on IntegriCloud