summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement LWG 3065: Make path operators friends.Eric Fiselier2018-12-215-39/+89
| | | | | | | | | This prevents things like: using namespace std::filesystem; auto x = L"a/b" == std::string("a/b"); llvm-svn: 349884
* Implement LWG 3145: file_clock breaks ABI for C++17 implementations.Eric Fiselier2018-12-217-32/+171
| | | | | | | This patch adds std::chrono::file_clock, but without breaking the existing ABI for std::filesystem. llvm-svn: 349883
* AMDGPU/GlobalISel: RegBankSelect for amdgcn.wqm.voteMatt Arsenault2018-12-212-0/+62
| | | | llvm-svn: 349882
* Implement LWG 2936: Path comparison is defined in terms of the generic formatEric Fiselier2018-12-213-15/+139
| | | | | | | | | This patch implements path::compare according to the current spec. The only observable change is the ordering of "/foo" and "foo", which orders the two paths based on having or not having a root directory (instead of lexically comparing "/" to "foo"). llvm-svn: 349881
* AMDGPU/GlobalISel: RegBankSelect for some fp opsMatt Arsenault2018-12-218-0/+185
| | | | llvm-svn: 349880
* GlobalISel: Correct example PartialMapping tableMatt Arsenault2018-12-211-5/+6
| | | | | | | When I try to use this, it seems like the second half needs to start where the previous part left off. llvm-svn: 349879
* AMDGPU/GlobalISel: Redo legality for build_vectorMatt Arsenault2018-12-212-10/+623
| | | | | | | | | | It seems better to avoid using the callback if possible since there are coverage assertions which are disabled if this is used. Also fix missing tests. Only test the legal cases since it seems legalization for build_vector is quite lacking. llvm-svn: 349878
* Mark two filesystem LWG issues as complete - nothing to doEric Fiselier2018-12-211-2/+2
| | | | llvm-svn: 349877
* [analyzer] Perform escaping in RetainCountChecker on type mismatch even for ↵George Karpenkov2018-12-212-23/+38
| | | | | | | | | | | | inlined functions The fix done in D55465 did not previously apply when the function was inlined. rdar://46889541 Differential Revision: https://reviews.llvm.org/D55976 llvm-svn: 349876
* [analyzer] Fix a bug in RetainCountDiagnostics while printing a note on ↵George Karpenkov2018-12-212-3/+18
| | | | | | | | | | | | mismatched summary in inlined functions Previously, we were not printing a note at all if at least one of the parameters was not annotated. rdar://46888422 Differential Revision: https://reviews.llvm.org/D55972 llvm-svn: 349875
* "help finish" tells you it is an alias. "help fin" doesn't.Jim Ingham2018-12-212-3/+17
| | | | | | | | | They both run the same command, and people get used to typing the shortest string they can, so we should support alias info on shortened strings as well. <rdar://problem/46859207> llvm-svn: 349874
* [memcpyopt] Add debug logs when forwarding memcpy src to dstReid Kleckner2018-12-211-0/+2
| | | | llvm-svn: 349873
* [mingw] Don't mangle thiscall like fastcall etcReid Kleckner2018-12-212-6/+21
| | | | | | | | | | | | | | | GCC does not mangle it when it is not explicit in the source. The mangler as currently written cannot differentiate between explicit and implicit calling conventions, so we can't match GCC. Explicit thiscall conventions are rare, so mangle as if the convention was implicit to be as ABI compatible as possible. Also fixes some tests using %itanium_abi_triple in some configurations as a side effect. Fixes PR40107. llvm-svn: 349872
* [LoopUnroll] Don't verify domtree by default with +Asserts.Eli Friedman2018-12-212-3/+5
| | | | | | | | | | This verification is linear in the size of the function, so it can cause a quadratic compile-time explosion in a function with many loops to unroll. Differential Revision: https://reviews.llvm.org/D54732 llvm-svn: 349871
* [X86] Autogenerate complete checks. NFCCraig Topper2018-12-211-9/+45
| | | | llvm-svn: 349870
* Fix stack-buffer-overflow in lldb_private::Host::FindProcesses (2/2)Jonas Devlieghere2018-12-211-2/+2
| | | | | | This fixes the second call at line 640 that I missed in r349858. llvm-svn: 349869
* [X86] Refactor hasNoCarryFlagUses and hasNoSignFlagUses in ↵Craig Topper2018-12-211-75/+34
| | | | | | | | | | X86ISelDAGToDAG.cpp to tranlate opcode to condition code using the helpers in X86InstrInfo.cpp. This shortens the switches in X86ISelDAGToDAG.cpp to only need to check condition code instead of a list of opcodes. This also fixes a bug where the memory forms of SETcc were missing from hasNoCarryFlagUses. llvm-svn: 349868
* [X86] Add memory forms of some SETCC instructions to hasNoCarryFlagUses.Craig Topper2018-12-211-0/+3
| | | | | | Found while working on another patch llvm-svn: 349867
* [driver] [analyzer] Fix --analyze -Xanalyzer after r349863.Artem Dergachev2018-12-213-2/+21
| | | | | | | | | | | | | | If an -analyzer-config is passed through -Xanalyzer, it is not found while looking for -Xclang. Additionally, don't emit -analyzer-config-compatibility-mode for *every* -analyzer-config flag we encounter; one is enough. https://reviews.llvm.org/D55823 rdar://problem/46504165 llvm-svn: 349866
* Add an assertion to aid in tracking down a bugAdrian Prantl2018-12-211-1/+3
| | | | llvm-svn: 349865
* Remove ineffective (misspelled) sanitizer optionAdrian Prantl2018-12-211-1/+1
| | | | llvm-svn: 349864
* Revert "Revert "[driver] [analyzer] Fix a backward compatibility issue after ↵George Karpenkov2018-12-213-3/+92
| | | | | | | | | | r348038."" This reverts commit 144927939587b790c0536f4ff08245043fc8d733. Fixes the bug in the original commit. llvm-svn: 349863
* [analyzer] RetainCount: Suppress retain detection heuristic on some CM methods.Artem Dergachev2018-12-212-2/+39
| | | | | | | | | | | | If it ends with "Retain" like CFRetain and returns a CFTypeRef like CFRetain, then it is not necessarily a CFRetain. But it is indeed true that these two return something retained. Differential Revision: https://reviews.llvm.org/D55907 rdar://problem/39390714 llvm-svn: 349862
* Fix typoAdrian Prantl2018-12-201-2/+2
| | | | llvm-svn: 349861
* Remove dead code.Rui Ueyama2018-12-201-4/+0
| | | | | | | | This code is no-op because of r349849. Differential Revision: https://reviews.llvm.org/D55962 llvm-svn: 349859
* Fix stack-buffer-overflow in lldb_private::Host::FindProcessesJonas Devlieghere2018-12-201-1/+1
| | | | | | | Found by the address sanitizer on GreenDragon: http://green.lab.llvm.org/green/view/LLDB/job/lldb-sanitized/1628/console llvm-svn: 349858
* [ARM] Complete the Thumb1 shift+and->shift+shift transforms.Eli Friedman2018-12-205-17/+125
| | | | | | | | | | | | | | This saves materializing the immediate. The additional forms are less common (they don't usually show up for bitfield insert/extract), but they're still relevant. I had to add a new target hook to prevent DAGCombine from reversing the transform. That isn't the only possible way to solve the conflict, but it seems straightforward enough. Differential Revision: https://reviews.llvm.org/D55630 llvm-svn: 349857
* [lldb] Add a "display-recognized-arguments" target setting to show ↵Kuba Mracek2018-12-208-15/+57
| | | | | | | | recognized arguments by default Differential Revision: https://reviews.llvm.org/D55954 llvm-svn: 349856
* [NativePDB] Create VarDecls for global variables.Zachary Turner2018-12-209-7/+279
| | | | | | | | | | Previously we would create these for local variables but not for global variables. Also updated existing tests which created global variables to check for them in the resulting AST. llvm-svn: 349854
* [CodeGen] Fix a test from r349848 by replacing `objc_` with `llvm.objc.`Volodymyr Sapsai2018-12-201-2/+2
| | | | llvm-svn: 349853
* Revert "[asan] Disable test on powerpc64be"Vitaly Buka2018-12-201-3/+0
| | | | | | | | Now the test is passing on that bot. Some incremental build issues? This reverts commit e00b5a5229ae02088d9f32a4e328eaa08abaf354. llvm-svn: 349852
* Disable a few tests on the green dragon sanitzier bot.Adrian Prantl2018-12-203-0/+10
| | | | | | | | These are tests that found actual, but hard to fix, bugs that are tracked elsewhere. Leaving them red only distracts from new failures this bot finds. llvm-svn: 349851
* Simplify. NFC.Rui Ueyama2018-12-201-12/+7
| | | | llvm-svn: 349850
* [ELF] Move IsNeeded logic from SymbolTable::addShared to MarkLive, and check ↵Fangrui Song2018-12-204-4/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IsUsedInRegularObj Summary: In glibc, libc.so is a linker script with an as-needed dependency on ld-linux-x86-64.so.2 GROUP ( /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc_nonshared.a AS_NEEDED ( /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ) ) ld-linux-x86-64.so.2 (as-needed) defines some symbols which resolve undefined references in libc.so.6, it will therefore be added as a DT_NEEDED entry, which isn't necessary. The test case as-needed-not-in-regular.s emulates the libc.so scenario, where ld.bfd and gold don't add DT_NEEDED for a.so The relevant code in gold/resolve.cc: // If we have a non-WEAK reference from a regular object to a // dynamic object, mark the dynamic object as needed. if (to->is_from_dynobj() && to->in_reg() && !to->is_undef_binding_weak()) to->object()->set_is_needed(); in_reg() appears to do something similar to IsUsedInRegularObj. This patch makes lld do the similar thing, but moves the check from addShared to a later stage MarkLive where all symbols are scanned. Reviewers: ruiu, pcc, espindola Reviewed By: ruiu Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D55902 llvm-svn: 349849
* [CodeGen] Fix assertion on emitting cleanup for object with inlined ↵Volodymyr Sapsai2018-12-203-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inherited constructor and non-trivial destructor. Fixes assertion > Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file llvm/Support/Casting.h, line 255. It was triggered by trying to cast `FunctionDecl` to `CXXMethodDecl` as `CGF.CurCodeDecl` in `CallBaseDtor::Emit`. It was happening because cleanups were emitted in `ScalarExprEmitter::VisitExprWithCleanups` after destroying `InlinedInheritingConstructorScope`, so `CodeGenFunction.CurCodeDecl` didn't correspond to expected cleanup decl. Fix the assertion by emitting cleanups before leaving `InlinedInheritingConstructorScope` and changing `CurCodeDecl`. Test cases based on a patch by Shoaib Meenai. Fixes PR36748. rdar://problem/45805151 Reviewers: rsmith, rjmccall Reviewed By: rjmccall Subscribers: jkorous, dexonsmith, cfe-commits, smeenai, compnerd Differential Revision: https://reviews.llvm.org/D55543 llvm-svn: 349848
* [InstCombine] [NFC] testcases for canonicalize MUL with NEG operandChen Zheng2018-12-201-0/+44
| | | | llvm-svn: 349847
* Fix Windows build failures caused by r349839Tom Stellard2018-12-201-6/+6
| | | | llvm-svn: 349846
* Add support for namespaces on #pragma clang attributeErik Pilkington2018-12-208-21/+152
| | | | | | | | | | | | | | | | Namespaces are introduced by adding an "identifier." before a push/pop directive. Pop directives with namespaces can only pop a attribute group that was pushed with the same namespace. Push and pop directives that don't opt into namespaces have the same semantics. This is necessary to prevent a pitfall of using multiple #pragma clang attribute directives spread out in a large file, particularly when macros are involved. It isn't easy to see which pop corripsonds to which push, so its easy to inadvertently pop the wrong group. Differential revision: https://reviews.llvm.org/D55628 llvm-svn: 349845
* [asan] Disable test on powerpc64beVitaly Buka2018-12-201-0/+3
| | | | llvm-svn: 349844
* Revert "[driver] [analyzer] Fix a backward compatibility issue after r348038."Artem Dergachev2018-12-203-95/+3
| | | | | | | | | | | | This reverts commits r349824, r349828, r349835. More buildbot failures were noticed. Differential Revision: https://reviews.llvm.org/D55823 rdar://problem/46504165 llvm-svn: 349843
* [ObjC] Messages to 'self' in class methods that return 'instancetype' shouldAlex Lorenz2018-12-203-29/+88
| | | | | | | | | | | | | | | | | | | | | | | | use the pointer to the class as the result type of the message Prior to this commit, messages to self in class methods were treated as instance methods to a Class value. When these methods returned instancetype the compiler only saw id through the instancetype, and not the Interface *. This caused problems when that return value was a receiver in a message send, as the compiler couldn't select the right method declaration and had to rely on a selection from the global method pool. This commit modifies the semantics of such message sends and uses class messages that are dispatched to the interface that corresponds to the class that contains the class method. This ensures that instancetypes are correctly interpreted by the compiler. This change is safe under ARC (as self can't be reassigned), however, it also applies to MRR code as we are assuming that the user isn't doing anything unreasonable. rdar://20940997 Differential Revision: https://reviews.llvm.org/D36790 llvm-svn: 349841
* cmake: Remove uses of add_llvm_loadable_module macroTom Stellard2018-12-203-3/+3
| | | | | | This was removed from llvm in r349839. llvm-svn: 349840
* cmake: Remove add_llvm_loadable_module()Tom Stellard2018-12-207-44/+17
| | | | | | | | | | | | | | | | | Summary: This function is very similar to add_llvm_library(), so this patch merges it into add_llvm_library() and replaces all calls to add_llvm_loadable_module(lib ...) with add_llvm_library(lib MODULE ...) Reviewers: philip.pfaffe, beanz, chandlerc Reviewed By: philip.pfaffe Subscribers: chapuni, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D51748 llvm-svn: 349839
* [gn check] Unbreak check-lld if llvm_install_binutils_symlinks is falseNico Weber2018-12-202-6/+8
| | | | | | | | The check-lld target was missing the dependency on llvm-nm and llvm-objdump in that case. Differential Revision: https://reviews.llvm.org/D55941 llvm-svn: 349836
* [driver] [analyzer] Fix redundant test output.Artem Dergachev2018-12-202-2/+4
| | | | | | | | | | | The -c flag causes a .o file to appear every time we run a test. Remove it. Differential Revision: https://reviews.llvm.org/D55823 rdar://problem/46504165 llvm-svn: 349835
* [gn build] Add build file for clang/lib/CodeGen and ↵Nico Weber2018-12-203-0/+103
| | | | | | | | llvm/lib/ProfileData/Coverage Differential Revision: https://reviews.llvm.org/D55931 llvm-svn: 349834
* [gn build] Add build files for ↵Nico Weber2018-12-205-0/+131
| | | | | | | | clang/lib/{Frontend,Frontend/Rewrite,Serialization} Differential Revision: https://reviews.llvm.org/D55930 llvm-svn: 349833
* [gn build] Add build file for clang/lib/DriverNico Weber2018-12-204-0/+99
| | | | | | | | | Mostly boring, except for the spurious dependency on StaticAnalyzer/Checkers -- see comments in the code. Differential Revision: https://reviews.llvm.org/D55927 llvm-svn: 349832
* [gn build] Add build file for clang/lib/ParseNico Weber2018-12-203-0/+52
| | | | | | | | | | | | | | | | | Nothing really interesting. One thing to consider is where the clang_tablegen() invocations that generate files that are private to a library should be. The CMake build puts them in clang/include/clang/Parse (in this case), but maybe putting them right in clang/lib/Parse/BUILD.gn makes mor sense. (For clang_tablegen() calls that generate .inc files used by the public headers, putting the call in the public BUILD file makes sense.) For now, I've put the build file in the public header folder, since that matches CMake and what I did in the last 2 clang patches, but I'm not sure I like this. Differential Revision: https://reviews.llvm.org/D55925 llvm-svn: 349831
* [gn build] Add build files for clang-format and ↵Nico Weber2018-12-206-6/+88
| | | | | | | | lib/{Format,Rewrite,Tooling/Core,Tooling/Inclusions} Differential Revision: https://reviews.llvm.org/D55924 llvm-svn: 349830
OpenPOWER on IntegriCloud