summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [NVPTX] Add intrinsics for shfl instructions.Justin Lebar2016-06-093-1/+176
| | | | | | | | | | | | | | | Summary: Currently clang emits these instructions via inline (volatile) asm in the CUDA headers. Switching to intrinsics will let the optimizer reason across calls to these intrinsics. Reviewers: tra Subscribers: llvm-commits, jholewinski Differential Revision: http://reviews.llvm.org/D21160 llvm-svn: 272298
* NFC cleanup of InitializePasses.hSanjoy Das2016-06-091-109/+102
| | | | | | | | - Alphabetically sort the initializeXXX calls (this was brought up in D21115) - Remove repeated function names from doxygen comments llvm-svn: 272297
* [Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr.Tim Shen2016-06-0923-63/+181
| | | | | | | | | | | These ExprWithCleanups are added for holding a RunCleanupsScope not for destructor calls; rather, they are for lifetime marks. This requires ExprWithCleanups to keep a bit to indicate whether it have cleanups with side effects (e.g. dtor calls). Differential Revision: http://reviews.llvm.org/D20498 llvm-svn: 272296
* [NVPTX] Mark bar.sync intrinsic as convergent.Justin Lebar2016-06-091-1/+1
| | | | | | | | | | | | | | Summary: __syncthreads, which corresponds to bar.sync 0, is already convergent. This makes the more general bar.sync n likewise convergent. Reviewers: tra Subscribers: llvm-commits, jholewinski Differential Revision: http://reviews.llvm.org/D21161 llvm-svn: 272295
* [PM] Port LCSSA to the new PM.Easwaran Raman2016-06-0917-24/+99
| | | | | | Differential Revision: http://reviews.llvm.org/D21090 llvm-svn: 272294
* Revert "[lit] Use os.devnull instead of named temp files"Vedant Kumar2016-06-091-5/+19
| | | | | | | | | This reverts commit r272290. It breaks a test that depends on being able to seek the /dev/null equivalent on Windows: http://bb.pgr.jp/builders/ninja-clang-x64-mingw64-RA/builds/11360 llvm-svn: 272293
* AMDGPU/SI: Fix 32-bit fdiv loweringWei Ding2016-06-093-20/+257
| | | | | | | | | We were using the fast fdiv lowering for all division, implementation of IEEE754 fdiv is added. http://reviews.llvm.org/D20557 llvm-svn: 272292
* Fix spelling in commentJonathan Peyton2016-06-091-1/+1
| | | | llvm-svn: 272291
* [lit] Use os.devnull instead of named temp filesVedant Kumar2016-06-091-19/+5
| | | | | | | | | | | Use os.devnull instead of tempfiles when substituting '/dev/null' on Windows machines. This should make the bots just a bit speedier. Thanks to Yunzhong Gao for testing this patch on Windows! Differential Revision: http://reviews.llvm.org/D20549 llvm-svn: 272290
* Make the comparison objects that we pass in for various tests look more like ↵Marshall Clow2016-06-0940-28/+48
| | | | | | actual comparison objects. No functional change. llvm-svn: 272288
* Revert accidental commit to lit.cfgJonathan Peyton2016-06-091-3/+0
| | | | llvm-svn: 272287
* Refactor __kmp_execute_tasks_template functionJonathan Peyton2016-06-092-228/+108
| | | | | | | | | | | | | | Refactored __kmp_execute_tasks_template to shorten and remove code redundancy. The original code for __kmp_execute_tasks_template was very redundant with large sections of repeated code that needed to be kept consistent, and goto statements that made the control flow difficult to discern. This refactoring removes all gotos and redundancy. Patch by Terry Wilmarth Differential Revision: http://reviews.llvm.org/D20879 llvm-svn: 272286
* Fix a no newline at end of file warning.Greg Clayton2016-06-091-1/+1
| | | | llvm-svn: 272284
* [LV] Use vector phis for some secondary induction variablesMichael Kuperstein2016-06-093-12/+63
| | | | | | | | | | | | | | Previously, we materialized secondary vector IVs from the primary scalar IV, by offseting the primary to match the correct start value, and then broadcasting it - inside the loop body. Instead, we can use a real vector IV, like we do for the primary. This enables using vector IVs for secondary integer IVs whose type matches the type of the primary. Differential Revision: http://reviews.llvm.org/D20932 llvm-svn: 272283
* ELF: Compute used bit for --as-needed during symbol resolution.Peter Collingbourne2016-06-093-10/+26
| | | | | | | | | | | | | | | | | | We can now use this to decide whether to emit a verneed during the final pass over the symbols. We were previously wrongly creating a verneed entry in the case where all references to a DSO's symbols were weak. In a future change we may also want to use the used bit to control whether shared symbols are preemptible and appear in the dynsym. This seems a little tricky to do at the moment because isNeeded() is templated. The only other functional change here is that we emit a DT_NEEDED for DSOs whose symbols are all preempted by objects that appear later in the link. But that doesn't seem too important to me. Differential Revision: http://reviews.llvm.org/D21171 llvm-svn: 272282
* Some core files on MacOSX don't have permissions setup correctly on the ↵Greg Clayton2016-06-091-1/+8
| | | | | | | | LC_SEGMENT load commands. Assume read + execute if the permissions are not set. <rdar://problem/26720522> llvm-svn: 272281
* Revert "[CMake] Fix an issue building out-of-tree introduced in r272200"Chris Bieneman2016-06-091-2/+0
| | | | | | | | This reverts r272275. This actually wasn't the right way to fix the problem. The correct solution is in r272279. Applying the fix to LLVM as done in r272279, means this fix will get picked up by all projects building out of tree using LLVM's CMake modules. As opposed to the fix I had in r272275, which would require each project to change. llvm-svn: 272280
* [CMake] Add LLVM_TOOLS_INSTALL_DIR to LLVMConfig.cmakeChris Bieneman2016-06-091-0/+1
| | | | | | This is the more-correct fix to out-of-tree building. AddLLVM.cmake relies on this variable being set, so we should make sure it is set in LLVMConfig.cmake. llvm-svn: 272279
* Also fix a typo. Need more coffee today.Davide Italiano2016-06-091-1/+1
| | | | llvm-svn: 272278
* Improve r272262, check that __stack_chk_guard is used.Davide Italiano2016-06-091-0/+2
| | | | | | Thanks to Rafael for the suggestion. llvm-svn: 272277
* Since our expression parser needs to locate areas of memory that are not in ↵Greg Clayton2016-06-0911-92/+385
| | | | | | | | use when you have a process that can't JIT code, like core file debugging, the core file process plug-ins should be able to override the Process::GetMemoryRegionInfo(...) function. In order to make this happen, I have added permissions to sections so that we can know what the permissions are for a given section, and modified both core file plug-ins to override Process::GetMemoryRegionInfo() and answer things correctly. llvm-svn: 272276
* [CMake] Fix an issue building out-of-tree introduced in r272200Chris Bieneman2016-06-091-0/+2
| | | | | | The out-of-tree build needs to read LLVM_TOOLS_INSTALL_DIR out of TOOLS_BINARY_DIR because LLVM_TOOLS_INSTALL_DIR is used by AddLLVM.cmake llvm-svn: 272275
* Make sizeof and alignof a CXCursor_UnaryExprOlivier Goffart2016-06-093-5/+5
| | | | | | | | So we can match sizeof expressions more accurately than with UnexposedExpr Differential Revision: http://reviews.llvm.org/D18081 llvm-svn: 272274
* CIndex: add support for static_assertOlivier Goffart2016-06-094-1/+17
| | | | | | Differential Revision: http://reviews.llvm.org/D18080 llvm-svn: 272273
* SelectionDAG: Implement expansion of {S,U}MIN/MAX in integer legalizationJan Vesely2016-06-095-101/+341
| | | | | | | | | Fixes {u,}long_{min,max,clamp} opencl piglit regressions on EG. Reviewers: arsenm Differential Revision: http://reviews.llvm.org/D17898 llvm-svn: 272272
* kmp_lock.h: Fix VS2013 build after r271324Hans Wennborg2016-06-091-0/+16
| | | | | | | | | | | MSVC doesn't allow std::atomic<>s in a union since they don't have trivial copy constructor. Replacing them with e.g. std::atomic_int works, but that breaks the GCC build on Linux, because then calls to e.g. std::atomic_load_explicit fail, as they expect a real std::atomic<> pointer. Fixing this with an #ifdef to unbreak the build for now. llvm-svn: 272271
* Fix global version handling.Rafael Espindola2016-06-092-4/+6
| | | | | | | | We should not ignore the symbol, just the version. Fixes error with -z defs. llvm-svn: 272270
* PDB/Raw/Hash.h: try to fix VS2013 buildHans Wennborg2016-06-091-0/+1
| | | | llvm-svn: 272269
* [profile] Fix test to bail on failed waitpid in instrprof-file_ex.cVedant Kumar2016-06-091-1/+1
| | | | | | | | This resolves PR28066. Patch by David Binderman! llvm-svn: 272268
* Reapply "[MBP] Reduce code size by running tail merging in MBP.""Haicheng Wu2016-06-096-35/+185
| | | | | | | | | | | | | | | | This reapplies commit r271930, r271915, r271923. They hit a bug in Thumb which is fixed in r272258 now. The original message: The code layout that TailMerging (inside BranchFolding) works on is not the final layout optimized based on the branch probability. Generally, after BlockPlacement, many new merging opportunities emerge. This patch calls Tail Merging after MBP and calls MBP again if Tail Merging merges anything. llvm-svn: 272267
* [SystemZ] Enable long displacement constraints for inline ASM operandsUlrich Weigand2016-06-096-16/+64
| | | | | | | | | | | | | | | | | | This enables use of the 'S' constraint for inline ASM operands on SystemZ, which allows for a memory reference with a signed 20-bit immediate displacement. This patch includes corresponding documentation and test case updates. I've changed the 'T' constraint to match the new behavior for 'S', as 'T' also uses a long displacement (though index constraints are still not implemented). I also changed 'm' to match the behavior for 'S' as this will allow for a wider range of displacements for 'm', though correct me if that's not the right decision. Author: colpell Differential Revision: http://reviews.llvm.org/D21097 llvm-svn: 272266
* [ELF] - Removed excessive variable. NFC.George Rimar2016-06-091-2/+1
| | | | llvm-svn: 272265
* Move stackguard test to X86/ directory as it's not generic.Davide Italiano2016-06-091-0/+0
| | | | llvm-svn: 272264
* Two more issues w/patchesMarshall Clow2016-06-091-3/+3
| | | | llvm-svn: 272263
* [CodeGen] Change getSDagStackGuard to get an internal sym.Davide Italiano2016-06-092-1/+14
| | | | | | | Fixes a crash in the backend during an LTO build of rtld(1) in FreeBSD. llvm-svn: 272262
* [include-fixer] do not index friend function declaration.Eric Liu2016-06-092-3/+29
| | | | | | | | | | | | | | | Summary: we want to exclude friend declaration, but the `DeclContext` of a friend function declaration is not the class in which it is declared, so we need to explicitly check if the parent is a `friendDecl`. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21175 llvm-svn: 272261
* Replace an ambiguous "it"Rafael Espindola2016-06-091-1/+1
| | | | | | Thanks to Sean for the suggestion. llvm-svn: 272260
* [mips][microMIPS] Implement BOVC, BNVC, EXT, INS and JALRC instructionsHrvoje Varga2016-06-0912-13/+257
| | | | | | Differential Revision: http://reviews.llvm.org/D11798 llvm-svn: 272259
* [Thumb] A branch is not part of an IT blockJames Molloy2016-06-091-1/+1
| | | | | | | | ReplaceTailWithBranchTo assumed that if an instruction is predicated, it must be part of an IT block. This is not correct for conditional branches. No testcase as this was triggered by the reverted patch r272017 - test coverage will occur when that patch is re-reverted and there is no known way to trigger this in the meantime. llvm-svn: 272258
* [AVX512] Remove masked_move/blendm intrinsic from back-end. Igor Breger2016-06-097-758/+1
| | | | | | | | This is complement patch to D21060. Differential Revision: http://reviews.llvm.org/D21174 llvm-svn: 272257
* [mips][microMIPS] Add CodeGen support for SEL.*, SELEQZ, SELNEZ, SELEQZ.*, ↵Zlatko Buljan2016-06-098-115/+702
| | | | | | | | SELNEZ.* and CMP.condn.fmt instructions Differential Revision: http://reviews.llvm.org/D20862 llvm-svn: 272256
* [AMDGPU] Disassembler: Support for sdwa instructionsSam Kolton2016-06-092-1/+352
| | | | | | | | | | Reviewers: vpykhtin, tstellarAMD Subscribers: arsenm, kzhuravl Differential Revision: http://reviews.llvm.org/D21129 llvm-svn: 272255
* [llc] Remove exit-on-error flag from MIR tests (PR27770)Diana Picus2016-06-099-11/+9
| | | | | | | | | | | | | | | | This is made possible by removing an assert in llc that assumed MIRParser::parseLLVMModule would exit on error. MIRParser's documentation states that it returns null if a parsing error occurs, so there's no reason to assert. We can instead just fall through to where the check for a module is performed and exit if it is null. This commit is part of the clean-up after r269655. Fixes PR27770 Differential Revision: http://reviews.llvm.org/D20371 llvm-svn: 272254
* clang/test/CodeGenCXX/debug-info-method.cpp: Tweak for thiscall, for ↵NAKAMURA Takumi2016-06-091-1/+1
| | | | | | targeting Win32 x86. llvm-svn: 272253
* [AVX512] Fix shuffle decode printing for several instructions with write ↵Craig Topper2016-06-095-25/+25
| | | | | | masks. There are still more bugs here with UNPCK and PALIGN for sure. But these were the easiest ones to fix. llvm-svn: 272252
* [Thumb] Select a BIC instead of AND if the immediate can be encoded more ↵James Molloy2016-06-092-1/+55
| | | | | | | | | | | | | | | | | | | | | | optimally negated If an immediate is only used in an AND node, it is possible that the immediate can be more optimally materialized when negated. If this is the case, we can negate the immediate and use a BIC instead; int i(int a) { return a & 0xfffffeec; } Used to produce: ldr r1, [CONSTPOOL] ands r0, r1 CONSTPOOL: 0xfffffeec And now produces: movs r1, #255 adds r1, #20 ; Less costly immediate generation bics r0, r1 llvm-svn: 272251
* [X86] Fix a test I failed to re-generate in r272249.Craig Topper2016-06-091-0/+6
| | | | llvm-svn: 272250
* [X86] Bring consistent naming to the SSE/AVX and AVX512 PALIGNR ↵Craig Topper2016-06-097-45/+41
| | | | | | instructions. Then add shuffle decode printing for the EVEX forms which is made easier by having the naming structure more similar to other instructions. llvm-svn: 272249
* [X86] Fix bad comment in assert. NFCCraig Topper2016-06-091-1/+1
| | | | llvm-svn: 272248
* [Sema] Don't crash when a field w/ a mem-initializer clashes with a record nameDavid Majnemer2016-06-092-2/+11
| | | | | | | | | | | It is possible for a field and a class to have the same name. In such cases, performing lookup for the field might return a result set with more than one entry. An overzealous assertion fired, causing us to crash instead of using the non-class lookup result. This fixes PR28060. llvm-svn: 272247
OpenPOWER on IntegriCloud