summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Make sure LldbGdbServerTestCase is built in arm mode to avoid failures due ↵Omair Javaid2016-08-112-3/+11
| | | | | | | | thumb instructions Differential revision: https://reviews.llvm.org/D23395 llvm-svn: 278326
* Remove a double send of eRunPacketSent eventPavel Labath2016-08-111-2/+0
| | | | | | | I accidentaly added the send both to the base class and the derived class in my refactor. Fix that. llvm-svn: 278325
* [clang-tidy] fix readability-else-after-return testKirill Bobyrev2016-08-111-1/+1
| | | | | | | | | As pointed by Yung Douglas, exceptions in test/clang-tidy/readability-else-after-return.cpp are causing PS4 bots to be red, because exceptions aren't enabled by default on PS4 target. This patch is a fix. llvm-svn: 278324
* Unbreak C++03 build.Eric Fiselier2016-08-111-1/+1
| | | | llvm-svn: 278323
* [ELF] Symbol assignment within output section descriptionEugene Leviant2016-08-118-95/+256
| | | | llvm-svn: 278322
* Avoid false dependencies of undef machine operandsMarina Yatsina2016-08-118-243/+320
| | | | | | | | | | | | | | | | | | | | This patch helps avoid false dependencies on undef registers by updating the machine instructions' undef operand to use a register that the instruction is truly dependent on, or use a register with clearance higher than Pref. Pseudo example: loop: xmm0 = ... xmm1 = vcvtsi2sdl eax, xmm0<undef> ... = inst xmm0 jmp loop In this example, selecting xmm0 as the undef register creates false dependency between loop iterations. This false dependency cannot be solved by inserting an xor before vcvtsi2sdl because xmm0 is alive at the point of the vcvtsi2sdl instruction. Selecting a different register instead of xmm0, especially a register that is not used in the loop, will eliminate this problem. Differential Revision: https://reviews.llvm.org/D22466 llvm-svn: 278321
* [Debug Info] Added a LIT test that covers the fix committed in rL277290.Amjad Aboud2016-08-111-0/+30
| | | | | | Differential Revision: http://reviews.llvm.org/D23056 llvm-svn: 278320
* Refactor test archetypes implementation.Eric Fiselier2016-08-118-167/+209
| | | | llvm-svn: 278319
* [AVX-512] Promote 512-bit integer loads to v8i64 similar to what is done for ↵Craig Topper2016-08-113-11/+12
| | | | | | 128/256-bit vectors for overall consistency. llvm-svn: 278318
* [AVX-512] Add patterns to allow EVEX encoded stores of ↵Craig Topper2016-08-113-3/+25
| | | | | | v16i16/v8i16/v16i8/v32i8 even when BWI is not supported. llvm-svn: 278317
* [AVX-512] Fix the 128-bit and 256-bit nontemporal load patterns with ↵Craig Topper2016-08-112-20/+10
| | | | | | elements type other than i64. These loads have all been promoted to v2i64/v4i64 loads so we need bitcasts or we end up selecting VMOVDQA32/VMOVDQU32 instead. llvm-svn: 278316
* bindings: expose diagnostic formatting to PythonSaleem Abdulrasool2016-08-111-0/+33
| | | | | | | | | This makes it easier for tools using the Python libclang bindings to display diagnostics in a manner consistent with clang. Patch by Omar Sandoval! llvm-svn: 278315
* [Profile] improve warning control option Xinliang David Li2016-08-112-5/+10
| | | | | | | | | Change --no-pgo-warn-missing to -pgo-warn-missing-function and negate the default. /NFC Add more test to make sure the warning is off by default llvm-svn: 278314
* [WebAssembly] Cleanup trailing whitespaceDominic Chen2016-08-111-2/+2
| | | | | | | | | | Summary: Test for commit access. Subscribers: jfb, dschuff Differential Revision: https://reviews.llvm.org/D23392 llvm-svn: 278313
* Make more fields of InlineParams Optional.Easwaran Raman2016-08-112-6/+10
| | | | | | Differential revision: https://reviews.llvm.org/D23386 llvm-svn: 278312
* Add missing REQUIRES for C++14Eric Fiselier2016-08-112-2/+2
| | | | llvm-svn: 278311
* [libcxx] Add std::anyEric Fiselier2016-08-1144-46/+3844
| | | | | | | | | | | | | | | | | | | Summary: This patch adds std::any by moving/adapting <experimental/any>. This patch also implements the std::any parts of p0032r3 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf) and LWG 2509 (http://cplusplus.github.io/LWG/lwg-defects.html#2509). I plan to push it in a day or two if there are no comments. Reviewers: mclow.lists, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D22733 llvm-svn: 278310
* [Statepoints] Minor cosmetic change; NFCSanjoy Das2016-08-111-1/+1
| | | | | | The verification failure message was missing a space. llvm-svn: 278309
* [asan] abort_on_error=1 by default on Android.Evgeniy Stepanov2016-08-112-2/+8
| | | | | | | | | | | | | With this change, the default behavior on error is to call abort() instead of _exit(). This should help the OS to capture a tombstone of the error. RAM usage of the lit test suite goes up because of all the tombstone gathering, so I'm limiting the parallelism of the test target. Previously it was based on the number of the CPUs on the host machine, which is definitely wrong. llvm-svn: 278308
* [MachOYAML] Don't output empty ExportTrieChris Bieneman2016-08-111-1/+2
| | | | | | The YAML representation was always outputting the root node of an export trie even if the trie was empty. While this doesn't really have any functional impact, it does add visual clutter to the yaml file. llvm-svn: 278307
* [Order Files] Don't use empty order filesChris Bieneman2016-08-111-2/+9
| | | | | | | | LD64 does optimization on symbol layouts that gets disabled whenever an order file is passed (even if it is empty). This change prevents disabling that optimization, and still enables iterative generation and usage of order files. If the order file is empty it does not setup the order file flags, instead it sets the empty order file as a configuration dependency. When the order file changes it will then trigger a re-configuration that adds the linker flag. llvm-svn: 278306
* dlopen & dlclose can't throw C++ or ObjC exceptions, so don't do the extra ↵Jim Ingham2016-08-111-0/+1
| | | | | | | | | | work of setting & deleting the breakpoints to watch for this. <rdar://problem/27780214> llvm-svn: 278305
* Fix a problem where if a uint64_t value is placed into a python dictionary ↵Greg Clayton2016-08-102-1/+36
| | | | | | | | and sent up to LLDB and converted to StructuredData, it would not be able to parse the full 64 bit value. A number like 0xf000000000000000L could be placed into a dictionary, and sent to LLDB and it would end up being 0xffffffffffffffff since it would overflow a int64_t. We leave the old code there, but if it overflows, we treat the number like a uint64_t and get it to decode correctly. Added a gtest to cover this so we don't regress. I verified the gtest failed prior to the fix, and it succeeds after it. <rdar://problem/27409265> llvm-svn: 278304
* GlobalISel: support same ConstantExprs as Instructions.Tim Northover2016-08-103-88/+143
| | | | | | | | It's more than just inttoptr, but the others can't be tested until we have support for non-trivial constants (they currently get unavoidably folded to a ConstantInt). llvm-svn: 278303
* Make pascal debugging work again.Greg Clayton2016-08-101-3/+4
| | | | | | <rdar://problem/27652051> llvm-svn: 278302
* Implement LWG 2148: Make non-enum default hash specialization well-formedEric Fiselier2016-08-103-9/+54
| | | | | | | | | | | | | | | | | Summary: This patch removes the static_assert for non-enum types in the primary hash template. Instead non-enum types create a hash<T> specialization that is not constructible nor callable. See also: * http://cplusplus.github.io/LWG/lwg-active.html#2543 * https://llvm.org/bugs/show_bug.cgi?id=28917 Reviewers: mclow.lists, EricWF Subscribers: mehdi_amini, cfe-commits Differential Revision: https://reviews.llvm.org/D23331 llvm-svn: 278300
* Centralize all select() calls into one place so that we can take advantage ↵Greg Clayton2016-08-108-211/+481
| | | | | | | | | of system specific optimizations to deal with more file descriptors than FD_SETSIZE on some systems. <rdar://problem/25325383> https://reviews.llvm.org/D22950 llvm-svn: 278299
* [ADT] Move LLVM_ATTRIBUTE_UNUSED_RESULT to the function, otherwise gcc 4.8 ↵Tim Shen2016-08-101-2/+2
| | | | | | | | complains about it. It's a fix for the original patch r278251. llvm-svn: 278298
* [lld][MachO] Fix LC_SEGEMENT[_64] filesize computation in -r mode.Lang Hames2016-08-102-1/+34
| | | | | | | | | | Using vmsize to populate this file works when outputing MachO images, but fails when outputting relocatable objects. This patch fixes the computation to use file offsets, which works for both output types. Fixes <rdar://problem/27727666> llvm-svn: 278297
* GlobalISel: add tests forgotten in r278293.Tim Northover2016-08-101-0/+53
| | | | llvm-svn: 278296
* [Documentation] Improve consistency.Eugene Zelenko2016-08-103-12/+12
| | | | | | Mention Clang-rename Emacs integration in release notes. llvm-svn: 278295
* [LangRef] Fix formatting (no semantic change)Sanjoy Das2016-08-101-5/+4
| | | | llvm-svn: 278294
* GlobalISel: implement simple function calls on AArch64.Tim Northover2016-08-108-48/+183
| | | | | | | We're still limited in the arguments we support, but this at least handles the basic cases. llvm-svn: 278293
* tsan: Remove __pointer_chk_guard@GLIBC_PRIVATE requirement for AArch64Adhemerval Zanella2016-08-102-12/+71
| | | | | | | | | | | | | | | | | | | | | Current AArch64 {sig}{set,long}jmp interposing requires accessing glibc private __pointer_chk_guard to get process xor mask to demangled the internal {sig}jmp_buf function pointers. It causes some packing issues, as described in gcc PR#71042 [1], and is is not a godd practice to rely on a private glibc namespace (since ABI is not meant to be stable). This patch fixes it by changing how libtsan obtains the guarded pointer value: at initialization a specific routine issues a setjmp call and using the mangled function pointer and the original value derive the random guarded pointer. Checked on aarch64 39-bit VMA. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71042 llvm-svn: 278292
* AMDGPU/SI: Implement amdgcn image intrinsics with samplerChangpeng Fang2016-08-106-3/+1045
| | | | | | | | | | | | | | | | | | | | | | Summary: This patch define and implement amdgcn image intrinsics with sampler. 1. define vdata type to be llvm_anyfloat_ty, address type to be llvm_anyfloat_ty, and rsrc type to be llvm_anyint_ty. As a result, we expect the intrinsics name to have three suffixes to overload each of these three types; 2. D128 as well as two other flags are implied in the three types, for example, if you use v8i32 as resource type, then r128 is 0! 3. don't expose TFE flag, and other flags are exposed in the instruction order: unrm, glc, slc, lwe and da. Differential Revision: http://reviews.llvm.org/D22838 Reviewed by: arsenm and tstellarAMD llvm-svn: 278291
* Changed sign of LastCallToStaticBounsPiotr Padlewski2016-08-103-3/+3
| | | | | | | | | | | | | | | | | Summary: I think it is much better this way. When I firstly saw line: Cost += InlineConstants::LastCallToStaticBonus; I though that this is a bug, because everywhere where the cost is being reduced it is usuing -=. Reviewers: eraman, tejohnson, mehdi_amini Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D23222 llvm-svn: 278290
* xfailed TestObjCNewSyntax.py on macOS for gmodulesTodd Fiala2016-08-101-0/+1
| | | | | | | Tracked by: rdar://27792848 llvm-svn: 278289
* Codegen: Don't tail-duplicate blocks with un-analyzable fallthrough.Kyle Butt2016-08-102-0/+44
| | | | | | | | | | | | If AnalyzeBranch can't analyze a block and it is possible to fallthrough, then duplicating the block doesn't make sense, as only one block can be the layout predecessor for the un-analyzable fallthrough. Submitted wit a test case, but NOTE: the test case doesn't currently fail. However, the test case fails with D20505 and would have saved me some time debugging. llvm-svn: 278288
* CodeGen: If Convert blocks that would form a diamond when tail-merged.Kyle Butt2016-08-103-69/+430
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following function currently relies on tail-merging for if conversion to succeed. The common tail of cond_true and cond_false is extracted, and this then forms a diamond pattern that can be successfully if converted. If this block does not get extracted, either because tail-merging is disabled or the threshold is higher, we should still recognize this pattern and if-convert it. Fixed a regression in the original commit. Need to un-reverse branches after reversing them, or other conversions go awry. define i32 @t2(i32 %a, i32 %b) nounwind { entry: %tmp1434 = icmp eq i32 %a, %b ; <i1> [#uses=1] br i1 %tmp1434, label %bb17, label %bb.outer bb.outer: ; preds = %cond_false, %entry %b_addr.021.0.ph = phi i32 [ %b, %entry ], [ %tmp10, %cond_false ] %a_addr.026.0.ph = phi i32 [ %a, %entry ], [ %a_addr.026.0, %cond_false ] br label %bb bb: ; preds = %cond_true, %bb.outer %indvar = phi i32 [ 0, %bb.outer ], [ %indvar.next, %cond_true ] %tmp. = sub i32 0, %b_addr.021.0.ph %tmp.40 = mul i32 %indvar, %tmp. %a_addr.026.0 = add i32 %tmp.40, %a_addr.026.0.ph %tmp3 = icmp sgt i32 %a_addr.026.0, %b_addr.021.0.ph br i1 %tmp3, label %cond_true, label %cond_false cond_true: ; preds = %bb %tmp7 = sub i32 %a_addr.026.0, %b_addr.021.0.ph %tmp1437 = icmp eq i32 %tmp7, %b_addr.021.0.ph %indvar.next = add i32 %indvar, 1 br i1 %tmp1437, label %bb17, label %bb cond_false: ; preds = %bb %tmp10 = sub i32 %b_addr.021.0.ph, %a_addr.026.0 %tmp14 = icmp eq i32 %a_addr.026.0, %tmp10 br i1 %tmp14, label %bb17, label %bb.outer bb17: ; preds = %cond_false, %cond_true, %entry %a_addr.026.1 = phi i32 [ %a, %entry ], [ %tmp7, %cond_true ], [ %a_addr.026.0, %cond_false ] ret i32 %a_addr.026.1 } Without tail-merging or diamond-tail if conversion: LBB1_1: @ %bb @ =>This Inner Loop Header: Depth=1 cmp r0, r1 ble LBB1_3 @ BB#2: @ %cond_true @ in Loop: Header=BB1_1 Depth=1 subs r0, r0, r1 cmp r1, r0 it ne cmpne r0, r1 bgt LBB1_4 LBB1_3: @ %cond_false @ in Loop: Header=BB1_1 Depth=1 subs r1, r1, r0 cmp r1, r0 bne LBB1_1 LBB1_4: @ %bb17 bx lr With diamond-tail if conversion, but without tail-merging: @ BB#0: @ %entry cmp r0, r1 it eq bxeq lr LBB1_1: @ %bb @ =>This Inner Loop Header: Depth=1 cmp r0, r1 ite le suble r1, r1, r0 subgt r0, r0, r1 cmp r1, r0 bne LBB1_1 @ BB#2: @ %bb17 bx lr llvm-svn: 278287
* Fix the lookup of dictionary values by name to not do a linear search.Greg Clayton2016-08-101-8/+3
| | | | llvm-svn: 278286
* Disable sancov tests failing due to apparent endianness issuesReid Kleckner2016-08-102-2/+2
| | | | | | Undoes some of the effect of r278271 llvm-svn: 278285
* [sancov] Port sancov -print-coverage-pcs to COFFReid Kleckner2016-08-103-15/+59
| | | | | | | | | | | The export table is not considered part of the object file symbol table, so we have to look through it separately. Reviewers: kcc Differential Revision: https://reviews.llvm.org/D23321 llvm-svn: 278284
* std:: quailfy the calls for cend/crend/cbegin/cend. Fixes bug 28927.Marshall Clow2016-08-102-8/+59
| | | | llvm-svn: 278282
* Fix UB in APInt::ashrJonathan Roelofs2016-08-102-5/+6
| | | | | | | | i64 -1, whose sign bit is the 0th one, can't be left shifted without invoking UB. https://reviews.llvm.org/D23362 llvm-svn: 278280
* [Documentation] Fix style and grammar mistake in Clang-tidy ↵Eugene Zelenko2016-08-101-1/+1
| | | | | | readability-else-after-return description spotted by Alexander Kornienko. llvm-svn: 278279
* AMDGPU: s_setpc_b64 should be an indirect branchMatt Arsenault2016-08-101-1/+2
| | | | llvm-svn: 278278
* AMDGPU: Set sizes on control flow pseudosMatt Arsenault2016-08-101-9/+17
| | | | llvm-svn: 278276
* AMDGPU: Remove empty file commentMatt Arsenault2016-08-101-1/+0
| | | | llvm-svn: 278275
* AMDGPU: Remove unnecessary castMatt Arsenault2016-08-101-4/+2
| | | | llvm-svn: 278274
* AMDGPU: Change insertion point of si_mask_branchMatt Arsenault2016-08-107-29/+49
| | | | | | | | | | | | | Insert before the skip branch if one is created. This is a somewhat more natural placement relative to the skip branches, and makes it possible to implement analyzeBranch for skip blocks. The test changes are mostly due to a quirk where the block label is not emitted if there is a terminator that is not also a branch. llvm-svn: 278273
OpenPOWER on IntegriCloud