summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [asan] Add openlog() on Android.Evgeniy Stepanov2016-09-071-2/+2
| | | | | | | | Normally, syslog() uses argv[0] for the log tag; bionic, however, would crash in syslog() before libc constructor unless the log tag is explicitly set with openlog(). llvm-svn: 280875
* clang-format: [JavaScript] Do requoting in a separate passDaniel Jasper2016-09-072-44/+72
| | | | | | | | | | | | | | | | | | The attempt to fix requoting behavior in r280487 after changes to tooling::Replacements are incomplete. We essentially need to add to replacements at the same position, one to insert a line break and one to change the quoting and that's incompatible with the new tooling::Replacement API, which does not allow for order-dependent Replacements. To make the order clear, Replacements::merge() has to be used, but that requires the merged Replacement to actually refer to the changed text, which is hard to reproduce for the requoting. This change fixes the behavior by moving the requoting to a completely separate pass. The added benefit is that no weird ColumnWidth calculations are necessary anymore and this should just work even if we implement string literal splitting in the future. llvm-svn: 280874
* [InstCombine] use m_APInt to allow icmp (and (sh X, Y), C2), C1 folds for ↵Sanjay Patel2016-09-076-67/+31
| | | | | | splat constant vectors llvm-svn: 280873
* [SE] Add getName method to Device classJason Henline2016-09-072-0/+7
| | | | | | | | | | Reviewers: jhen Subscribers: parallel_libs-commits Differential Revision: https://reviews.llvm.org/D24240 llvm-svn: 280872
* Avoid ambiguity in calling atom_add functions.Jan Vesely2016-09-074-4/+4
| | | | | | | | | | clang (since r280553) allows pointer casts in function overloads, so we need to disambiguate the second argument. clang might be smarter about overloads in the future see https://reviews.llvm.org/D24113, but let's be safe in libclc anyway. llvm-svn: 280871
* Fix some Clang-tidy modernize-use-using and Include What You Use warnings; ↵Eugene Zelenko2016-09-079-100/+377
| | | | | | | | other minor fixes. Differential revision: https://reviews.llvm.org/D24115 llvm-svn: 280870
* [CUDA] Rework "optimizations" and "publication" section in ↵Justin Lebar2016-09-071-52/+45
| | | | | | CompileCudaWithLLVM.rst. llvm-svn: 280869
* [CUDA] Clarify that -l and -L only need to be passed when linking, in ↵Justin Lebar2016-09-071-0/+5
| | | | | | CompileCudaWithLLVM.rst. llvm-svn: 280868
* [CUDA] Further reformat "invoking clang" section of CompileCudaWithLLVM.rst.Justin Lebar2016-09-071-16/+16
| | | | llvm-svn: 280867
* [SimplifyCFG] Don't try to create metadata-valued PHIsHal Finkel2016-09-072-0/+55
| | | | | | | | | | | | | | | | We can't create metadata-valued PHIs; don't try to do so when sinking. I created a test case for this using the @llvm.type.test intrinsic, because it takes a metadata parameter and does not have severe side effects (thus SimplifyCFG is willing to otherwise sink it). Previously, running the test case would crash with: Invalid use of metadata! %.sink = select i1 %flag, metadata <...>, metadata <0x4e45dc0> LLVM ERROR: Broken function found, compilation aborted! llvm-svn: 280866
* [LoopUnroll] Correct a debug message. NFC.Haicheng Wu2016-09-071-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D24299 llvm-svn: 280865
* ELF: Add -Qy as ignored optionEd Maste2016-09-071-0/+1
| | | | | | | | | GCC passes it by default on powerpc64 on FreeBSD. GNU ld claims "this option is ignored for SVR4 compatibility", so we can ignore it too. Differential Revision: https://reviews.llvm.org/D24313 llvm-svn: 280864
* [compiler-rt] Allow sanitizers to be compiled for windows with clangFrancis Ricci2016-09-072-2/+10
| | | | | | | | | | | | | | Summary: A few small changes required to permit building the sanitizers with Clang instead of only with MSVC. Reviewers: compnerd, beanz, rnk Subscribers: beanz, timurrrr, kubabrecka, dberris, llvm-commits Differential Revision: https://reviews.llvm.org/D24092 llvm-svn: 280863
* Shift-left (ISD::SHL) operation crashes on "DAG Legalization" phase.Elena Demikhovsky2016-09-072-21/+60
| | | | | | | | | | | https://llvm.org/bugs/show_bug.cgi?id=29058. While node legalization we tried to legalize its operands. If an operand node is replaced during legalization the user node may be destroyed. Differential Revision: https://reviews.llvm.org/D24244 llvm-svn: 280862
* [InstCombine] allow icmp (and X, C2), C1 folds for splat constant vectorsSanjay Patel2016-09-072-55/+55
| | | | | | | | This is a revert of r280676 which was a revert of r280637; ie, this is r280637 again. It was speculatively reverted to help debug buildbot failures. llvm-svn: 280861
* Fix inconsistent indentation.Rui Ueyama2016-09-075-112/+30
| | | | llvm-svn: 280860
* [CUDA] Fix typo in link in CompileCudaWithLLVM.Justin Lebar2016-09-071-1/+1
| | | | llvm-svn: 280859
* Move field to the base class. NFC.Rafael Espindola2016-09-071-1/+2
| | | | llvm-svn: 280858
* [CUDA] Move AXPY example into gist.Justin Lebar2016-09-071-86/+59
| | | | | | | | | No need to have a long inline code snippet in this doc. Also move "flags that control numerical code" underneath the "invoking clang" section, and reformat things a bit. llvm-svn: 280857
* Delete dead field. NFC.Rafael Espindola2016-09-074-15/+15
| | | | llvm-svn: 280856
* [RDF] Fix liveness analysis for phi nodes with shadow usesKrzysztof Parzyszek2016-09-073-37/+146
| | | | | | | | Shadow uses need to be analyzed together, since each individual shadow will only have a partial reaching def. All shadows together may cover a given register ref, while each individual shadow may not. llvm-svn: 280855
* [compiler-rt] Fix library suffixes on windowsFrancis Ricci2016-09-072-2/+17
| | | | | | | | | | | | | | | Summary: Make sure that windows libraries contain the suffixes expected by clang. This is expecially important when compiling the windows builtins with clang, as cmake will use .a as the suffix by default. Reviewers: beanz, compnerd Subscribers: llvm-commits, dberris Differential Revision: https://reviews.llvm.org/D24046 llvm-svn: 280854
* Don't reuse a variable name in a nested scope. NFC.Michael Kuperstein2016-09-071-6/+6
| | | | llvm-svn: 280853
* Move CHECK right before the function it describes.George Burgess IV2016-09-071-1/+1
| | | | llvm-svn: 280852
* [RDF] Introduce "undef" flag for ref nodesKrzysztof Parzyszek2016-09-073-24/+74
| | | | llvm-svn: 280851
* [CUDA] Simplify build/install instructions in CompileCudaWithLLVM.rst.Justin Lebar2016-09-071-43/+25
| | | | llvm-svn: 280850
* [CUDA] Call it "CUDA", not "CUDA C/C++" in our docs.Justin Lebar2016-09-071-4/+4
| | | | | | | CUDA is an extension to C++ -- there is no such thing as "CUDA C". But also, the language is much more commonly called "CUDA" than "CUDA C++". llvm-svn: 280849
* [CUDA] Expand upon --cuda-gpu-arch flag in CompileCudaWithLLVM doc.Justin Lebar2016-09-071-0/+7
| | | | llvm-svn: 280848
* [Sema] Compare bad conversions in overload resolution.George Burgess IV2016-09-074-7/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r280553 introduced an issue where we'd emit ambiguity errors for code like: ``` void foo(int *, int); void foo(unsigned int *, unsigned int); void callFoo() { unsigned int i; foo(&i, 0); // ambiguous: int->unsigned int is worse than int->int, // but unsigned int*->unsigned int* is better than // int*->int*. } ``` This patch fixes this issue by changing how we handle ill-formed (but valid) implicit conversions. Candidates with said conversions now always rank worse than candidates without them, and two candidates are considered to be equally bad if they both have these conversions for the same argument. Additionally, this fixes a case in C++11 where we'd complain about an ambiguity in a case like: ``` void f(char *, int); void f(const char *, unsigned); void g() { f("abc", 0); } ``` ...Since conversion to char* from a string literal is considered ill-formed in C++11 (and deprecated in C++03), but we accept it as an extension. llvm-svn: 280847
* [powerpc] Move #if to appease warnings-as-errors testsBill Seurer2016-09-071-3/+4
| | | | | | | Previous patch added a #if which caused a variable and function to be unused. llvm-svn: 280846
* Add a few more test for []-style uuid attributes.Nico Weber2016-09-071-0/+27
| | | | | | | | - Should diag on a function (clang-cl warns; it's an error in cl) - Test the attribute on nested classes (clang-cl is more permissive and more self-consistent than cl here) llvm-svn: 280845
* Fix a few oversights in the clang-tidy VS plugin.Zachary Turner2016-09-074-9/+2
| | | | | | | Over-zealous cleanup of using statements removed some that were actually needed. Also cleaned up a few warnings. llvm-svn: 280844
* Rename test pr30298.ll to shrink_vmul_sse.ll, to make the name more ↵Wei Mi2016-09-071-0/+4
| | | | | | | | meaningful, NFC. Add PR number and comment in pr30298.ll to explain what is testing. llvm-svn: 280843
* Do not validate pch when -fno-validate-pch is setYaxun Liu2016-09-073-5/+79
| | | | | | | | | | | | | | | | There is a bug causing pch to be validated even though -fno-validate-pch is set. This patch fixes it. ASTReader relies on ASTReaderListener to initialize SuggestedPredefines, which is required for compilations using PCH. Before this change, PCHValidator is the default ASTReaderListener. After this change, when -fno-validate-pch is set, PCHValidator is disabled, but we need a replacement ASTReaderListener to initialize SuggestedPredefines. Class SimpleASTReaderListener is implemented for this purpose. This change only affects -fno-validate-pch. There is no functional change if -fno-validate-pch is not set. If -fno-validate-pch is not set, conflicts in predefined macros between pch and current compiler instance causes error. If -fno-validate-pch is set, predefine macros in current compiler override those in pch so that compilation can continue. Differential Revision: https://reviews.llvm.org/D24054 llvm-svn: 280842
* AMDGPU: Remove a useless variable which caused build failure for lld.Yaxun Liu2016-09-071-1/+1
| | | | llvm-svn: 280841
* Add a clang-tidy visual studio extension.Zachary Turner2016-09-0738-0/+3309
| | | | | | | | | | | For now this only adds the UI necessary to configure clang-tidy settings graphically, and it enables reading in and saving out of .clang-tidy files. It does not actually run clang-tidy on any source files yet. Differential Revision: https://reviews.llvm.org/D23848 llvm-svn: 280840
* Resubmit "Add a test for clang-tidy using the clang-cl driver."Zachary Turner2016-09-071-0/+17
| | | | | | | | This was originally reverted because the patch on the clang tooling side was reverted. That patch is being resubmitted, so this patch is resubmitted as well. llvm-svn: 280839
* Try contextually converting condition of constexpr if to Boolean valueIsmail Pazarbasi2016-09-073-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: C++1z 6.4.1/p2: If the if statement is of the form if constexpr, the value of the condition shall be a contextually converted constant expression of type bool [...] C++1z 5.20/p4: [...] A contextually converted constant expression of type bool is an expression, contextually converted to bool (Clause4), where the converted expression is a constant expression and the conversion sequence contains only the conversions above. [...] Contextually converting result of an expression `e` to a Boolean value requires `bool t(e)` to be well-formed. An explicit conversion function is only considered as a user-defined conversion for direct-initialization, which is essentially what //contextually converted to bool// requires. Also, fixes PR28470. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24158 llvm-svn: 280838
* Don't reduce the width of vector mul if the target doesn't support SSE2.Wei Mi2016-09-072-1/+45
| | | | | | | | | The patch is to fix PR30298, which is caused by rL272694. The solution is to bail out if the target has no SSE2. Differential Revision: https://reviews.llvm.org/D24288 llvm-svn: 280837
* [MS] Fix prologue this adjustment when 'this' is passed indirectlyReid Kleckner2016-09-076-10/+45
| | | | | | | | | | | | Move the logic for doing this from the ABI argument lowering into EmitParmDecl, which runs for all parameters. Our codegen is slightly suboptimal in this case, as we may leave behind a dead store after optimization, but it's 32-bit inalloca, and this fixes the bug in a robust way. Fixes PR30293 llvm-svn: 280836
* Add more triple to conditional-tailcall.ll testHans Wennborg2016-09-071-1/+1
| | | | llvm-svn: 280835
* Typo. NFC.Chad Rosier2016-09-071-1/+1
| | | | llvm-svn: 280834
* CodeGen: ensure that libcalls are always AAPCS CCSaleem Abdulrasool2016-09-073-9/+171
| | | | | | | The original commit was too aggressive about marking LibCalls as AAPCS. The libcalls contain libc/libm/libunwind calls which are not AAPCS, but C. llvm-svn: 280833
* X86: Fold tail calls into conditional branches where possible (PR26302)Hans Wennborg2016-09-078-17/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When branching to a block that immediately tail calls, it is possible to fold the call directly into the branch if the call is direct and there is no stack adjustment, saving one byte. Example: define void @f(i32 %x, i32 %y) { entry: %p = icmp eq i32 %x, %y br i1 %p, label %bb1, label %bb2 bb1: tail call void @foo() ret void bb2: tail call void @bar() ret void } before: f: movl 4(%esp), %eax cmpl 8(%esp), %eax jne .LBB0_2 jmp foo .LBB0_2: jmp bar after: f: movl 4(%esp), %eax cmpl 8(%esp), %eax jne bar .LBB0_1: jmp foo I don't expect any significant size savings from this (on a Clang bootstrap I saw 288 bytes), but it does make the code a little tighter. This patch only does 32-bit, but 64-bit would work similarly. Differential Revision: https://reviews.llvm.org/D24108 llvm-svn: 280832
* ELF: add version script void function test caseEd Maste2016-09-071-2/+21
| | | | | | | | | | | | After r280733 we use LLVM's demangler in lld. As a result we no longer have a discrepancy between f() and f(void) on FreeBSD (due to an issue with FreeBSD's system demangler). Restore a test case for a void arg function. Differential Revision: https://reviews.llvm.org/D24305 llvm-svn: 280831
* [lib/LTO] Add a way to run a custom pipelineDavide Italiano2016-09-075-1/+84
| | | | | | Differential Revision: https://reviews.llvm.org/D24095 llvm-svn: 280830
* AMDGPU: Add hidden kernel arguments to runtime metadataYaxun Liu2016-09-073-114/+1483
| | | | | | | | OpenCL kernels have hidden kernel arguments for global offset and printf buffer. For consistency, these hidden argument should be included in the runtime metadata. Also updated kernel argument kind metadata. Differential Revision: https://reviews.llvm.org/D23424 llvm-svn: 280829
* [clang-offload-bundler] Fix some Clang-tidy modernize-use-override and ↵Eugene Zelenko2016-09-071-80/+120
| | | | | | | | Include What You Use warnings; other minor fixes. Differential revision: https://reviews.llvm.org/D24165 llvm-svn: 280828
* Add missing include. White space.Vassil Vassilev2016-09-071-1/+2
| | | | llvm-svn: 280827
* Add MS __nop intrinsic to intrin.hReid Kleckner2016-09-072-0/+6
| | | | | | | | | | | | | | | Summary: There was no definition for __nop function - added inline assembly. Patch by Albert Gutowski! Reviewers: rnk, thakis Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24286 llvm-svn: 280826
OpenPOWER on IntegriCloud