summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86][Disassembler] Added SALC instructionChris Ray2017-01-293-902/+915
| | | | | | | | | | | | Reviewers: joe.abbey, craig.topper Reviewed By: craig.topper Subscribers: majnemer, llvm-commits Differential Revision: https://reviews.llvm.org/D29201 llvm-svn: 293447
* [AVX-512] Fix lowering for mask register concatenation with undef in the ↵Craig Topper2017-01-292-1/+13
| | | | | | | | lower half. Previously this test case fired an assertion in getNode because we tried to create an insert_subvector with both input types the same size and the index pointing to half the vector width. llvm-svn: 293446
* experimental: remove dead functionSaleem Abdulrasool2017-01-291-13/+0
| | | | | | | This template was defined inline, within the TU only and had no uses across the entire repository. Remove the dead code. NFC. llvm-svn: 293445
* [OpenMP][NVPTX][CUDA] Adding support for printf for an NVPTX OpenMP device.Arpith Chacko Jacob2017-01-295-12/+127
| | | | | | | | | | | | | | | Support for CUDA printf is exploited to support printf for an NVPTX OpenMP device. To reflect the support of both programming models, the file CGCUDABuiltin.cpp has been renamed to CGGPUBuiltin.cpp, and the call EmitCUDADevicePrintfCallExpr has been renamed to EmitGPUDevicePrintfCallExpr. Reviewers: jlebar Differential Revision: https://reviews.llvm.org/D17890 llvm-svn: 293444
* [asan] Fix tests for exported interfaces.Marcos Pividori2017-01-293-1/+3
| | | | | | | | Add "OPTIONAL" comment to declaration of weak function in the internal interface. This fix the tests `interface_symbols_linux.c` and `interface_symbols_darwin.c` which were failing after r293423. llvm-svn: 293442
* [X86] Fixing flag usage for RCL and RCRChris Ray2017-01-291-970/+967
| | | | | | | | | | | | | | Summary: The RCL and RCR instructions use the carry flag. Reviewers: craig.topper Reviewed By: craig.topper Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29237 llvm-svn: 293441
* MachineInstr: Remove parameter from dump()Matthias Braun2017-01-293-4/+6
| | | | | | | | | | | | | The primary use of the dump() functions in LLVM is for use in a debugger. Unfortunately lldb does not seem to handle default arguments so using `p SomeMI.dump()` fails and you have to type the longer `p SomeMI.dump(nullptr)`. Remove the paramter to make the most common use easy. (You can always construct something like `p SomeMI.print(dbgs(),MyTII)` if you need more features). Differential Revision: https://reviews.llvm.org/D29241 llvm-svn: 293440
* config: prevent the re-definition of a macroSaleem Abdulrasool2017-01-291-0/+2
| | | | | | | | | This causes unnecessary warnings when building with `cl`. Newer versions of the C standard permit the redefinition of the macro to the same value (which is the case here), unfortunately, `cl` does not yet implement this. Add a check to prevent the redefinition. llvm-svn: 293439
* [X86][SSE] Lower scalar_to_vector(0) to zero vectorSimon Pilgrim2017-01-294-93/+46
| | | | | | | | | | Replaces an xor+movd/movq with an xorps which will be shorter in codesize, avoid an int-fpu transfer, allow modern cores to fast path the result during decode and helps other combines recognise an all-zero vector. The only reason I can think of that we'd want to keep scalar_to_vector in this case is to help recognise the upper elts are undef but this doesn't seem to be a problem. Differential Revision: https://reviews.llvm.org/D29097 llvm-svn: 293438
* [X86] Reproducer for pr31719. NFCZvi Rackover2017-01-291-3/+32
| | | | llvm-svn: 293437
* llvm-c: Keep LLVMDumpModule() even in release buildsMatthias Braun2017-01-291-4/+3
| | | | | | | | While this probably should be considered a dump debugger utility, the C API currently has no other ways to print a module to stderr for error reporting purposes, so keep it even in release builds. llvm-svn: 293436
* [InstCombine] enable (X >>?,exact C1) << C2 --> X << (C2 - C1) for vectors ↵Sanjay Patel2017-01-292-23/+19
| | | | | | with splats llvm-svn: 293435
* [InstCombine] add tests for shl(shr X, C1), C2 transforms; NFCSanjay Patel2017-01-291-4/+58
| | | | llvm-svn: 293434
* ARM: support `-mlong-calls` with AEABI TLS on ELFSaleem Abdulrasool2017-01-292-7/+54
| | | | | | | | | | Support lowering AEABI TLS access (__aeabi_read_tp) with long calls. This requires adjusting the call sequence to use an indirect call to get full addressability. Resolves PR31769! llvm-svn: 293433
* [ValueTracking] clean up lookThroughCast; NFCISanjay Patel2017-01-291-42/+48
| | | | | | | | | 1. Use auto with dyn_cast. 2. Don't use else after return. 3. Convert chain of 'else if' to switch. 4. Improve variable names. llvm-svn: 293432
* [X86 Codegen] Fixed a bug in unsigned saturationElena Demikhovsky2017-01-294-51/+27
| | | | | | | | | | | PACKUSWB converts Signed word to Unsigned byte, (the same about DW) and it can't be used for umin+truncate pattern. AVX-512 VPMOVUS* instructions fit the pattern since they convert Unsigned to Unsigned. See https://llvm.org/bugs/show_bug.cgi?id=31773 Differential Revision: https://reviews.llvm.org/D29196 llvm-svn: 293431
* Add -mtriple=aarch64-unknown to ↵NAKAMURA Takumi2017-01-291-1/+1
| | | | | | | | llvm/test/CodeGen/AArch64/GlobalISel/gisel-abort.ll. Unsupported target might be induced if default target is neither macho nor elf. (e.g. *-win32) llvm-svn: 293430
* Update the documentation on how the packing transformation is implementedRoman Gareev2017-01-291-2/+19
| | | | | | | | | | | | Add a simple example to update the documentation on how the packing transformation is implemented. Reviewed-by: Tobias Grosser <tobias@grosser.es>, Michael Kruse <llvm@meinersbur.de> Differential Revision: https://reviews.llvm.org/D28021 llvm-svn: 293429
* NewGVN: Fix where newline is printed in debug printing of memory equivalenceDaniel Berlin2017-01-291-1/+1
| | | | llvm-svn: 293428
* [X86][GlobalISel] Add limited argument lowering support to the IRTranslator.Igor Breger2017-01-293-2/+234
| | | | | | | | | | | | | | | | Summary: Add limited (i8/i16/i32/i64) argument lowering support to the IRTranslator. Inspired by commit 289940. Reviewers: t.p.northover, qcolombet, ab, zvi, rovka Reviewed By: rovka Subscribers: dberris, rovka, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D28987 llvm-svn: 293427
* [ArgPromote] Move static helpers to modern LLVM naming conventions whileChandler Carruth2017-01-291-15/+15
| | | | | | | | | | here. NFC. Simple refactoring while prepping a port to the new PM. Differential Revision: https://reviews.llvm.org/D29249 llvm-svn: 293426
* [ArgPromote] Run clang-format to normalize remarkably idiosyncraticChandler Carruth2017-01-291-112/+121
| | | | | | | | | | formatting that has evolved here over the past years prior to making somewhat invasive changes to thread new PM support through the business logic. Differential Revision: https://reviews.llvm.org/D29248 llvm-svn: 293425
* [ArgPromote] Re-arrange the code in a more typical, logical way.Chandler Carruth2017-01-291-561/+547
| | | | | | | | | | | | | | | | | | | | This arranges the static helpers in an order where they are defined prior to their use to avoid the need of forward declarations, and collect the core pass components at the bottom below their helpers. This also folds one trivial function into the pass itself. Factoring this 'runImpl' was an attempt to help porting to the new pass manager, however in my attempt to begin this port in earnest it turned out to not be a substantial help. I think it will be easier to factor things without it. This is an NFC change and does a minimal amount of edits over all. Subsequent NFC cleanups will normalize the formatting with clang-format and improve the basic doxygen commenting. Differential Revision: https://reviews.llvm.org/D29247 llvm-svn: 293424
* [asan] Add missing declaration in the internal interfaceMarcos Pividori2017-01-291-0/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D29230 llvm-svn: 293423
* [windows] Properly use dllimport / dllexport.Marcos Pividori2017-01-291-0/+4
| | | | | | | | | Update the headers, so we can change the dllexports to dllimport when defining SANITIZER_IMPORT_INTERFACE. Differential Revision: https://reviews.llvm.org/D29052 llvm-svn: 293422
* [SelectionDAG] Make SDNode::getConstantOperandVal an inline method.Craig Topper2017-01-292-6/+5
| | | | | | It's operation already exists manually in many places without using the method. llvm-svn: 293421
* [windows] [asan] Add linker flag when including "asan_dynamic_runtime_thunk".Marcos Pividori2017-01-292-1/+6
| | | | | | | | | | | | | I modify clang driver for windows to include: "-wholearchive:asan_dynamic_runtime_thunk", so all object files in the static library: asan_dynamic_runtime_thunk are considered by the linker. This is necessary, because some object files only include linker pragmas, and doesn't resolve any symbol. If we don't include that flag, the linker will ignore them, and won't read the linker pragmas. Differential Revision: https://reviews.llvm.org/D29159 llvm-svn: 293420
* General definition for weak functionsMarcos Pividori2017-01-2916-115/+170
| | | | | | | | | | | | | | | | | | In this diff, I define a general macro for defining weak functions with a default implementation: "SANITIZER_INTERFACE_WEAK_DEF()". This way, we simplify the implementation for different platforms. For example, we cannot define weak functions on Windows, but we can use linker pragmas to create an alias to a default implementation. All of these implementation details are hidden in the new macro. Also, as I modify the name for exported weak symbols on Windows, I needed to temporarily disable "dll_host" test for asan, which checks the list of functions included in asan_win_dll_thunk. Differential Revision: https://reviews.llvm.org/D28596 llvm-svn: 293419
* [scan-build-py] remove not used flagLaszlo Nagy2017-01-291-12/+2
| | | | llvm-svn: 293418
* Add some Book-E instructions to the asm parser and printer.Justin Hibbits2017-01-296-3/+52
| | | | | | | | | | | | | | | | | | | Summary: Adds the following instructions: * mfpmr * mtpmr * icblc * icblq * icbtls Fix the scheduling for mtspr on e5500, which uses CFX0, instead of SFX0/SFX1 as on e500mc. Addresses PR 31538. Differential Revision: https://reviews.llvm.org/D29002 llvm-svn: 293417
* [c-index-test] Provide capability for 'c-index-test core' to dump symbol ↵Argyrios Kyrtzidis2017-01-293-0/+59
| | | | | | information from a PCH/module file. llvm-svn: 293416
* Modules: Fix a minor performance bug from r293393Duncan P. N. Exon Smith2017-01-291-3/+4
| | | | | | | | | | | | Oops... r293393 started calling ReadSignature in ModuleManager::addModule even when there was no ExpectedSignature. Whether or not this would have a measurable performance impact (I spotted this by inspection, and ReadSignature should be fairly fast), we might as well get what we can. Add an extra check against ExpectedSignature to avoid the hit. llvm-svn: 293415
* [DAGCombiner] Use unsigned for a constant vector index instead of APInt.Craig Topper2017-01-291-2/+2
| | | | | | The type system requires that the number of vector elements should fit in 32-bits so this should be safe. llvm-svn: 293414
* [DAGCombiner] Remove unnecessary check on the size of the type of the index ↵Craig Topper2017-01-291-3/+1
| | | | | | | | of EXTRACT_SUBVECTOR. The type system already requires that the number of vector elements must fit in 32-bits so an index should as well. Even if the type of the index were larger all we care about is that the constant index can fit in 64-bits so that we can call getZExtValue. llvm-svn: 293413
* [DAGCombiner] Make sure index of EXTRACT_SUBVECTOR is a constant before ↵Craig Topper2017-01-291-9/+9
| | | | | | trying to use getConstantOperandVal. llvm-svn: 293412
* [Orc][RPC] Have handleOne abandon pending responses upon channel failure.Lang Hames2017-01-291-3/+3
| | | | llvm-svn: 293411
* [Orc][RPC] Remove redundant braces. NFC.Lang Hames2017-01-291-2/+2
| | | | llvm-svn: 293410
* Return early from getUnresolvedSymbolOption() to simplify.Rui Ueyama2017-01-291-34/+40
| | | | llvm-svn: 293409
* Add support to dump dot graph block layout after MBPXinliang David Li2017-01-296-8/+71
| | | | | | Differential Revision: https://reviews.llvm.org/D29141 llvm-svn: 293408
* Remove inclusion of SSAUpdater from several passes.Davide Italiano2017-01-293-3/+1
| | | | | | | | It is, in fact, unused. Found while reviewing Danny's new SSAUpdater and porting passes to it to see how the new API looked like. llvm-svn: 293407
* [Target] Add NoSignedZerosFPMath to the TargetOptions constructorDavid Majnemer2017-01-291-18/+12
| | | | | | | | Most flags were already initialized by the TargetOptions constructor but we missed out on one. Also, simplify the constructor by using field initializers when possible. llvm-svn: 293406
* [Orc][RPC] Remove a couple of redundant calls to abandonAllPendingResponses.Lang Hames2017-01-291-7/+0
| | | | | | | appendCallAsync, which all RPC call functions ultimately build on, will call abandonAllPendingResponses on channel error. These extra calls are redundant. llvm-svn: 293405
* Modules: Simplify the ModuleFile constructor; likely NFCDuncan P. N. Exon Smith2017-01-292-70/+49
| | | | | | | | | | | | Zero-initialize ModuleFile members directly in the class definition, and move the (now uninteresting) constructor into the class definition. There were a few members that weren't being initialized at all. I zero-initialized them for consistency, but it's likely that they were somehow initialized before their first use; i.e., there's likely no functionality change here. llvm-svn: 293404
* [X86] Fix vector ANDN matching to work correctly when both inputs to the AND ↵Craig Topper2017-01-283-24/+15
| | | | | | are XORs. llvm-svn: 293403
* [X86] Add test case that shows failure to use a vector ANDN when both inputs ↵Craig Topper2017-01-281-2/+25
| | | | | | | | to the AND are XORs. The matching code tries to canonicalize XOR to the left, but if there are two XORs and only one is a vnot, this canonicalization can prevent matching. llvm-svn: 293402
* [PM] MLSM has been enabled for a way. Reclaim a cl::opt.Davide Italiano2017-01-281-8/+2
| | | | llvm-svn: 293401
* Modules: Return early in ModuleManager::addModule; NFCDuncan P. N. Exon Smith2017-01-281-71/+72
| | | | | | | | | Invert the main branch in ModuleManager::addModule to return early and reduce indentation, and clean up a bunch of logic as a result. I split out a function called updateModuleImports to avoid triggering code duplication. llvm-svn: 293400
* Modules: Clean up ModuleFile::Imports in ModuleManager::removeModulesDuncan P. N. Exon Smith2017-01-281-3/+3
| | | | | | | | | | I don't have a testcase for this (and I'm not sure if it's an observable bug), but it seems obviously wrong that ModuleManager::removeModules is failing to clean up deleted modules from ModuleFile::Imports. See the code in ModuleManager::addModule that inserts into ModuleFile::Imports; we need the inverse operation. llvm-svn: 293399
* Modules: Enforce that ModuleManager::removeModules deletes the tailDuncan P. N. Exon Smith2017-01-283-17/+18
| | | | | | | | | | | | | | | ModuleManager::removeModules always deletes a tail of the ModuleManager::Chain. Change the API to enforce that so that we can simplify the code inside. There's no real functionality change, although there's a slight performance hack to loop to the First deleted module instead of the final module in the chain (skipping the about-to-be-deleted tail). Also document something suspicious: we fail to clean deleted modules out of ModuleFile::Imports. llvm-svn: 293398
* [scan-build-py] remove batch filesLaszlo Nagy2017-01-287-7/+0
| | | | llvm-svn: 293397
OpenPOWER on IntegriCloud