summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [coroutines] Fix description of LangOption for coroutines.Richard Smith2015-10-221-1/+1
| | | | llvm-svn: 250984
* clang-tools-extra/test/clang-tidy/modernize-use-default.cpp: Appease MS mode.NAKAMURA Takumi2015-10-221-1/+1
| | | | llvm-svn: 250983
* [coroutines] Add feature-test macro for coroutines, defined to 1 to indicateRichard Smith2015-10-222-0/+7
| | | | | | the implementation is incomplete. llvm-svn: 250982
* Move the launch-as-root xpc service from lldb to xcode, toJason Molenda2015-10-229-900/+36
| | | | | | | | | | | make it easier to run hand-built lldb roots and retain those entitlements. This is currently only used by Xcode; command line lldb doesn't expose the SBLaunchInfo::SetUserID() launch option. <rdar://problem/23154486> llvm-svn: 250981
* [coroutines] Add lexer support for co_await, co_yield, and co_return keywords.Richard Smith2015-10-225-1/+16
| | | | | | | Add -fcoroutines flag (just for -cc1 for now) to enable the feature. Early indications are that this will be part of -std=c++1z. llvm-svn: 250980
* Change ModuleList::GetSharedModule so that it will reject "stubJason Molenda2015-10-221-12/+43
| | | | | | | | | | | | | | | | | | | libraries" altogether. On Mac/iOS, these are libraries which have a UUID and nlist records but no text or data. If one of these gets into the global module list, every time we try to search for a given filename/arch/UUID, we'll get this stub library back. We need to prevent them from getting added to the module list altogether. I thought about doing this down in ObjectFileMachO -- just rejecting the file as a valid binary file altogether -- but Greg didn't want to take that hard line approach at this point, he wanted to keep the ability for lldb to read one of these if someone wanted to in the future. <rdar://problem/23035075> llvm-svn: 250979
* Add some verbose lldb host logging so lldb will show what SDKJason Molenda2015-10-221-1/+23
| | | | | | directories it is searching for files. llvm-svn: 250978
* Fix a couple places where InsertText was being called with a pointer and ↵Craig Topper2015-10-222-5/+5
| | | | | | | | size when it really expects a StringRef and a normally optional bool argument. The pointer was being implicitly converted to a StringRef and the size was being passed into the bool. Since the bool has a default value normally, no one noticed that the wrong number of arguments was given. llvm-svn: 250977
* Pass an ArrayRef instead of pointer and size. NFCCraig Topper2015-10-222-68/+38
| | | | llvm-svn: 250976
* [IR] Add a `makeNoWrapRegion` method to `ConstantRange`Sanjoy Das2015-10-223-0/+116
| | | | | | | | | | | | Summary: This will be used in a future change to ScalarEvolution. Reviewers: hfinkel, reames, nlewycky Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13612 llvm-svn: 250975
* [OperandBundles] Teach AliasAnalysis about operand bundlesSanjoy Das2015-10-223-4/+39
| | | | | | | | | | | | | | | | | | | Summary: If a `CallSite` has operand bundles, then do not peek into the called function to get a more precise `ModRef` answer. This is tested using `argmemonly`, `-basicaa` and `-gvn`; but the functionality is not specific to any of these. Depends on D13961 Reviewers: reames, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13962 llvm-svn: 250974
* [OperandBundles] Make function attributes conservatively correctSanjoy Das2015-10-226-0/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This makes attribute accessors on `CallInst` and `InvokeInst` do the (conservatively) right thing. This essentially involves, in some cases, *not* falling back querying the attributes on the called `llvm::Function` when operand bundles are present. Attributes locally present on the `CallInst` or `InvokeInst` will still override operand bundle semantics. The LangRef has been amended to reflect this. Note: this change does not do anything prevent `-function-attrs` from inferring `CallSite` local attributes after inspecting the called function -- that will be done as a separate change. I've used `-adce` and `-early-cse` to test these changes. There is nothing special about these passes (and they did not require any changes) except that they seemed be the easiest way to write the tests. This change does not add deal with `argmemonly`. That's a later change because alias analysis requires a related fix before `argmemonly` can be tested. Reviewers: reames, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13961 llvm-svn: 250973
* WebAssembly: fix more syntaxJF Bastien2015-10-225-14/+14
| | | | | | | br_if shouldn't start with a dot. div and rem went from prefix u/s to suffix. llvm-svn: 250972
* Change SortAndUniqueProtocols to operate directly on a SmallVector rather ↵Craig Topper2015-10-221-16/+11
| | | | | | | | than taking a pointer and element count that it modifies. This paves the way to directly convert the small vector into an ArrayRef without needing to explicitly pass the modified size. No functional change intended. While there also use a range-based for loop and use append instead of insert to copy elements into the empty SmallVector." llvm-svn: 250971
* Use front() instead of [0] to make code more consistent with the next line ↵Craig Topper2015-10-221-1/+1
| | | | | | that uses back(). llvm-svn: 250970
* Add missing load/store flags to thumb2 instructions.Pete Cooper2015-10-222-2/+5
| | | | | | | | | | | | | | | | | | These were the cause of a verifier error when building 7zip with -verify-machineinstrs. Running 'make check' with the verifier triggered the same error on the test here so i've updated the test to run the verifier on one of its runs instead of adding a new one. While looking at this code, there was a stale comment that these instructions were only used for disassembly. This probably used to be the case, but they are now used in the 'ARM load / store optimization pass' too. This reapplies r242300 which was reverted in r242428 due to bot failures. Ultimately those failures were spurious and completely unrelated to this commit. I reverted this at the time because it was thought to be at fault. llvm-svn: 250969
* Attempt to fix formatting for operand bundlesDavid Majnemer2015-10-221-10/+9
| | | | llvm-svn: 250968
* Update LangRef for changes to the alias textual IR format to support ↵David Blaikie2015-10-221-1/+1
| | | | | | typeless pointer work llvm-svn: 250967
* Fix Clang-tidy modernize-use-override warnings in some files in ↵Eugene Zelenko2015-10-2210-425/+363
| | | | | | | | source/Plugins/LanguageRuntime; other minor fixes. Differential Revision: http://reviews.llvm.org/D13966 llvm-svn: 250966
* Fix libstdc++ data formatters on Ubuntu 15.10 x86_64Todd Fiala2015-10-227-29/+195
| | | | | | See http://reviews.llvm.org/D13964 for details. llvm-svn: 250965
* [WinEH] Remove extraneous call to emitEHRegistrationOffsetLabelDavid Majnemer2015-10-211-1/+0
| | | | | | It's a relic from the earlier implementation, let's remove it. llvm-svn: 250964
* Fix use-after-free in ModuleManagerBen Langmuir2015-10-211-0/+3
| | | | | | | | | | | | | When removing out-of-date modules we might have left behind a VisitOrder that contains pointers to freed ModuleFiles. This was very rarely seen, because it only happens when modules go out of date and the VisitOrder happens to have the right size to not be recomputed. Thanks ASan! rdar://23181512 llvm-svn: 250963
* [PM]: Fix a doc typo. NFCJustin Bogner2015-10-211-1/+1
| | | | llvm-svn: 250962
* AMDGPU: Fix adding redundant m0 usesMatt Arsenault2015-10-211-2/+0
| | | | | | BuildMI already adds these since they are defined correctly now. llvm-svn: 250961
* AMDGPU: Fix verifier error in SIFoldOperandsMatt Arsenault2015-10-212-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | There may be other use operands that also need their kill flags cleared. This happens in a few tests when SIFoldOperands is moved after PeepholeOptimizer. PeepholeOptimizer rewrites cases that look like: %vreg0 = ... %vreg1 = COPY %vreg0 use %vreg1<kill> %vreg2 = COPY %vreg0 use %vreg2<kill> to use the earlier source to %vreg0 = ... use %vreg0 use %vreg0 Currently SIFoldOperands sees the copied registers, so there is only one use. So far I haven't managed to come up with a test that currently has multiple uses of a foldable VGPR -> VGPR copy. llvm-svn: 250960
* AMDGPU: Split DiagnosticInfoUnsupported into its own fileMatt Arsenault2015-10-214-41/+76
| | | | llvm-svn: 250959
* [FIX] Do not hoist nested variant base pointersJohannes Doerfert2015-10-212-7/+45
| | | | | | This fixes bug 25249. llvm-svn: 250958
* [msan] Build unit test shared library code with -fPIC.Evgeniy Stepanov2015-10-211-5/+1
| | | | llvm-svn: 250957
* [JIT] Towards a working small memory model.Davide Italiano2015-10-211-0/+55
| | | | | | | | | | This commit introduces an option, --preallocate, so that we can get memory upfront and use it in small memory model tests (in order to get reliable results). Differential Revision: http://reviews.llvm.org/D13630 llvm-svn: 250956
* Enable ARC on the fragile runtime.John McCall2015-10-213-4/+149
| | | | | | | | | | | | | | | | This is almost entirely a matter of just flipping a switch. 99% of the runtime support is available all the way back to when it was implemented in the non-fragile runtime, i.e. in Lion. However, fragile runtimes do not recognize ARC-style ivar layout strings, which means that accessing __strong or __weak ivars reflectively (e.g. via object_setIvar) will end up accessing the ivar as if it were __unsafe_unretained. Therefore, when using reflective technologies like KVC, be sure that your paths always refer to a property. rdar://23209307 llvm-svn: 250955
* [Driver] Alias -fvisibility=internal to -fvisibility=hiddenReid Kleckner2015-10-212-1/+4
| | | | | | | | | | | | | | | | | | The ELF symbol visibilities are: - internal: Not visibile across DSOs, cannot pass address across DSOs - hidden: Not visibile across DSOs, can be called indirectly - default: Usually visible across DSOs, possibly interposable - protected: Visible across DSOs, not interposable LLVM only supports the latter 3 visibilities. Internal visibility is in theory useful, as it allows you to assume that the caller is maintaining a PIC register for you in %ebx, or in some other pre-arranged location. As far as LLVM is concerned, this isn't worth the trouble. Using hidden visibility is always correct, so we can just do that. Resolves PR9183. llvm-svn: 250954
* Fix lldb-server - write null terminating symbol along with port number.Oleksiy Vyalov2015-10-211-1/+1
| | | | llvm-svn: 250953
* Fix typo so that "./dotest.py --results-formatter=curses_results.Curses ↵Greg Clayton2015-10-211-1/+1
| | | | | | --results-file=/dev/stdout" works again. llvm-svn: 250952
* AMDGPU: Simplify VOP3 operand legalization.Matt Arsenault2015-10-213-42/+58
| | | | | | | | | | | | | | | | | | | | | | | | | This was checking for a variety of situations that should never happen. This saves a tiny bit of compile time. We should not be selecting instructions with invalid operands in the first place. Most of the time for registers copys are inserted to the correct operand register class. For VOP3, since all operand types are supported and literal constants never are, we just need to verify the constant bus requirements (all immediates should be legal inline ones). The only possibly tricky case to maybe worry about is if when legalizing operands in moveToVALU with s_add_i32 and similar instructions. If the original s_add_i32 had a literal constant and we need to replace it with v_add_i32_e64 we would have an unsupported literal operand. However, I don't think we should worry about that because SIFoldOperands should handle folding literal constant operands into the SALU instructions based on the uses. At SIFoldOperands time, the legality and profitability of operand types is a bit different. llvm-svn: 250951
* [InstCombine] Revise the test case to match full sequeneMichael Liao2015-10-211-4/+4
| | | | llvm-svn: 250950
* MemorySanitizer does not require PIE.Evgeniy Stepanov2015-10-213-17/+23
| | | | | | | | | | | | | Since r249754 MemorySanitizer should work equally well for PIE and non-PIE executables on Linux/x86_64. Beware, with this change -fsanitize=memory no longer adds implicit -fPIE -pie compiler/linker flags on Linux/x86_64. This is a re-land of r250941, limited to Linux/x86_64 + a very minor refactoring in SanitizerArgs. llvm-svn: 250949
* AMDGPU: Fix not checking implicit operands in verifyInstructionMatt Arsenault2015-10-211-15/+29
| | | | | | | When verifying constant bus restrictions, this wasn't catching uses in implicit operands. llvm-svn: 250948
* ELF2: Remove FIXMEs.Rui Ueyama2015-10-211-6/+1
| | | | | | | | These classes are partially written, so almost all features are FIXMEs. We do not want to add new FIXMEs to the classes when we add new features to other non-stub classes. llvm-svn: 250947
* Use numeric_limits instead of LLONG_MAXMatt Arsenault2015-10-211-2/+2
| | | | | | | This is a build fix for configurations where LLONG_MAX is not defined in system headers. llvm-svn: 250946
* LegalizeDAG: Implement promote for build_vectorMatt Arsenault2015-10-211-0/+30
| | | | | | | | | | This will be used in future commits for AMDGPU to promote operations on i64 vectors into operations on 32-bit vector components. This will be used / tested in future AMDGPU commits. llvm-svn: 250945
* Revert "MemorySanitizer does not require PIE."Evgeniy Stepanov2015-10-212-4/+3
| | | | | | It actually does require PIE on some targets. llvm-svn: 250944
* [Verifier] Minor comment update, NFCVedant Kumar2015-10-211-2/+1
| | | | llvm-svn: 250943
* [RuntimeDyld] Ignore ST_FILE symbols when constructing GlobalSymbolTableKeno Fischer2015-10-214-1/+21
| | | | | | | | | | | | | | Summary: ELF's STT_File symbols may overlap with regular globals in other files, so we should ignore them here in order to avoid having bogus entries in the symbol table that confuse us when resolving relocations. Reviewers: lhames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13888 llvm-svn: 250942
* MemorySanitizer does not require PIE.Evgeniy Stepanov2015-10-212-3/+4
| | | | | | | | | | Since r249754 MemorySanitizer should work equally well for PIE and non-PIE executables. Beware, with this change -fsanitize=memory no longer adds implicit -fPIE -pie compiler/linker flags, unless the target defaults to PIE. llvm-svn: 250941
* [Orc] Clean up a comment.Lang Hames2015-10-211-4/+4
| | | | llvm-svn: 250940
* [clang-tidy] add check cppcoreguidelines-pro-type-varargMatthias Gehre2015-10-217-4/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This check flags all calls to c-style vararg functions and all use of va_list, va_start and va_arg. Passing to varargs assumes the correct type will be read. This is fragile because it cannot generally be enforced to be safe in the language and so relies on programmer discipline to get it right. This rule is part of the "Type safety" profile of the C++ Core Guidelines, see https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#-type8-avoid-reading-from-varargs-or-passing-vararg-arguments-prefer-variadic-template-parameters-instead This commits also reverts "[clang-tidy] add cert's VariadicFunctionDefCheck as cppcoreguidelines-pro-type-vararg-def" because that check makes the SFINAE use of vararg functions impossible. Reviewers: alexfh, sbenza, bkramer, aaron.ballman Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D13787 llvm-svn: 250939
* Drop assert that a call with struct return goes to a function with sretJoerg Sonnenberger2015-10-212-2/+11
| | | | | | | attribute. Clang incorrectly misses it on __muldc3 and friends and the type system doesn't include it properly either. llvm-svn: 250938
* Revert r250925 in source/Plugins/OperatingSystem/Go to fix MSVC builds failures.Eugene Zelenko2015-10-212-51/+54
| | | | llvm-svn: 250937
* [WinEH] Add test for llvm.va.start in catchpadReid Kleckner2015-10-211-0/+103
| | | | | | | | It already works, but we should have a test for it. This used to be PR23094 in the old model. llvm-svn: 250936
* [Sema] Remove an unreachable llvm_unreachableDavid Majnemer2015-10-211-1/+0
| | | | | | No functionality change is intended. llvm-svn: 250935
OpenPOWER on IntegriCloud