summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ELF] - Make few members of Writer to be global and export them for reuseGeorge Rimar2016-07-124-33/+52
| | | | | | | | | | | Creating sections on linkerscript side requires some methods that can be reused if are exported from writer. Patch implements that change. Differential revision: http://reviews.llvm.org/D20104 llvm-svn: 275162
* [ELF] - Move section factory out from writer to make it reusable.George Rimar2016-07-123-105/+132
| | | | | | | | | | | Since linkerscript should create sections by itself (if SECTIONS command is present), then we might want to reuse the OutputSectionFactory (D19976 already do that now), so this patch moves it out from writer cpp file for that purpose. Differential revision: http://reviews.llvm.org/D19977 llvm-svn: 275161
* AMDGPU: Unify MOVRELSOffset and MOVRELDOffsetNicolai Haehnle2016-07-125-40/+23
| | | | | | | | | | | | | | | | Summary: Previously, constant index insertelements would be turned into SI_INDIRECT_DST, which is bound to prevent some optimization opportunities. Worse, it mislead the heuristic that decides whether immediates should be lowered to S_MOV_B32 or V_MOV_B32 in a way that resulted in unnecessary v_readfirstlanes. Reviewers: arsenm, tstellarAMD Subscribers: arsenm, kzhuravl, llvm-commits Differential Revision: http://reviews.llvm.org/D22217 llvm-svn: 275160
* [ELF] - Add Id field to Version struct.George Rimar2016-07-124-11/+21
| | | | | | | | | | | That helps to avoid expressions like I + 2 in code that assigns version number to symbols. Change was suggested by Rui Ueyama. Differential revision: http://reviews.llvm.org/D22086 llvm-svn: 275159
* [ELF] Support for symbol assignment in linker scripts within SECTIONS {} blockEugene Leviant2016-07-124-19/+73
| | | | llvm-svn: 275158
* [ASTMatchers] isSignedInteger() and isUnsignedInteger()Clement Courbet2016-07-124-4/+76
| | | | | | | | Complementary to isInteger(), these match signed and unsigned integers respectively. Review: http://reviews.llvm.org/D21989 llvm-svn: 275157
* Revert "New pass manager for LICM."Vitaly Buka2016-07-1231-175/+67
| | | | | | | | | | Summary: This reverts commit r275118. Subscribers: sanjoy, mehdi_amini Differential Revision: http://reviews.llvm.org/D22259 llvm-svn: 275156
* [AVX512] Remove masked logic op intrinsics and autoupgrade them to native IR.Craig Topper2016-07-127-1276/+1197
| | | | llvm-svn: 275155
* [MS ABI] Support throwing/catching __unaligned typesDavid Majnemer2016-07-124-11/+31
| | | | | | | | We need to mark the appropriate bits in ThrowInfo and HandlerType so that the personality routine can correctly handle qualification conversions. llvm-svn: 275154
* Remove unused parameters.Rui Ueyama2016-07-121-8/+7
| | | | llvm-svn: 275153
* Dump enum unique names.Rui Ueyama2016-07-121-0/+3
| | | | llvm-svn: 275152
* Add some safety checks to Platform::GetRemoteSharedModule so if itJason Molenda2016-07-121-2/+18
| | | | | | | | | is passed a ModuleSpec with a UUID, it won't accept a file it finds with a matching FileSpec & ArchSpec, but with a different UUID. <rdar://problem/27258864> llvm-svn: 275151
* Re-enable TPI hash verification for enum records.Rui Ueyama2016-07-123-4/+10
| | | | | | | We didn't read unique names correctly. As a result, we computed hashes on (non-)unique names instead of unique names. llvm-svn: 275150
* X86: Avoid implicit iterator conversions, NFCDuncan P. N. Exon Smith2016-07-1210-220/+220
| | | | | | | | Avoid implicit conversions from MachineInstrBundleIterator to MachineInstr*, mainly by preferring MachineInstr& over MachineInstr* and using range-based for loops. llvm-svn: 275149
* Fix libdeps in r275125. LTO tools require BitReader.NAKAMURA Takumi2016-07-122-0/+2
| | | | llvm-svn: 275148
* Print remarks from WholeProgramDevirt pass for each call site.Ivan Krasin2016-07-124-3/+23
| | | | | | | | | | | | | Summary: It's useful to have some visibility about which call sites are devirtualized, especially for debug purposes. Another use case is a regression test on the application side (like, Chromium). Reviewers: pcc Differential Revision: http://reviews.llvm.org/D22252 llvm-svn: 275145
* llvm/test/CodeGen/AMDGPU/selected-stack-object.ll REQUIRES +Asserts, since ↵NAKAMURA Takumi2016-07-121-0/+3
| | | | | | it expects assertion failure. llvm-svn: 275144
* [Kryo] Enable ZCZeroing featureHaicheng Wu2016-07-122-23/+32
| | | | | | | | This feature uses immediate #0 to zero a register. Differential Revision: http://reviews.llvm.org/D19985 llvm-svn: 275143
* Hexagon: Avoid implicit iterator conversions, NFCDuncan P. N. Exon Smith2016-07-1215-442/+426
| | | | | | | | | | | | | | Avoid implicit iterator conversions from MachineInstrBundleIterator to MachineInstr* in the Hexagon backend, mostly by preferring MachineInstr& over MachineInstr* and switching to range-based for loops. There's a long tail of API cleanup here, but I'm planning to leave the rest to the Hexagon maintainers. HexagonInstrInfo defines many of its own predicates, and most of them still take MachineInstr*. Some of those actually check for nullptr, so I didn't feel comfortable changing them to MachineInstr& en masse. llvm-svn: 275142
* Mips: Avoid implicit iterator conversions, NFCDuncan P. N. Exon Smith2016-07-126-57/+51
| | | | | | | | | Avoid implicit conversions from MachineInstrBundleIterator to MachineInstr* in the Mips backend, mainly by preferring MachineInstr& over MachineInstr* when a pointer isn't nullable and using range-based for loops. llvm-svn: 275141
* Add LLVM build config for BuildAndIntegration.Stephane Sezer2016-07-121-0/+4
| | | | | | | | | | Reviewers: tfiala, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D22234 llvm-svn: 275140
* Make ThreadPlanStepInstruction's constructor public.Stephane Sezer2016-07-121-5/+6
| | | | | | | | | | | | | | | | Summary: Some thread plans have public contructors, some others have protected constructors with friend classes. Not sure how these were determined, but this thread plan is going to be required to implement trampoline step-through on Windows. Reviewers: clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D22230 llvm-svn: 275139
* [X86,IR] Remove unnecessary or unused LLVMContext parameter from some of the ↵Craig Topper2016-07-121-17/+16
| | | | | | X86 intrinsic upgrade functions. llvm-svn: 275138
* SystemZ: Avoid implicit iterator conversions, NFCDuncan P. N. Exon Smith2016-07-123-81/+75
| | | | | | | | Avoid implicit conversions from MachineInstrBundleIterator to MachineInstr* in the SystemZ backend, mainly by preferring MachineInstr& over MachineInstr* and using range-based for loops. llvm-svn: 275137
* fix incorrect constant (from http://reviews.llvm.org/D22111)Etienne Bergeron2016-07-121-1/+1
| | | | llvm-svn: 275136
* Teach FastISel about thiscall (and, hence, about callee-pop).Nico Weber2016-07-122-8/+33
| | | | | | http://reviews.llvm.org/D22115 llvm-svn: 275135
* Apply local patches when building llvm on Mac.Stephane Sezer2016-07-121-0/+8
| | | | | | | | | | | | | | | Summary: This is already done when building for linux with the CMake build system. This functionality disappeared recently when some of the build scripts used by the xcode build system changed. Reviewers: tfiala, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D22233 llvm-svn: 275134
* AMDGPU: Cleanup pseudoinstructionsMatt Arsenault2016-07-123-58/+55
| | | | llvm-svn: 275133
* AMDGPU: Fix missing scc def on control flow pseudosMatt Arsenault2016-07-121-2/+2
| | | | | | These are all expanded to instructions that include an scc def. llvm-svn: 275132
* AMDGPU: Enable trackLivenessAfterRegAllocMatt Arsenault2016-07-112-0/+6
| | | | | | This has caught a number of bugs. llvm-svn: 275131
* Do not use bool in C header lto.h, use lto_bool_t insteadMehdi Amini2016-07-111-1/+2
| | | | llvm-svn: 275130
* AMDGPU: Remove superfluous string attributes from testsMatt Arsenault2016-07-1124-89/+143
| | | | | | Also fix v_mac.ll not testing right thing for fneg llvm-svn: 275129
* Correcting the previous fix for test submitted with r275115.Wolfgang Pieb2016-07-111-2/+2
| | | | llvm-svn: 275128
* Fix test submitted with r275115 (failed on ppc64 buildbots).Wolfgang Pieb2016-07-111-2/+2
| | | | llvm-svn: 275127
* Attempt to make buildbots happy.George Burgess IV2016-07-111-3/+2
| | | | | | | Woohoo, unused variable warnings in builds without asserts (as a result of r275122). llvm-svn: 275126
* Add a libLTO API to query a memory buffer and check if it contains ObjC ↵Mehdi Amini2016-07-118-5/+248
| | | | | | | | | | | categories The linker supports a feature to force load an object from a static archive if it defines an Objective-C category. This API supports this feature by looking at every section in the module to find if a category is defined in the module. llvm-svn: 275125
* missing modifications for http://reviews.llvm.org/D21952Etienne Bergeron2016-07-112-1/+4
| | | | llvm-svn: 275124
* [compiler-rt] Refactor the interception code on windows.Etienne Bergeron2016-07-113-340/+1079
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a cleanup and refactoring of the interception code on windows Enhancement: * Adding the support for 64-bits code * Adding several hooking technique: * Detour * JumpRedirect * HotPatch * Trampoline * Adding a trampoline memory pool (64-bits) and release the allocated memory in unittests Cleanup: * Adding unittests for 64-bits hooking techniques * Enhancing the RoundUpInstruction by sharing common decoder Reviewers: rnk Subscribers: llvm-commits, wang0109, chrisha Differential Revision: http://reviews.llvm.org/D22111 llvm-svn: 275123
* [CFLAA] Simplify CFLGraphBuilder. NFC.George Burgess IV2016-07-114-265/+185
| | | | | | | | | | | | | | This patch simplifies the graph builder by encoding nodes as {Value, Dereference Level} pairs. This lets us kill edge types, and allows us to get rid of hacks in StratifiedSets (like addAttrsBelow/...). This simplification also allows us to remove InstantiatedRelations and InstantiatedAttrs. Patch by Jia Chen. Differential Revision: http://reviews.llvm.org/D22080 llvm-svn: 275122
* [Coverage] Do not map regions from system headersVedant Kumar2016-07-112-2/+9
| | | | | | | | | | | | | | | Do not assign source regions located within system headers file ID's, and do not construct counter mapping regions out of them. This makes coverage reports less cluttered and less mysterious. E.g using the "assert" macro doesn't cause assert.h to appear in reports, and it no longer shows the "assertion failed" branch as an uncovered region. It also makes coverage mapping sections a bit smaller (e.g a 1% reduction in a stage2 build of bin/llvm-as). llvm-svn: 275121
* [Coverage] Move logic to skip decl's into a helper (NFC)Vedant Kumar2016-07-112-9/+12
| | | | llvm-svn: 275120
* Fixed a threading race condition where we could crash after calling ↵Greg Clayton2016-07-111-2/+0
| | | | | | | | | | | | | | | | Debugger::Terminate(). The issue was we have two global variables: one that contains a DebuggerList pointer and one that contains a std::mutex pointer. These get initialized in Debugger::Initialize(), and everywhere that uses these does: if (g_debugger_list_ptr && g_debugger_list_mutex_ptr) { std::lock_guard<std::recursive_mutex> guard(*g_debugger_list_mutex_ptr); // do work while mutex is locked } Debugger::Terminate() was deleting and nulling out g_debugger_list_ptr which meant we had a race condition where someone might do the if statement and it evaluates to true, then another thread calls Debugger::Terminate() and deletes and nulls out g_debugger_list_ptr while holding the mutex, and another thread then locks the mutex and tries to use g_debugger_list_ptr. The fix is to just not delete and null out the g_debugger_list_ptr variable. llvm-svn: 275119
* New pass manager for LICM.Dehao Chen2016-07-1131-67/+175
| | | | | | | | | | | | Summary: Port LICM to the new pass manager. Reviewers: davidxl, silvas Subscribers: silvas, davide, sanjoy, llvm-commits, mehdi_amini Differential Revision: http://reviews.llvm.org/D21772 llvm-svn: 275118
* Correct ordering of loads/stores.Alina Sbirlea2016-07-116-22/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Aiming to correct the ordering of loads/stores. This patch changes the insert point for loads to the position of the first load. It updates the ordering method for loads to insert before, rather than after. Before this patch the following sequence: "load a[1], store a[1], store a[0], load a[2]" Would incorrectly vectorize to "store a[0,1], load a[1,2]". The correctness check was assuming the insertion point for loads is at the position of the first load, when in practice it was at the last load. An alternative fix would have been to invert the correctness check. The current fix changes insert position but also requires reordering of instructions before the vectorized load. Updated testcases to reflect the changes. Reviewers: tstellarAMD, llvm-commits, jlebar, arsenm Subscribers: mzolotukhin Differential Revision: http://reviews.llvm.org/D22071 llvm-svn: 275117
* ARM: validate immediate branch targets in AsmParser.Tim Northover2016-07-119-51/+164
| | | | | | | | | | Immediate branch targets aren't commonly used, but if they are we should make sure they can actually be encoded. This means they must be divisible by 2 when targeting Thumb mode, and by 4 when targeting ARM mode. Also do a little naming cleanup while I was changing everything around anyway. llvm-svn: 275116
* Prevent the creation of empty (forwarding) blocks resulting from nested ifs.Wolfgang Pieb2016-07-112-1/+49
| | | | | | | | | | | | | | | | | Summary: Nested if statements can generate empty BBs whose terminator branches unconditionally to its successor. These branches are not eliminated to help generate better line number information in some cases, but there is no reason to keep the empty blocks that result from nested ifs. Reviewers: mehdi_amini, dblaikie, echristo Subscribers: mehdi_amini, cfe-commits Differential review: http://reviews.llvm.org/D11360 llvm-svn: 275115
* Don't compute modulus of hash if it is smaller than the bucket count.Eric Fiselier2016-07-111-5/+4
| | | | | | | | This cleans up a previous optimization attempt in hash, and results in additional performance improvements over that previous attempt. Additionally this new optimization does not hinder the power of 2 bucket count optimization. llvm-svn: 275114
* AMDGPU: Treat texture gather instructions more like other MIMG instructionsNicolai Haehnle2016-07-116-5/+38
| | | | | | | | | | | | | | | | | | | | | Summary: Setting MIMG to 0 has a bunch of unexpected side effects, including that isVMEM returns false which leads to incorrect treatment in the hazard recognizer. The reason I noticed it is that it also leads to incorrect treatment in VGPR-to-SGPR copies, which is one cause of the referenced bug. The only reason why MIMG was set to 0 is to signal the special handling of dmasks, but that can be checked differently. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96877 Reviewers: arsenm, tstellarAMD Subscribers: arsenm, kzhuravl, llvm-commits Differential Revision: http://reviews.llvm.org/D22210 llvm-svn: 275113
* remove empty linesEtienne Bergeron2016-07-111-2/+0
| | | | llvm-svn: 275112
* [compiler-rt] Fix VisualStudio virtual folders layoutEtienne Bergeron2016-07-1129-47/+76
| | | | | | | | | | | | | | | | | | | | Summary: This patch is a refactoring of the way cmake 'targets' are grouped. It won't affect non-UI cmake-generators. Clang/LLVM are using a structured way to group targets which ease navigation through Visual Studio UI. The Compiler-RT projects differ from the way Clang/LLVM are grouping targets. This patch doesn't contain behavior changes. Reviewers: kubabrecka, rnk Subscribers: wang0109, llvm-commits, kubabrecka, chrisha Differential Revision: http://reviews.llvm.org/D21952 llvm-svn: 275111
OpenPOWER on IntegriCloud