summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix instance of -Wdelete-incompleteReid Kleckner2016-06-221-0/+1
| | | | llvm-svn: 273508
* Prune some includes from headers and sink some inline functionsReid Kleckner2016-06-2210-23/+37
| | | | | | | | MCSymbol.h shouldn't pull in MCAssembler.h, just MCFragment.h. MCLinkerOptimizationHint.h shouldn't need MCMachObjectWriter.h. The rest is fixing the fallout. llvm-svn: 273507
* [PM]: LoopAccessInfo simple refactoringXinliang David Li2016-06-222-29/+31
| | | | | | | To make definition of mov ctors easier. Differential Revision: http://reviews.llvm.org/D21563 llvm-svn: 273506
* [pdb] Treat a stream size of ~0U as 0Reid Kleckner2016-06-221-2/+4
| | | | | | My PDBs always have this size for stream 11. Not sure why. llvm-svn: 273504
* [MachO] Finish moving fat header swap functions to MachO.hChris Bieneman2016-06-222-29/+9
| | | | | | | | This is a follow-up to r273479. At the time I wrote r273479 I didn't connect the dots that the functions I was adding had to exist somewhere. Turns out, they do. This finishes moving the functions to MachO.h. Existing MachO fat header tests like test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 execute this code. llvm-svn: 273502
* [ImplicitNullChecks] Hoist trivial depdendencies if possibleSanjoy Das2016-06-222-20/+425
| | | | | | | | | | | | | | | | | | | | | | When trying to convert a loading instruction into a FAULTING_LOAD, we sometimes face code like this: if %R10 is not null: %R9<def> = MOV32ri Immediate %R9<def, tied> = AND32rm %R9, 0x20(%R10) else: goto TRAP In these cases we would like to use the AND32rm instruction as the faulting operation by hoisting the "depedency" def-ing %R9 also above the control flow, transforming the program into: %R9<def> = MOV32ri Immediate %R9<def, tied> = FAULTING_LOAD_OP(AND32rm %R9, 0x20(%R10), FailPath: TRAP) This change teaches ImplicitNullChecks to do the above, when safe. llvm-svn: 273501
* Use shouldAssumeDSOLocal.Rafael Espindola2016-06-222-5/+21
| | | | | | With this it handle -fPIE. llvm-svn: 273499
* Extract a few variables to make 'if' smaller. NFC.Rafael Espindola2016-06-221-7/+8
| | | | llvm-svn: 273497
* AMDGPU/SI: Define an intrinsic to expose ds_swizzle_b32Changpeng Fang2016-06-223-0/+32
| | | | | | | | Reviewers: tstellarAMD, arsenm Differential Revision: http://reviews.llvm.org/D21533 llvm-svn: 273496
* [codeview] Write LF_UDT_SRC_LINE records (PR28251)Hans Wennborg2016-06-227-90/+218
| | | | | | Differential Revision: http://reviews.llvm.org/D21621 llvm-svn: 273495
* Do not require __STDC_LIMIT_MACROS and othersPawel Bylica2016-06-221-9/+6
| | | | | | | | | | | | Summary: Do not require __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS macros to be defined globally. They are not needed for C++11 compliant standard headers. Reviewers: joerg, jyknight Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21553 llvm-svn: 273493
* [CMake] LLVM_BINARY_DIR was not being properly set in LLVMConfig.cmakeChris Bieneman2016-06-222-1/+3
| | | | | | LLVMConfig.cmake needs to set LLVM_BINARY_DIR differently based on whether or not it is the build directory or the install directory. The build directory just needs to set the value from the configuration, the install directory needs to set it to the install prefix. llvm-svn: 273479
* [MachO] Adding a few missing swapStruct functionsChris Bieneman2016-06-221-0/+14
| | | | | | These are just missing swap functions for handling endian conversion. llvm-svn: 273478
* [codeview] Fix the alignment padding that we add to list recordsReid Kleckner2016-06-222-5/+7
| | | | | | | Tweak the big-types.ll test case to catch this bug. We just need an enumerator name that doesn't have a length that is a multiple of 4. llvm-svn: 273477
* [IRObjectFile] Propagate .weak attribute correctly for ASM symbols.Davide Italiano2016-06-224-7/+16
| | | | | | | PR: 28256 Differential Revision: http://reviews.llvm.org/D21616 llvm-svn: 273474
* Update header documentation for API deliberately made publicDaniel Berlin2016-06-221-2/+3
| | | | llvm-svn: 273473
* IR: Introduce Module::global_objects().Peter Collingbourne2016-06-227-43/+88
| | | | | | | | | | | | This is a convenience iterator that allows clients to enumerate the GlobalObjects within a Module. Also start using it in a few places where it is obviously the right thing to use. Differential Revision: http://reviews.llvm.org/D21580 llvm-svn: 273470
* AMDGPU: Run verifier after 2nd run of SIShrinkInstructionsMatt Arsenault2016-06-221-1/+1
| | | | llvm-svn: 273469
* 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
* [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] 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
* 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
* [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
* [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
* 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
* [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
* [llvm-readobj] - Teach llvm-readobj to print dependencies of SHT_GNU_verdef ↵George Rimar2016-06-222-52/+49
| | | | | | | | | | | | | | | and refactor dumping method. This patch changes single method of llvm-readobj. It teaches SHT_GNU_verdef dumper to print version dependencies, also it removes few fields from output that can be dumped with other keys and slightly refactors code. Testcase was also modified to match the changes. Change is required for testcases of upcoming lld patches. Differential revision: http://reviews.llvm.org/D21552 llvm-svn: 273417
* Regenerated testSimon Pilgrim2016-06-221-1/+1
| | | | llvm-svn: 273404
* [SDAG] Remove FixedArgs parameter from CallLoweringInfo::setCalleeKrzysztof Parzyszek2016-06-2220-43/+38
| | | | | | | | | | | The setCallee function will set the number of fixed arguments based on the size of the argument list. The FixedArgs parameter was often explicitly set to 0, leading to a lack of consistent value for non- vararg functions. Differential Revision: http://reviews.llvm.org/D20376 llvm-svn: 273403
* Delete more dead code.Rafael Espindola2016-06-229-229/+0
| | | | | | Found by gcc 6. llvm-svn: 273402
* [LTO] Move UpdateCompilerUsed.h from lib/ to include/Davide Italiano2016-06-224-4/+3
| | | | | | | | I plan to use it in lld soon. Differential Revision: http://reviews.llvm.org/D21575 llvm-svn: 273380
OpenPOWER on IntegriCloud