summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add ppcg-0.04 to lib/ExternalTobias Grosser2016-07-1377-6/+55862
| | | | | | | | | | | | | | | | | | | | | | | ppcg will be used to provide mapping decisions for GPU code generation. As we do not use C as input language, we do not include pet. However, we include pet.h from pet 82cacb71 plus a set of dummy functions to ensure ppcg links without problems. The version of ppcg committed is unmodified ppcg-0.04 which has been well tested in the context of LLVM. It does not provide an official library interface yet, which means that in upcoming commits we will add minor modifications to make necessary functionality accessible. We will aim to upstream these modifications after we gained enough experience with GPU generation support in Polly to propose a stable interface. Reviewers: Meinersbur Subscribers: pollydev, llvm-commits Differential Revision: http://reviews.llvm.org/D22033 llvm-svn: 275274
* [ConstantFolding] Use sdiv_ovDavid Majnemer2016-07-131-4/+4
| | | | | | This is a simplification, there should be no functional change. llvm-svn: 275273
* [X86][AVX512] Add support for VPERMILPD/VPERMILPS variable shuffle mask commentsSimon Pilgrim2016-07-132-10/+27
| | | | llvm-svn: 275272
* [OpenMP] Initial implementation of parse+sema for clause use_device_ptr of ↵Carlo Bertolli2016-07-1318-0/+574
| | | | | | | | | | | | | | 'target data' http://reviews.llvm.org/D21904 This patch is similar to the implementation of 'private' clause: it adds a list of private pointers to be used within the target data region to store the device pointers returned by the runtime. Please refer to the following document for a full description of what the runtime witll return in this case (page 10 and 11): https://github.com/clang-omp/OffloadingDesign I am happy to answer any question related to the runtime interface to help reviewing this patch. llvm-svn: 275271
* [X86][AVX] Add support for target shuffle combining to VPERMILPS variable ↵Simon Pilgrim2016-07-134-4/+59
| | | | | | | | shuffle mask Added AVX512F VPERMILPS shuffle decoding support llvm-svn: 275270
* [ELF] - Add predefined sections to output sections list in one place.George Rimar2016-07-131-11/+11
| | | | | | | | | | | Minor cleanup. Currently it looks wierd that having method addPredefinedSections() we still add 2 sections outside it without real reasons. Patch fixes that. Differential revision: http://reviews.llvm.org/D19981 llvm-svn: 275269
* AMDGPU/SI: Add support for R_AMDGPU_GOTPCRELTom Stellard2016-07-1310-51/+277
| | | | | | | | | | Reviewers: rafael, ruiu, tony-tye, arsenm, kzhuravl Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: http://reviews.llvm.org/D21484 llvm-svn: 275268
* [PCH] Add a fno-pch-timestamp option to cc1 to disable inclusion of ↵Pierre Gousseau2016-07-137-3/+42
| | | | | | | | | | | | timestamps in PCH files. This is to allow distributed build systems, that do not preserve time stamps, to use PCH files. Second and last part of the patch proposed at: Differential Revision: http://reviews.llvm.org/D20867 llvm-svn: 275267
* Rename llc's -fpreserve-as-comments flag -preserve-as-comments.Nirav Dave2016-07-131-1/+1
| | | | llvm-svn: 275266
* [MC] Fix lexing ordering in assembly label parsing to preserve same lineNirav Dave2016-07-132-7/+9
| | | | | | comment placement. llvm-svn: 275265
* [RT-ARM] Syntax unified for aeabi_mem* functionsRenato Golin2016-07-133-0/+3
| | | | | | | | | | | | | Use unified syntax for builtins/arm/aeabi_mem*.S. This makes these files consistent with the others. This fixes a problem on the linker, which can fail with the message "relocation truncated to fit: R_ARM_THM_JUMP11 against symbol" Patch by Kor Nielsen. llvm-svn: 275264
* [clang-tidy] Fix misc-definitions-in-headers misplaced fixing to fully ↵Haojian Wu2016-07-132-3/+6
| | | | | | | | | | | | templated function. Reviewers: alexfh, aaron.ballman Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D22260 llvm-svn: 275263
* [X86][SSE] Check for lane crossing shuffles before trying to combine to PSHUFBSimon Pilgrim2016-07-131-8/+11
| | | | | | Removes a return-on-fail that was making it tricky to add other variable mask shuffles. llvm-svn: 275262
* [PCH] Fix timestamp check on windows hosts.Pierre Gousseau2016-07-131-9/+0
| | | | | | | | | | | | | | | On Linux, if the timestamp of a header file, included in the pch, is modified, then including the pch without regenerating it causes a fatal error, which is reasonable. On Windows the check is ifdefed out, allowing the compilation to continue in a broken state. The root of the broken state is that, if timestamps dont match, the preprocessor will reparse a header without discarding the pch data. This leads to "#pragma once" header to be included twice. The reason behind the ifdefing of the check lacks documentation, and was done 6 years ago. This change tentatively removes the ifdefing. First part of patch proposed at: Differential Revision: http://reviews.llvm.org/D20867 llvm-svn: 275261
* Add "support" for DW_CFA_GNU_args_size to the unwinderPavel Labath2016-07-131-0/+20
| | | | | | | | | | | | | | | | | | | Summary: This adds the knowledge of the DW_CFA_GNU_args_size instruction to the eh_frame parsing code. Right now it is ignored as I am unsure how is it supposed to be handled, but now we are at least able to parse the rest of the FDE containing this instruction. I also add a fix for a bug which was exposed by this instruction. Namely, a mismatched sequence of remember/restore instructions in the input could cause us to pop an empty stack and crash. Now we just log the error and ignore the offending instruction. Reviewers: jasonmolenda Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D22266 llvm-svn: 275260
* [OpenCL] Fix code generation of kernel pipe parameters.Alexey Bader2016-07-132-3/+25
| | | | | | | | | | | Improved test with user define structure pipe type case. Reviewers: Anastasia, pxli168 Subscribers: yaxunl, cfe-commits Differential revision: http://reviews.llvm.org/D21744 llvm-svn: 275259
* Reverted r275257 "[ELF] - Implement extern "c++" version script tag"George Rimar2016-07-136-179/+33
| | | | | | | | It broke build bots: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/8204 http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/19432 llvm-svn: 275258
* [ELF] - Implement extern "c++" version script tagGeorge Rimar2016-07-136-33/+179
| | | | | | | | | | | Patch implements 'extern' version script tag. Currently only values in quotes(") are supported. Matching of externs is performed in the same pass as exact match of globals. Differential revision: http://reviews.llvm.org/D21930 llvm-svn: 275257
* fix missing whitespace in sphinx docEtienne Bergeron2016-07-131-1/+1
| | | | llvm-svn: 275256
* fix incorrect xref in sphinx docEtienne Bergeron2016-07-132-2/+2
| | | | llvm-svn: 275255
* fix missing newline in sphinx docEtienne Bergeron2016-07-131-0/+1
| | | | llvm-svn: 275254
* AMDGPU: Fold out no-op kill intrinsicsMatt Arsenault2016-07-132-1/+8
| | | | llvm-svn: 275253
* AMDGPU: WQM cleanupsMatt Arsenault2016-07-132-42/+39
| | | | | | | | - Add new TTI instruction checks - Don't use const for blocks that are mutated. - Checking isBranch and isTerminator should be redundant llvm-svn: 275252
* [ConstantFolding] Don't treat negative GEP offsets as positiveDavid Majnemer2016-07-132-10/+9
| | | | | | GEP offsets are signed, don't treat them as huge positive numbers. llvm-svn: 275251
* [BFI] Add new LazyBFI analysis passAdam Nemet2016-07-138-0/+205
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This is necessary for D21771. In order to add the hotness attribute to optimization remarks we need BFI to be available in all passes that emit optimization remarks. However we don't want to pay for computing BFI unless the hotness attribute is requested. This is achieved by making BFI lazy at the very high-level through a new analysis pass -- BFI is not calculated unless requested. I am adding a test to check the laziness under D21771 where the first user of the analysis is added. Reviewers: hfinkel, dexonsmith, davidxl Subscribers: davidxl, dexonsmith, llvm-commits Differential Revision: http://reviews.llvm.org/D22141 llvm-svn: 275250
* [ConstantFolding] CleanupsDavid Majnemer2016-07-131-67/+66
| | | | | | No functional change is intended, just a minor cleanup. llvm-svn: 275249
* vim: separate the keywords into one per lineSaleem Abdulrasool2016-07-131-22/+116
| | | | | | | | | | | This achieves the same result as previously by using line wrapping. This allows us to have one keyword per line which makes adding a new keyword significantly easier, especially if they are inserted in a lexicographical sort order as you no longer need to reflow the content around it. This only does the keywords as that is the group which changes more often. llvm-svn: 275248
* [ThinLTO/gold] ThinLTO internalization fixesTeresa Johnson2016-07-133-16/+18
| | | | | | | | | | | Internalization was missing cases where we originally had a local symbol that was promoted eagerly but not actually exported. This is because we were only internalizing the set of global (non-local) symbols that were PREVAILAING_DEF_IRONLY. Instead, collect the set of global symbols that are referenced outside of a single IR file, and skip internalization for those. llvm-svn: 275247
* [IR] Make getIndexedOffsetInType return a signed resultDavid Majnemer2016-07-134-9/+9
| | | | | | | A GEPed offset can go negative, the result of getIndexedOffsetInType should according be a signed type. llvm-svn: 275246
* vim: add local_unnamed_addr keywordSaleem Abdulrasool2016-07-131-6/+6
| | | | | | | The `local_unnamed_addr` was introduced in SVN r272709. Update the syntax highlighting rules. llvm-svn: 275245
* [ConstantFold] Don't incorrectly infer inbounds on array GEPDavid Majnemer2016-07-132-42/+69
| | | | | | | | The many levels of nesting inside the responsible code made it easy for bugs to sneak in. Flattening the logic makes it easier to see what's going on. llvm-svn: 275244
* [LoopVectorize] Further cleanupsDavid Majnemer2016-07-131-4/+2
| | | | | | No functional change is intended, just a minor cleanup. llvm-svn: 275243
* COFF: drop the dependency on LIB.EXE for implibsSaleem Abdulrasool2016-07-133-143/+490
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lld currently relies on lib.exe in order to generate an empty import library. The "empty" import library consists of 5 members: - first linker member - second linker member - Import Descriptor - NULL Import Descriptor - NULl Thunk The first two entries (first and second linker members) are string tables which are never updated. Therefore, they may as well as not be present. A subsequent change to add that is probably warranted. However, this does not prevent the use of the linker. The Import Descriptor is the content which is most important. It provides an Import Name Table entry for the library (as specified by the LIBRARY directive in the DEF file). Additionally, it contains undefined references to the NULL Import Descriptor and the library NULL Thunk Data. This ensures that the linker will pull in the subsequent objects from the import library for the link. The Import Descriptor has a single symbol (__IMPORT_DESCRIPTOR_<Library>) which contains 3 relocations, one to the INT (Import Name Table) entry, one to the ILT (Import Lookup Table) entry, and one to the IAT (Import Address Table) entry. The NULL Import Descriptor is the last import descriptor and terminates the import descriptor array. It contains a single symbol (__NULL_IMPORT_DESCRIPTOR). The NULL Thunk contains a single symbol (\x7f<Library>_NULL_THUNK_DATA) and provides the terminator for the ILT and IAT. These files are currently constructed manually following the example of the Short Import Library format. This is arguably less than ideal, and it may be possible to use MCAssembler and feed it the fragments to construct the object. The major difference between the LIB (LINK) generated objects and the ones generated here is that they are all one section shorter (.debug$S) as they do not contain the debug information and one symbol shorter (@comp.id) as they do not contain the RICH signature. Move the logic related to the librarian into a new source file (Librarian.cpp). llvm-svn: 275242
* CodeGen: minor cleanup, NFCSaleem Abdulrasool2016-07-131-23/+9
| | | | | | | | Initialise more members in initializer lists. Invert the condition that had grown to be pretty confusing. The `_objc_empty_vtable` is only used on macOS <10.9. This simplifies the code. NFC. llvm-svn: 275241
* [X86] Remove some seemingly unnecessary patterns that supported vector ↵Craig Topper2016-07-132-33/+0
| | | | | | | | zext/sext with 256-bit source types producing a 256-bit result. These patterns just extracted the source down to 128-bits to use the instructions. AVX512 seems to have blindly copied them over for VLX, but did not create similar patterns for 512-bit sources. So I'm hoping the backend can't actually produce these cases. llvm-svn: 275240
* Fix ScalarEvolutionExpander step scaling bugKeno Fischer2016-07-132-0/+55
| | | | | | | | | | | | | | | | The expandAddRecExprLiterally function incorrectly transforms `[Start + Step * X]` into `Step * [Start + X]` instead of the correct transform of `[Step * X] + Start`. This caused https://github.com/JuliaLang/julia/issues/14704#issuecomment-174126219 due to what appeared to be sufficiently complicated loop interactions. Patch by Jameson Nash (jameson@juliacomputing.com). Reviewers: sanjoy Differential Revision: http://reviews.llvm.org/D16505 llvm-svn: 275239
* Remove another unused variable from r275216Teresa Johnson2016-07-121-2/+1
| | | | | | | Remove another variable added in r275216 that was only used in debug mode. llvm-svn: 275238
* Revert r275223, which committed the wrong thing.Sean Callanan2016-07-121-3/+0
| | | | llvm-svn: 275237
* Add -m elf32_x86_64.Rui Ueyama2016-07-123-1/+44
| | | | | | | | | | | Patch by H.J. Lu. This patch adds -m elf32_x86_64 to lld. But it doesn't generate working x32 binaries. Differential Revision: http://reviews.llvm.org/D22268 llvm-svn: 275236
* Add ILP32 support to X86_64TargetInfo.Rui Ueyama2016-07-121-33/+55
| | | | | | | | | | | Patch by H.J. Lu. As x86-64 psABI supports both LP64 and ILP32, this patch adds <ELFT> template to X86_64TargetInfo. Differential Revision: http://reviews.llvm.org/D22287 llvm-svn: 275235
* Simplify. NFC.Rui Ueyama2016-07-121-5/+3
| | | | | | | Config->Pic is true if (Config->Pie || Config->Shared) is true, so this extra check was redundant. llvm-svn: 275234
* [CUDA] Use the multi-element remove function in EraseUnwantedCUDAMatches.Justin Lebar2016-07-121-2/+4
| | | | | | | | | | | | | | | | Summary: Bug pointed out by Benjamin Kramer in r264008. I think the bug is benign because by the time this is called, we should only have at most two overloads to consider (either a host and a device overload, or a host+device overload, but not all three). Reviewers: tra Subscribers: cfe-commits, bkramer Differential Revision: http://reviews.llvm.org/D21914 llvm-svn: 275233
* [CUDA] Add additional testcases for EraseUnwantedCUDAMatches.Justin Lebar2016-07-122-0/+49
| | | | | | | | | | | | | | | | | Summary: Specifically, this patch adds testcases for all three calls to EraseUnwantedCUDAMatches. The addr-of-overloaded-fn test I accidentally neutered in r264207, which moved much of CodeGenCUDA/function-overload.cu into SemaCUDA/function-overload.cu. The coverage from overloaded-delete test is new. Reviewers: tra Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21913 llvm-svn: 275232
* [CUDA] Don't assume that destructors can't be overloaded.Justin Lebar2016-07-122-2/+18
| | | | | | | | | | | | | | | Summary: You can overload a destructor in CUDA, and SemaOverload needs to be tweaked not to crash when it sees an explicit call to an overloaded destructor. Reviewers: rsmith Subscribers: cfe-commits, tra Differential Revision: http://reviews.llvm.org/D21912 llvm-svn: 275231
* [LV] Do not invalidate use-lists we're iterating over.Michael Kuperstein2016-07-121-14/+15
| | | | | | Should make sanitizers happier. llvm-svn: 275230
* Remove assert since it was crashing the mutli process driver tests. Made the ↵Greg Clayton2016-07-121-5/+16
| | | | | | code behave correctly when indexes are out of range or the collection is empty and is "log enable lldb unwind" is enabled, log an error message. llvm-svn: 275226
* This doesn't compiler on Darwin. Skipping it.Greg Clayton2016-07-121-0/+1
| | | | llvm-svn: 275225
* Add missing files for r275222Dehao Chen2016-07-122-0/+2
| | | | | | | | | | | | | | New pass manager for LICM. Summary: Port LICM to the new pass manager. Reviewers: davidxl, silvas Subscribers: krasin, vitalybuka, silvas, davide, sanjoy, llvm-commits, mehdi_amini Differential Revision: http://reviews.llvm.org/D21772 llvm-svn: 275224
* Mark TagDecls as having external visible storage, like ContainerDecls.Sean Callanan2016-07-121-0/+3
| | | | | | | | | The lookup tables can get out of date during the lifetime of the object so we need to preserve LLDB's ability to answer questions about TagDecls' contents. <rdar://problem/20751935> llvm-svn: 275223
* New pass manager for LICM.Dehao Chen2016-07-1229-68/+174
| | | | | | | | | | | | Summary: Port LICM to the new pass manager. Reviewers: davidxl, silvas Subscribers: krasin, vitalybuka, silvas, davide, sanjoy, llvm-commits, mehdi_amini Differential Revision: http://reviews.llvm.org/D21772 llvm-svn: 275222
OpenPOWER on IntegriCloud