summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [PGO] Add hash to name mapping in InstrProfSymtabXinliang David Li2015-12-192-4/+66
| | | | | | | | | Creator and lookup interfaces are added to this symtab class. The new interfaces will be used by InstrProf Readers and writer. A unit test is also added for the new APIs. llvm-svn: 256092
* Revert "[IR] Move optional data in llvm::Function into a hungoff uselist"Vedant Kumar2015-12-198-91/+168
| | | | | | | | This reverts commit r256090. This broke llvm-clang-lld-x86_64-debian-fast. llvm-svn: 256091
* [IR] Move optional data in llvm::Function into a hungoff uselistVedant Kumar2015-12-198-168/+91
| | | | | | | | | | | | | | Make personality functions, prefix data, and prologue data hungoff operands of Function. This is based on the email thread "[RFC] Clean up the way we store optional Function data" on llvm-dev. Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback! Differential Revision: http://reviews.llvm.org/D13829 llvm-svn: 256090
* ThreadPool unittest: reimplement concurrency test, deterministically this time.Mehdi Amini2015-12-191-5/+36
| | | | | | | Follow-up to r256056. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 256087
* [libFuzzer] deprecate -save_minimized_corpus, -merge can be used insteadKostya Serebryany2015-12-193-8/+7
| | | | llvm-svn: 256086
* [libFuzzer] split the tests to run them in parallel, remove one redundant testKostya Serebryany2015-12-196-66/+41
| | | | llvm-svn: 256085
* Hopefully fix debug-info-blocks.ll test on win32 botKeno Fischer2015-12-191-1/+1
| | | | | | | | llc_dwarf adds an mtriple, which forces this to use COFF, causing the test to fail. Hopefully using regular llc without the triple will work fine everywhere llvm-svn: 256084
* AMDGPU/SI: Fix implemenation of isSourceOfDivergence() for graphics shadersTom Stellard2015-12-193-6/+23
| | | | | | | | | | | | | | | Summary: The analysis of shader inputs was completely wrong. We were passing the wrong index to AttributeSet::hasAttribute() and the logic for which inputs where in SGPRs was wrong too. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15608 llvm-svn: 256082
* [libFuzzer] make CrossOver just one of the other mutationsKostya Serebryany2015-12-196-38/+58
| | | | llvm-svn: 256081
* [RS4GC] Remove an overly strong assertionPhilip Reames2015-12-192-10/+40
| | | | | | As shown by the included test case, it's reasonable to end up with constant references during base pointer calculation. The code actually handled this case just fine, we only had the assert to help isolate problems under the belief that constant references shouldn't be present in IR generated by managed frontends. This turned out to be wrong on two fronts: 1) Manual Jacobs is working on a language with constant references, and b) we found a case where the optimizer does create them in practice. llvm-svn: 256079
* Clean up the processing of dbg.value in various placesKeno Fischer2015-12-1913-43/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: First up is instcombine, where in the dbg.declare -> dbg.value conversion, the llvm.dbg.value needs to be called on the actual loaded value, rather than the address (since the whole point of this transformation is to be able to get rid of the alloca). Further, now that that's cleaned up, we can remove a hack in the backend, that would add an implicit OP_deref if the argument to dbg.value was an alloca. This stems from before the existence of DIExpression and is no longer necessary since the deref can be expressed explicitly. Now, in order to make sure that the tests pass with this change, we need to correct the printing of DEBUG_VALUE comments to take into account the expression, which wasn't taken into account before. Unfortunately, for both these changes, there were a number of incorrect test cases (mostly the wrong number of DW_OP_derefs, but also a couple where the test itself was broken more badly). aprantl and I have gone through and adjusted these test case in order to make them pass with these fixes and in some cases to make sure they're actually testing what they are meant to test. Reviewers: aprantl Subscribers: dsanders Differential Revision: http://reviews.llvm.org/D14186 llvm-svn: 256077
* AMDGPU: Switch barrier intrinsics to using convergentMatt Arsenault2015-12-1921-34/+65
| | | | | | | | noduplicate prevents unrolling of small loops that happen to have barriers in them. If a loop has a barrier in it, it is OK to duplicate it for the unroll. llvm-svn: 256075
* Fix broken type legalization of min/maxMatt Arsenault2015-12-194-2/+90
| | | | | | | This was using an anyext when promoting the type when zext/sext is required. llvm-svn: 256074
* AMDGPU/SI: use S_MOV_B64 for larger copies in copyPhysRegNicolai Haehnle2015-12-191-6/+22
| | | | | | | | | | Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15629 llvm-svn: 256073
* AMDGPU: fix overlapping copies in copyPhysRegNicolai Haehnle2015-12-193-14/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When copying aggregate registers within the same register class, there may be an overlap between source and destination that forces us to do the copy backwards. Do the simplest possible thing that guarantees the correct order of moves when there are overlaps, and does whatever when there is no overlap. (The last part forces some trivial adjustments to test cases.) Together with r255906, this fixes a VM fault in Unreal Elemental Demo. While at it, change the generation of kill and def flags to something that looks more reasonable. This method is used very late during compilation, so it probably doesn't matter in practice, and to be honest, I don't know if this change is actually correct because the semantics in connection with aggregate registers vs. sub-registers are not clear to me. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93264 Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15622 llvm-svn: 256072
* [libFuzzer] print successfull mutations sequencesKostya Serebryany2015-12-193-19/+39
| | | | llvm-svn: 256071
* Possibly fix MSVC compilation after r256054.James Y Knight2015-12-191-1/+1
| | | | | | | | | | | | I don't have any way to test MSVC compilation, but maybe this will fix the error: llvm/Support/TrailingObjects.h(286) : error C3210: 'TrailingObjectsBase' : access declaration can only be applied to a base class member llvm/Support/TrailingObjects.h(337) : see reference to class template instantiation 'llvm::TrailingObjects<BaseTy,TrailingTys...>' being compiled llvm/Support/TrailingObjects.h(286) : error C2602: 'llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken' is not a member of a base class of 'llvm::TrailingObjects<BaseTy,TrailingTys...>' llvm/Support/TrailingObjects.h(91) : see declaration of 'llvm::trailing_objects_internal::TrailingObjectsBase::OverloadToken' llvm-svn: 256068
* Deprecate a few C APIs.Rafael Espindola2015-12-1810-27/+129
| | | | | | | | | | | | | This deprecates: * LLVMParseBitcode * LLVMParseBitcodeInContext * LLVMGetBitcodeModuleInContext * LLVMGetBitcodeModule They are replaced with the functions with a 2 suffix which do not record a diagnostic. llvm-svn: 256065
* [PGO] Cleanup: Move large member functions out of line (NFC)Xinliang David Li2015-12-182-92/+99
| | | | llvm-svn: 256058
* Remove possibility of failures to due race in ThreadPool unittestTeresa Johnson2015-12-181-22/+0
| | | | | | | | Remove all checks that required main thread to run faster than tasks in ThreadPool, and yields which are now unnecessary. This should fix some bot failures. llvm-svn: 256056
* Rewrite the TrailingObjects template to provide two new features:James Y Knight2015-12-182-108/+248
| | | | | | | | | | | | | | - Automatic alignment of the base type for the alignment requirements of the trailing types. - Support for an arbitrary numbers of trailing types, instead of only 1 or 2, by using a variadic template implementation. Upcoming commits to clang will take advantage of both of these features. Differential Revision: http://reviews.llvm.org/D12439 llvm-svn: 256054
* Delete dead code: only functions are materializable.Rafael Espindola2015-12-181-4/+0
| | | | llvm-svn: 256052
* Use a lambda to reduce code duplication.Rafael Espindola2015-12-181-23/+15
| | | | llvm-svn: 256050
* git-clang-format a region I am about to change.Rafael Espindola2015-12-181-13/+15
| | | | llvm-svn: 256048
* [PGO] Simplify computehash interface (NFC)Xinliang David Li2015-12-183-3/+6
| | | | llvm-svn: 256047
* [Symbolize] Improve the ownership of parsed objects.Alexey Samsonov2015-12-182-69/+65
| | | | | | | | | | | | | | | | | | This code changes the way Symbolize handles parsed binaries: now parsed OwningBinary<Binary> is not broken into (binary, memory buffer) pair, and is just stored as-is in a cache. ObjectFile components of Mach-O universal binaries are also stored explicitly in a separate cache. Additionally, this change: * simplifies the code that parses/caches binaries: it's now done in a single place, not three different functions. * makes flush() method behave as expected, and actually clear the cached parsed binaries and objects. * fixes a dangling pointer issue described in http://reviews.llvm.org/D15638 llvm-svn: 256041
* [sancov] IWYU fix: add proper header inclusion.Alexey Samsonov2015-12-181-0/+1
| | | | llvm-svn: 256040
* Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove ↵Cong Hou2015-12-184-28/+10
| | | | | | | | | | | | | | getEdgeWeight() interfaces from MBPI. This patch removes all getEdgeWeight() interfaces from CodeGen directory. As getEdgeProbability() is a little more expensive than getEdgeWeight(), I will compose a patch soon in which BPI only stores probabilities instead of edge weights so that getEdgeProbability() will have O(1) time. Differential revision: http://reviews.llvm.org/D15489 llvm-svn: 256039
* [DivergenceAnalysis] fix a bug in computing influence regionsJingyue Wu2015-12-182-8/+41
| | | | | | Fixes PR25864 llvm-svn: 256036
* [NaryReassociate] allow candidate to have a different typeJingyue Wu2015-12-182-9/+26
| | | | | | | | | | | | | | | | Summary: If Candiadte may have a different type from GEP, we should bitcast or pointer cast it to GEP's type so that the later RAUW doesn't complain. Added a test in nary-gep.ll Reviewers: tra, meheff Subscribers: mcrosier, llvm-commits, jholewinski Differential Revision: http://reviews.llvm.org/D15618 llvm-svn: 256035
* Revert "Enhance BranchProbabilityInfo::calcUnreachableHeuristics for InvokeInst"Rafael Espindola2015-12-183-59/+2
| | | | | | | | | | | This reverts commit r256028. It broke: LLVM :: CodeGen/Mips/eh.ll LLVM :: CodeGen/Mips/insn-zero-size-bb.ll llvm-svn: 256032
* Remove redundant argument. NFC.Rafael Espindola2015-12-183-8/+5
| | | | llvm-svn: 256031
* Enhance BranchProbabilityInfo::calcUnreachableHeuristics for InvokeInstJun Bum Lim2015-12-183-2/+59
| | | | | | | | | When identifying blocks post-dominated by an unreachable-terminated block in BranchProbabilityInfo, consider only the edge to the normal destination block if the terminator is InvokeInst and let calcInvokeHeuristics() decide edge weights for the InvokeInst. llvm-svn: 256028
* [Hexagon] Add PIC supportKrzysztof Parzyszek2015-12-1812-153/+268
| | | | llvm-svn: 256025
* Drop materializeAllPermanently.Rafael Espindola2015-12-186-16/+8
| | | | | | | | This inlines materializeAll into the only caller (materializeAllPermanently) and renames materializeAllPermanently to just materializeAll. llvm-svn: 256024
* AMDGPU/SI: Test commitChangpeng Fang2015-12-181-1/+1
| | | | | | | | | | | | Summary: This is just my first commit. Test! Reviewers: none Subscribers: none Differential Revision: none llvm-svn: 256022
* Revert "AMDGPU/SI: Test commit"Changpeng Fang2015-12-181-1/+1
| | | | | | This reverts commit a493cb636e0152ad28210934a47c6c44b1437193. llvm-svn: 256021
* AMDGPU/SI: Test commitChangpeng Fang2015-12-181-1/+1
| | | | | | | | | | | | Summary: This is just my first commit. Test! Reviewers: none Subscribers: none Differential Revision: none llvm-svn: 256020
* Drop support for dematerializing.Rafael Espindola2015-12-188-119/+0
| | | | | | | It was only used on lib/Linker and the use was "dead" since it was used on a function the IRMover had just moved. llvm-svn: 256019
* Revert "Improve DWARFDebugFrame::parse to also handle __eh_frame."Pete Cooper2015-12-1811-246/+305
| | | | | | | | This reverts commit r256008. Its breaking multiple buildbots, although works for me locally. llvm-svn: 256013
* Rename variables to reflect linker split (NFC)Teresa Johnson2015-12-184-26/+26
| | | | | | | | Renamed variables to be more reflective of whether they are an instance of Linker, IRLinker or ModuleLinker. Also fix a stale comment. llvm-svn: 256011
* Convert Arg, ArgList, and Option to dump() to dbgs() rather than errs().Eric Christopher2015-12-186-26/+38
| | | | | | | | Also add print() functions. Patch by Justin Lebar! llvm-svn: 256010
* Add a dump method for ArgList.Eric Christopher2015-12-182-0/+9
| | | | | | Patch by Justin Lebar! llvm-svn: 256009
* Improve DWARFDebugFrame::parse to also handle __eh_frame.Pete Cooper2015-12-1811-305/+246
| | | | | | | | | | | | | | | LLVM MC has single methods which can handle the output of EH frame and DWARF CIE's and FDE's. This code improves DWARFDebugFrame::parse to do the same for parsing. This also allows llvm-objdump to support the --dwarf=frames option which objdump supports. This option dumps the .eh_frame section using the new code in DWARFDebugFrame::parse. http://reviews.llvm.org/D15535 Reviewed by Rafael Espindola. llvm-svn: 256008
* Recognize strings for Hexagon-specific variant kindsKrzysztof Parzyszek2015-12-181-0/+7
| | | | llvm-svn: 256007
* [WinEH] Update LCSSA to handle catchswitch with handlers inside and outside ↵Andrew Kaylor2015-12-183-1/+110
| | | | | | | | a loop Differential Revision: http://reviews.llvm.org/D15630 llvm-svn: 256005
* [AArch64] Promote loads from storesJun Bum Lim2015-12-184-8/+951
| | | | | | | | | | | | | | This change promotes load instructions which directly read from stores by replacing them with mov instructions. If the store is wider than the load, the load will be replaced with a bitfield extract. For example : STRWui %W1, %X0, 1 %W0 = LDRHHui %X0, 3 becomes STRWui %W1, %X0, 1 %W0 = UBFMWri %W1, 16, 31 llvm-svn: 256004
* [ThinLTO/LTO] Don't link in unneeded metadataTeresa Johnson2015-12-188-7/+244
| | | | | | | | | | | | | | | | | | | | Summary: Third patch split out from http://reviews.llvm.org/D14752. Only map in needed DISubroutine metadata (imported or otherwise linked in functions and other DISubroutine referenced by inlined instructions). This is supported for ThinLTO, LTO and llvm-link --only-needed, with associated tests for each one. Depends on D14838. Reviewers: dexonsmith, joker.eph Subscribers: davidxl, llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D14843 llvm-svn: 256003
* Handle archives with paths in the names.Rafael Espindola2015-12-183-2/+13
| | | | | | | | | | | | | | | | We always create archives with just he filename as the member name, but other archives can put a more complicated path in there. This patches handles it by computing just the filename as we do when adding a new member. If storing the path is important for some reason, we should probably have an orthogonal option for doing that and do it for both old and new members. Fixes pr25877. llvm-svn: 256001
* clang-format to reduce diff in another patch.Rafael Espindola2015-12-181-6/+4
| | | | llvm-svn: 255999
OpenPOWER on IntegriCloud