summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU: Fix verifier errors in SILowerControlFlowMatt Arsenault2016-06-2213-144/+444
| | | | | | | | | | | | | The main sin this was committing was using terminator instructions in the middle of the block, and then not updating the block successors / predecessors. Split the blocks up to avoid this and introduce new pseudo instructions for branches taken with exec masking. Also use a pseudo instead of emitting s_endpgm and erasing it in the special case of a non-void return. llvm-svn: 273467
* [Hexagon] Add SDAG preprocessing step to expose shifted addressing modesKrzysztof Parzyszek2016-06-222-1/+104
| | | | | | | | | | | Transform: (store ch addr (add x (add (shl y c) e))) to: (store ch addr (add x (shl (add y d) c))), where e = (shl d c) for some integer d. The purpose of this is to enable generation of loads/stores with shifted addressing mode, i.e. mem(x+y<<#c). For that, the shift value c must be 0, 1 or 2. llvm-svn: 273466
* [driver][mips] Factor out findMIPSMultilibs code into separate functions. NFCSimon Atanasyan2016-06-221-189/+185
| | | | | | | | The findMIPSMultilibs is too long. One more reason for splitting is to escape redundant calls of MultilibSet::FilterOut method which lead to disk access. llvm-svn: 273465
* [asan] Add a test case for global registrationRyan Govostes2016-06-221-0/+56
| | | | | | | | This test case checks that globals from all object files are being registered after they've been linked together. It also checks that globals from libraries loaded at runtime are registered. llvm-svn: 273464
* [Coverage] Push a new region when handling CXXTryStmtsVedant Kumar2016-06-223-2/+26
| | | | | | | | Push a new region for the try block and propagate execution counts through it. This ensures that catch statements get a region counter distinct from the try block's counter. llvm-svn: 273463
* [LTO] Update after API change in LLVM. NFC.Davide Italiano2016-06-221-1/+1
| | | | llvm-svn: 273462
* [UpdateCompilerUsed] API rename and cleanup, suggested by Rafaael.Davide Italiano2016-06-224-7/+4
| | | | | | | | | * UpdateCompilerUsed() -> updateCompilerUsed() * ThinLTO doesn't use the API so we can remove the include * Clean up unused #include <functional> from the header * Rename #ifdef guard comment to be correct. llvm-svn: 273461
* [MBFI]: Add a new suboption for graph viewerXinliang David Li2016-06-222-3/+22
| | | | | | | | | -view-machine-block-freq-propagation-dags currently support integer and fraction as the suboptions. This patch adds the 'count' suboption to display actual profile count if available. llvm-svn: 273460
* [ValueTracking] improve ComputeNumSignBits for vector constantsSanjay Patel2016-06-223-9/+37
| | | | | | | | | | | This is similar to the computeKnownBits improvement in rL268479. There's probably more we can do for vector logic instructions, but this should let us see non-splat constant masking ops that can become vector selects instead of and/andn/or sequences. Differential Revision: http://reviews.llvm.org/D21610 llvm-svn: 273459
* [AArch64] Remove an overly aggressive assert.Chad Rosier2016-06-222-6/+18
| | | | llvm-svn: 273458
* Start using shouldAssumeDSOLocal on Hexagon.Rafael Espindola2016-06-222-2/+22
| | | | | | | Include a token test showing that access to private is now the same as to internal. llvm-svn: 273457
* Preserve DebugInfo when replacing values in DAGCombinerNirav Dave2016-06-228-15/+34
| | | | | | | | | | | | | | | | | | | | | Recommiting after fixing over-aggressive assertion [DAG] Previously debug values would transfer debuginfo for the selected start node for a replacement which allows for debug to be dropped. Push debug value transfer to occur with node/value replacement in SelectionDAG, remove now extraneous transfers of debug values. This refixes PR9817 which was being incompletely checked in the testsuite. Reviewers: jyknight Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D21037 llvm-svn: 273456
* AMDGPU: Add convergent flag to INLINEASM instruction.Wei Ding2016-06-226-2/+58
| | | | | | Differential Revision: http://reviews.llvm.org/D21214 llvm-svn: 273455
* [codeview] Set the new IntroducedVirtual debug info flagReid Kleckner2016-06-222-3/+23
| | | | llvm-svn: 273454
* [codeview] Add IntroducingVirtual debug info flagReid Kleckner2016-06-223-22/+301
| | | | | | | | CodeView needs to know if a virtual method was introduced in the current class, and base classes may not have complete type information, so we need to thread this bit through from the frontend. llvm-svn: 273453
* Create parallel-libs subproject in LLVMJason Henline2016-06-221-0/+90
| | | | | | | This initial commit just sets up the basic directory structure and includes the charter document as README.rst to describe the purpose of the project. llvm-svn: 273452
* [LTO] Include ASM undefs in llvm.compiler_used.Davide Italiano2016-06-224-4/+54
| | | | | | | | | This fixes PR28218. Thanks to Rafael for spotting a failure in the SHARED_LIBS build! Differential Revision: http://reviews.llvm.org/D21577 llvm-svn: 273451
* Make this test a bit more strict and fix it.Rafael Espindola2016-06-221-7/+8
| | | | | | | | We do pass -pic-level to cc1 when targeting darwin. Given that codegen itself doesn't use it, the only difference is whether __PIE__ and __pie__ are defined. llvm-svn: 273450
* Removing whitespace from test commit rL273447Jason Henline2016-06-221-1/+1
| | | | | | Undoing the trivial change I introduced in rL273447. llvm-svn: 273449
* AMDGPU: Make FrameLowering stack alignment 16Matt Arsenault2016-06-221-3/+4
| | | | | | | We don't need it to be that high. The natural alignment for a single workitem's stack is 16. llvm-svn: 273448
* Add whitespace to check commit accessJason Henline2016-06-221-1/+1
| | | | | | | No functional changes. Just adding whitespace in a comment in order to check that I am able to push a commit to the repo. llvm-svn: 273447
* [codeview] Fix trivial bug in OneMethodRecord::isIntroducingVirtualReid Kleckner2016-06-221-4/+2
| | | | | | | | | | | These should be equality comparisons. Fixes assertions while self-hosting clang with codeview debug info. Ultimately this is going to be covered by real tests for virtual method emission, so I'm not adding a "don't crash on this input" test that I'll remove soon afterwards. llvm-svn: 273446
* Don't omit `this' from expression args if it couldn't be read, but warn loudly.Sean Callanan2016-06-221-5/+4
| | | | | | <rdar://problem/26935520> llvm-svn: 273445
* [asan] Do not instrument accesses to profiling globalsVedant Kumar2016-06-222-5/+23
| | | | | | | | | | | | | It's only useful to asan-itize profiling globals while debugging llvm's profiling instrumentation passes. Enabling asan along with instrprof or gcov instrumentation shouldn't incur extra overhead. This patch is in the same spirit as r264805 and r273202, which disabled tsan instrumentation of instrprof/gcov globals. Differential Revision: http://reviews.llvm.org/D21541 llvm-svn: 273444
* [codeview] Defer emission of all referenced complete recordsReid Kleckner2016-06-225-37/+323
| | | | | | | | | | | | | | | | | | | | | | | | | | This is the motivating example: struct B { int b; }; struct A { B *b; }; int f(A *p) { return p->b->b; } Clang emits complete types for both A and B because they are required to be complete, but our CodeView emission would only emit forward declarations of A and B. This was a consequence of the fact that the A* type must reference the forward declaration of A, which doesn't reference B at all. We can't eagerly emit complete definitions of A and B when we request the forward declaration's type index because of recursive types like linked lists. If we did that, our stack usage could get out of hand, and it would be possible to lower a type while attempting to lower a type, and we would need to double check if our type is already present in the TypeIndexMap after all recursive getTypeIndex calls. Instead, defer complete type emission until after all type lowering has completed. This ensures that all referenced complete types are emitted, and that type lowering is not re-entrant. llvm-svn: 273443
* [BFI]: NFC refactoringXinliang David Li2016-06-223-11/+27
| | | | | | | move getBlockProfileCount implementation to the base class so that MBFI can share too. llvm-svn: 273442
* [analyzer] Teach ObjCDeallocChecker about XCTestCaseDevin Coughlin2016-06-222-9/+33
| | | | | | | | | | | Like with SenTestCase, subclasses of XCTestCase follow a "tear down" idiom to release instance variables and so typically do not release ivars in -dealloc. This commit applies the existing special casing for SenTestCase to XCTestCase as well. rdar://problem/25884696 llvm-svn: 273441
* Add support for /Ob1 and -finline-hint-functions flagsHans Wennborg2016-06-2211-10/+130
| | | | | | | | | | | | | | | | Add support for /Ob1 (and equivalent -finline-hint-functions), which enable inlining only for functions marked inline, either explicitly (via inline keyword, for example), or implicitly (function definition in class body, for example). This works by enabling inlining pass, and adding noinline attribute to every function not marked inline. Patch by Rudy Pons <rudy.pons@ilod.org>! Differential Revision: http://reviews.llvm.org/D20647 llvm-svn: 273440
* Fix bug in futex fast path inside kmp_csupport.cJonathan Peyton2016-06-221-1/+1
| | | | llvm-svn: 273439
* Apply the KMP_USE_FUTEX feature macro everywhereJonathan Peyton2016-06-224-23/+25
| | | | llvm-svn: 273438
* Fix separator in header commentTobias Grosser2016-06-221-1/+1
| | | | | | | This cleanup was suggested by Eugene Zelenko <eugene.zelenko@gmail.com> in http://reviews.llvm.org/D21488 and was split out to increase readability. llvm-svn: 273437
* Add missing copyright headerTobias Grosser2016-06-221-0/+9
| | | | | | | This cleanup was suggested by Eugene Zelenko <eugene.zelenko@gmail.com> in http://reviews.llvm.org/D21488 and was split out to increase readability. llvm-svn: 273436
* clang-tidy: apply modern-use-nullptr fixesTobias Grosser2016-06-224-7/+7
| | | | | | | | | | Instead of using 0 or NULL use the C++11 nullptr symbol when referencing null pointers. This cleanup was suggested by Eugene Zelenko <eugene.zelenko@gmail.com> in http://reviews.llvm.org/D21488 and was split out to increase readability. llvm-svn: 273435
* Widen EHScope::ClenupBitFields::FixupDepth to avoid overflowing it (PR23490)Hans Wennborg2016-06-222-9/+37
| | | | | | | | | | | | | | It currently only takes 2048 gotos to overflow the FixupDepth bitfield, causing silent miscompilation. Apparently some parser generators run into this (see PR). I don't know that that data structure is terribly size sensitive anyway, and since there's no room to widen the bitfield, let's just use a separate word in EHCatchScope for it. Differential Revision: http://reviews.llvm.org/D21566 llvm-svn: 273434
* [SystemZ] Recognize RISBG opportunities involving a truncateZhan Jun Liau2016-06-223-3/+68
| | | | | | | | | | | | | | | | | | | Summary: Recognize RISBG opportunities where the end result is narrower than the original input - where a truncate separates the shift/and operations. The motivating case is some code in postgres which looks like: srlg %r2, %r0, 11 nilh %r2, 255 Reviewers: uweigand Author: RolandF Differential Revision: http://reviews.llvm.org/D21452 llvm-svn: 273433
* [Hexagon] Handle expansion of cmpxchgKrzysztof Parzyszek2016-06-223-0/+25
| | | | llvm-svn: 273432
* [codeview] Remove ClassInfoMapReid Kleckner2016-06-222-26/+13
| | | | | | | | | | From a design perspective, complete record type emission should not depend on information from other complete record types. Currently this map is unused, and needlessly accumulates data throughout compilation. llvm-svn: 273431
* [MBFI]: show branch probability in DOT graphXinliang David Li2016-06-221-0/+18
| | | | | | Differential Revision: http://reviews.llvm.org/D21596 llvm-svn: 273430
* llvm-ar: reduce some duplication, NFCSaleem Abdulrasool2016-06-221-27/+19
| | | | | | | Improve the previous change by using a local function to reduce the duplication of the object file scanning. NFC. llvm-svn: 273429
* Upgrade old memset/memcpy signatures (without isVolatile argument) in testsArtur Pilipenko2016-06-225-9/+13
| | | | | | We no longer have corresponding code in autoupgrade and the vast majority of the tests were fixed long time ago. Fix the remaining few. One of the verifier test cases is marked as XFAIL because it was passing only because the signature was incorrect. llvm-svn: 273428
* [ELF] - Simplify loop in parseVersionSymbols(). NFC.George Rimar2016-06-221-4/+2
| | | | llvm-svn: 273427
* [ELF] - Show explicit error if extern keyword is used in version script.George Rimar2016-06-222-0/+7
| | | | | | | Since we do not have plans to support it in closest future, it is better than common script parsing error. llvm-svn: 273426
* [OpenCL] Use function metadata to represent kernel attributesYaxun Liu2016-06-224-81/+93
| | | | | | | | This patch uses function metadata to represent reqd_work_group_size, work_group_size_hint and vector_type_hint kernel attributes and kernel argument info. Differential Revision: http://reviews.llvm.org/D20979 llvm-svn: 273425
* NFC. Move Verifier::verifyIntrinsicType to Intrinsics.hArtur Pilipenko2016-06-223-148/+151
| | | | | | | | | | Move Verifier::verifyIntrinsicType to Intrinsics::matchIntrinsicsType. Will be used to accumulate overloaded types of a given intrinsic by the upcoming patch to fix intrinsics names when overloaded types are renamed. Reviewed By: reames Differential Revision: http://reviews.llvm.org/D19372 llvm-svn: 273424
* [ELF] - Implemented version script hierarchies.George Rimar2016-06-224-4/+84
| | | | | | | | | | | | | | | | | | | | Patch implements hierarchies for version scripts. This allows to handle script files with dependencies, like next one has: LIBSAMPLE_1.0{ global: a; }; LIBSAMPLE_2.0 { global: b; }LIBSAMPLE_1.0; Differential revision: http://reviews.llvm.org/D21556 llvm-svn: 273423
* clang-format: [JS] Do not break before 'as'.Martin Probst2016-06-222-2/+7
| | | | | | | | | | | | | | Summary: 'as' is a pseudo operator, so automatic semicolon insertion kicks in and the code fails to part. Reviewers: djasper Subscribers: klimek Differential Revision: http://reviews.llvm.org/D21576 llvm-svn: 273422
* [InstSimplify] add ashr tests including vector typesSanjay Patel2016-06-221-0/+42
| | | | llvm-svn: 273421
* [SLPVectorizer][X86] Added ceil/floor/nearbyint/rint/trunc vectorization testsSimon Pilgrim2016-06-221-0/+2158
| | | | llvm-svn: 273420
* [InstSimplify] regenerate checksSanjay Patel2016-06-221-212/+256
| | | | llvm-svn: 273419
* Update testcases after r273417, which changed llvm-readobj output slightly.George Rimar2016-06-222-45/+31
| | | | llvm-svn: 273418
OpenPOWER on IntegriCloud